El libro "AI e DSA" (por ahora solo en italiano) viene acompañado de dos herramientas gratuitas: el Generador de Materiales, que convierte un texto y un perfil de alumno en una versión adaptada, una infografía y diapositivas, y el Generador de Perfiles, que construye el perfil YAML de partida. Desde que existen, ambas herramientas han usado exclusivamente la API de Gemini de Google. Funciona, pero para un docente que empieza con la IA era un obstáculo más: crear una clave API y aceptar que el texto enviado —aunque ya esté anonimizado— salga igualmente de su propio ordenador.

Esta semana añadí un segundo camino: Ollama, el motor de código abierto que ejecuta modelos de IA directamente en el PC. El mismo principio que ya se usaba en el anonimizador del libro para reconocer nombres en los textos, ahora extendido a la generación de materiales en sí.

Qué añadí, en concreto

En el generador de línea de comandos (generatore_pro.py, tanto en el repositorio del libro como en la app independiente) añadí un parámetro:

python generatore_pro.py --studente mario --testo storia.txt --backend ollama --modello-ollama qwen3.6:27b

El comportamiento por defecto no cambia: quien no añada --backend ollama sigue usando Gemini exactamente igual que antes. En el Generador de Perfiles, que es una app de Streamlit, añadí el mismo interruptor pero en la barra lateral: un selector "Motor de IA" con las dos opciones, Gemini u Ollama, y la elección del modelo local al seleccionar la segunda.

Hay cuatro modelos locales disponibles en esta configuración, con pesos y velocidades distintas: qwen3.6:27b y glm-4.7-flash para la mayor calidad, ministral-3:8b y qwen3.5:4b para quien tiene un PC más modesto o quiere respuestas más rápidas.

Por qué importa para quien trabaja con planes de apoyo individualizados

El primer motivo es la privacidad. Los perfiles de alumnos usados con estas herramientas siempre deben anonimizarse antes de pegarlos en cualquier IA — eso no cambia. Pero "anonimizado" y "se queda en mi ordenador" son dos protecciones distintas, y hasta ahora la segunda herramienta del libro no ofrecía la segunda. Ahora sí: con el motor Ollama, el texto nunca sale del PC del docente.

El segundo motivo es el coste. Gemini tiene un plan gratuito generoso, pero quien genera materiales para toda una clase, semana tras semana, tarde o temprano lo supera. Un modelo local no tiene límite de peticiones ni coste por token: solo se paga la electricidad.

Cómo lo comprobé

Para no reescribir la lógica de generación ya probada durante meses (los prompts, el análisis de las secciones, la exportación a Word y PowerPoint), escribí una pequeña clase que imita la interfaz del cliente oficial de Gemini: mismo método, mismos argumentos, pero por debajo llama a Ollama en lugar de a la API en la nube. El resto del código no nota la diferencia.

Lo probé de principio a fin con un perfil real (Mario, dislexia + discalculia) y el modelo más ligero, ministral-3:8b: texto adaptado, infografía y diapositivas generados correctamente, archivos guardados en las carpetas de siempre. Hice lo mismo con la demo de Streamlit online, esta vez usando streamlit.testing.AppTest para simular de verdad el clic en "Generar material" sin necesidad de un navegador.

Por el camino encontré un pequeño defecto que no tenía que ver con Ollama pero merece la pena contar: el texto generado por la IA (tanto Gemini como Ollama) marca la negrita con **palabra**, pero el documento Word exportado los escribía tal cual, con los asteriscos literales, en lugar de aplicar la negrita de verdad. Lo arreglé junto con el resto: ahora **palabra** se convierte en negrita real en el archivo descargado, no en asteriscos.

Qué hace falta para usarlo

Hace falta tener Ollama instalado en local y al menos un modelo descargado — incluso el más ligero (6 GB) funciona en un portátil reciente sin tarjeta gráfica dedicada. Por eso sigue siendo una opción, no la predeterminada: quien no quiera instalar nada sigue usando Gemini con su clave gratuita, exactamente igual que antes.

Conclusión

No es una función que haya diseñado sobre el papel: es la misma idea ya aplicada al anonimizador, llevada un paso más allá en la siguiente herramienta de la misma cadena. La lección práctica, de nuevo, es probar antes de dar algo por terminado: el parámetro por sí solo no bastaba, había que comprobar que generaba de verdad material correcto con un modelo real — y ahí es justo donde apareció el error de la negrita, invisible durante meses porque nadie había vuelto a abrir un Word exportado para revisar el formato.