Añadir un corpus nuevo al RAG de PINSAPA —las programaciones didácticas del departamento— no ha necesitado ninguna decisión de arquitectura nueva: solo tres líneas en dos archivos. La prueba de que el diseño multi-corpus, pensado desde el principio para esto, funciona de verdad.
El problema: quiero conservar un curso Moodle Hay ocasiones en las que necesitamos conservar una copia local de un curso de Moodle. Puede ser porque vamos a cambiar de plataforma, porque queremos disponer de una copia de los materiales, porque …
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.







