Volver al portafolio
App de escritorio Orquestación IA En producción

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.

Tipo
App de escritorio (PyQt5)
Estado
✦ En producción
Arquitectura IA
Master → Student → Help
Construido por
Solo, end to end
Capturas
Demo y guía técnica

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.
El problema

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.

Arquitectura IA: Master → Student → Help

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
Funciones clave
Interfaz dual: chat IA y gestión clásica

Dos vistas complementarias comparten el mismo backend SQLite. Chat para velocidad, CRUD para precisión. El usuario cambia entre ambas sin perder contexto.

Generación y transformación de constancias

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.

Filtrado progresivo en lenguaje natural

Permite encadenar consultas conversacionales como “García” → “turno vespertino” → “tercero” → “grupo A”, refinando el resultado sin resetear contexto.

Distribución sin dependencias

Se entrega como ejecutable compilado con PyInstaller. Incluye monkey-patch para google-generativeai, wkhtmltopdf embebido y carga automática de `.env`.

Desafíos técnicos y soluciones

google-generativeai + PyInstaller

Problema

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.

Solución

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

Problema

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.

Solución

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

Problema

Variantes de nombres y campos en registros manuales rompían búsquedas y plantillas PDF con valores incorrectos.

Solución

Capa centralizada de normalización en la clase `Config`, validaciones con advertencias visibles antes de guardar y orden configurable por institución.

Flujo IA
01

Motor de chat

Recibe la solicitud en lenguaje natural del usuario.

02

Master Interpreter

Detecta intención y sub-intenciones, y administra la pila de contexto.

03

Routing de especialistas

Enruta al especialista Student o Help según la intención.

04

Ejecutor de acción

Ejecuta consulta SQL o generación PDF y devuelve la respuesta.

Impacto en producción
Director académico
Escuela Primaria "Benito Juárez"

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.

85% menos tiempo 200+ constancias/mes
Secretaria escolar
Usuaria principal del sistema

La IA entiende perfecto cuando digo “necesito la constancia de Juan de 5to B”. Ya no tengo que recordar procedimientos complicados, solo hablo natural.

95% satisfacción 98% precisión IA