MonteIA cambia de nombre: sonaba a chalet, no a IA. Tras descartar AIDA (ya usado por varios asistentes reales) y Bermejía (significado inesperado en el diccionario), nace PINSAPA — por el pinsapo de Sierra Bermeja. Y con el nuevo nombre, la segunda herramienta real: PINSAPA ya consulta el tiempo de verdad, con la primera llamada de red saliente del proyecto hecha con cuidado.
Descartada la generación de imágenes, tocaba encontrar una primera “herramienta” real para MonteIA. En vez de function calling nativo (poco fiable con un modelo de 3B), una calculadora seg
ura: un paso en Python antes de hablar con el modelo, sin eval(), sin coste ni llamadas de red. La primera prueba real destapó un fallo — solo entendía símbolos, no “por” o “menos” — y así se quedó la versión corregida.
Un segundo endpoint para MonteIA, pensado para apps del alumnado: GET /preguntar_simple, llamado igual que la API de Gemini —una URL con parámetros, sin streaming, sin historial— para que un proyecto de Technovation pueda usar la IA propia del centro en vez de depender de un servicio externo que un día podría empezar a cobrar.
El primer piloto de asignatura de MonteIA: un corpus nuevo con apuntes propios de Computación y Robótica de 1º ESO, un rag.py que ya sabe leer .odt y .docx además de PDF, y un selector de “Tema” en la interfaz para elegir entre el centro y la asignatura.
Antes de meter ni un documento de Computación y Robótica en MonteIA, había que resolver algo más básico: rag.py solo sabía buscar en un sitio. Esta entrada es la parte de arquitectura —preparar el RAG para varios corpus independientes— sin ningún contenido de asignatura todavía, y probada contra los 42 documentos reales del centro para no romper nada de lo que ya funcionaba.
Abrimos MonteIA a la red del centro, en la misma WiFi que usa el alumnado, junto con un código de acceso compartido que no era opcional en ese contexto. Con los dos avisos honestos que hacen falta: es una barrera mínima sin HTTPS, y ROCKY solo atiende una petición del modelo a la vez.
Cerramos la robustez mínima antes de pensar en abrir MonteIA a la red del centro: un límite de 20 peticiones por minuto por IP con slowapi, para que un bucle, un fallo o varias personas preguntando a la vez no colapsen una API que corre sin GPU.
Antes de pensar en abrir MonteIA a más de un ordenador, primera pieza de robustez: un filtro que rechaza mensajes desproporcionados y los intentos más habituales de manipular el system prompt (prompt injection), con el aviso honesto de que es una barrera básica, no una garantía de seguridad.
Revisamos uno a uno los 75 documentos reales del centro y los repartimos en dos carpetas según si son aptos para el RAG o no, con criterios de privacidad y seguridad más allá de si el documento es “público”. De paso, rediseñamos rag.py para que indexe automáticamente lo que haya en la carpeta, sin mantener una lista de archivos a mano.
MonteIA aprende a responder en directo, palabra por palabra, en vez de hacer esperar a que la respuesta esté completa. De paso, contamos un bug de codificación que se coló al implementarlo (tildes convertidas en símbolos raros) y cómo se diagnosticó y arregló.








