Sistema Escolar con IA
Aplicación de escritorio con arquitectura IA Master-Student que automatiza la gestión de constancias escolares, desde búsqueda conversacional hasta generación PDF. En producción en instituciones educativas de México.
Demo completa del sistema — 18 minutos
Recorrido end to end: interfaz clásica de gestión, modo chat IA, búsqueda natural de alumnos con filtros progresivos, generación de constancias PDF y transformación de PDFs externos.
Visión general del sistema
Sistema híbrido listo para producción que combina asistente conversacional con interfaz administrativa tradicional. Directivos consultan en lenguaje natural búsquedas, estadísticas y constancias oficiales, mientras administración mantiene control CRUD completo. Todo corre 100% local con SQLite y se distribuye como ejecutable compilado con PyInstaller.
Flujo de demo
Parte A — Gestión clásica
- Abrir gestión clásica y mostrar expedientes con nombre, CURP, matrícula, grado, grupo y turno.
- Tarjeta Transformar: seleccionar PDF externo, extraer datos y generar constancia formateada correctamente.
- Tarjeta Buscar: localizar por nombre, grado, grupo, turno, matrícula o CURP.
- Tarjeta Gestión (CRUD): editar, validar y guardar con control visual.
Parte B — Chat IA
- “Buscar alumnos con apellido García” → lista de resultados.
- Seguimiento contextual: “De esa lista, solo turno vespertino” → filtrado.
- Refinamiento progresivo: “Ahora tercero” → “Ahora grupo A”.
- “¿Cuántos alumnos hay en tercer grado?” → conteo y distribución.
- “Genera la constancia para [Nombre]” → el PDF se abre automáticamente.
- Adjuntar PDF externo y pedir “Transforma este PDF a constancia oficial” → extracción más PDF nuevo.
Secretaría escolar gastaba 15 a 20 minutos por constancia. A mano.
En primarias mexicanas, generar una constancia exige localizar el expediente, verificar CURP y matrícula, llenar un formato y enviarlo a impresión, muchas veces con errores. En escuelas con cientos de constancias al mes, eso consume días completos de trabajo administrativo.
El software escolar existente era demasiado caro, demasiado complejo para desplegar localmente o no incluía interacción en lenguaje natural, obligando al personal a navegar menús complicados para consultas básicas.
Routing por intención con memoria conversacional.
Master Interpreter └─ Understands user intent + sub-intents from natural language └─ MasterPromptManager: maintains conversation_stack + awaiting state └─ Handles ambiguity: "él", "el segundo", "de esos..." → resolves via context └─ Routes to: StudentSpecialist | HelpSpecialist Student Specialist └─ Maps natural language to SQL queries + filters └─ Service-Repository pattern: AI layer separate from DB layer └─ PyQt Signals/Slots: AI runs in background thread → no UI freeze └─ Outputs: student list, statistics, PDF trigger Help Specialist └─ Explains system capabilities in plain language └─ Guides users through available features Data & Distribution └─ SQLite (local, single source of truth) └─ wkhtmltopdf → PDF generation from HTML templates └─ pdfplumber → extract data from existing PDFs └─ PyInstaller: compiled exe with monkey-patch for google-generativeai
Dos vistas complementarias comparten el mismo backend SQLite. Chat para velocidad, CRUD para precisión. El usuario cambia entre ambas sin perder contexto.
Genera constancias oficiales PDF desde plantillas en 1 a 5 segundos. También puede recibir un PDF externo, extraer datos con pdfplumber y reformatearlo al template oficial.
Permite encadenar consultas conversacionales como “García” → “turno vespertino” → “tercero” → “grupo A”, refinando el resultado sin resetear contexto.
Se entrega como ejecutable compilado con PyInstaller. Incluye monkey-patch para google-generativeai, wkhtmltopdf embebido y carga automática de `.env`.
google-generativeai + PyInstaller
Se rompían imports y runtime después del freeze. Variables `.env` inaccesibles e incompatibilidades entre la librería IA y la recolección de módulos de PyInstaller.
Monkey-patch temprano antes de cualquier import IA, carga manual de `.env` dentro del ejecutable y hooks personalizados con fallback multinivel de modelos.
Routing por intención y contexto conversacional
Referencias ambiguas como “él”, “el segundo” o “de esos…”, y la decisión de cuándo usar contexto y cómo resolver pronombres entre turnos.
Análisis unificado vía `MasterPromptManager`, `conversation_stack` con estados `awaiting` y lógica inteligente de continuación comparando intención actual vs anterior.
Consistencia de datos entre módulos
Variantes de nombres y campos en registros manuales rompían búsquedas y plantillas PDF con valores incorrectos.
Capa centralizada de normalización en la clase `Config`, validaciones con advertencias visibles antes de guardar y orden configurable por institución.
Motor de chat
Recibe la solicitud en lenguaje natural del usuario.
Master Interpreter
Detecta intención y sub-intenciones, y administra la pila de contexto.
Routing de especialistas
Enruta al especialista Student o Help según la intención.
Ejecutor de acción
Ejecuta consulta SQL o generación PDF y devuelve la respuesta.
Antes se invertían 15 a 20 minutos por constancia buscando expedientes físicos. Ahora el sistema genera todo en menos de 2 minutos con solo escribir el nombre del alumno.
La IA entiende perfecto cuando digo “necesito la constancia de Juan de 5to B”. Ya no tengo que recordar procedimientos complicados, solo hablo natural.