Cambiando idioma
Carlos José Castro GalanteCarlos José Castro Galante
Carlos José Castro Galante
© 2026
Proyectos
AI

Tramo

Asistente de código abierto que compara el programa analítico de una materia aprobada con el de la materia que se quiere reconocer y redacta un borrador del informe de equivalencia para el docente. Gemma 4, un modelo de pesos abiertos que corre en la misma computadora a través de Ollama, extrae los temas de ambos programas, evalúa cada tema de destino con evidencia y justifica cada decisión, mientras el código calcula la cobertura y aplica la regla del 50 por ciento del reglamento. El docente puede corregir cualquier tema antes de firmar y ningún documento sale del equipo. Presentado en el Hacktoberfest Open Source AI Challenge de DEV, donde está contada la historia completa del proyecto.

Tramo

Métricas

Modelo
Gemma 4
Documentos enviados a internet
0
Tiempo por análisis
~1,5 min
Pruebas automatizadas
119
Regla de equivalencia
50% art. 87
Desafío
Hacktoberfest DEV 2026
Capturas

El problema

Cuando un estudiante cambia de carrera o de universidad, el reconocimiento de las materias que ya aprobó puede tardar meses. Un docente tiene que leer dos programas analíticos extensos a la par, decidir tema por tema qué contenido ya está cubierto, contrastar el resultado con el porcentaje que exige el reglamento y escribir qué temas faltan rendir. Es un trabajo repetitivo, difícil de auditar después y que demora a estudiantes que ya estudiaron esos contenidos.

La solución

Tramo recibe los dos programas como texto, PDF o Word y los analiza en cuatro etapas. Gemma 4 extrae los temas de cada programa con salidas estructuradas validadas por un esquema, evalúa cada tema de destino contra el programa de origen completo citando hasta cinco temas como evidencia, y redacta una recomendación a partir de datos que el código ya calculó. La cobertura y la regla del 50 por ciento se resuelven en Python con pruebas, de modo que ningún texto puede alterar el veredicto. El progreso se transmite en vivo al navegador, el docente puede corregir cualquier estado y los números se recalculan al instante. Todo corre en local, sin claves ni servicios externos.

Stack técnico

Frontend
HTML · CSS · JavaScript · ES Modules
Backend
Python · FastAPI · Pydantic · Ollama · Gemma 4

Desafíos

  • Detectar que con el modo de razonamiento activado el modelo ignoraba el esquema JSON y devolvía texto libre, y desactivarlo para recuperar las salidas estructuradas, lo que además bajó el análisis de cinco minutos y medio a uno y medio

  • Reemplazar una primera versión basada en reglas que llegó a proponer como temas a rendir los nombres de los profesores y la carga horaria, por una extracción con el modelo y un respaldo visible cuando la respuesta no valida

  • Aceptar que el mismo par de programas daba coberturas entre 24 y 32 por ciento en distintas corridas, y diseñar el informe para que cada tema muestre su razonamiento y el docente pueda corregirlo

  • Tratar cada archivo como hostil, rechazando PDF con scripts o adjuntos y documentos Word con macros, rutas manipuladas o tamaño expandido anormal, y advertir en el informe cuando un texto intenta dar instrucciones al modelo

  • Transmitir el progreso real del análisis al navegador con eventos JSON delimitados por línea, para que el porcentaje en pantalla refleje trabajo completado y no un temporizador

Aprendizajes

  • Que el modelo proponga y el código decida es la regla que vuelve confiable a una herramienta que asiste decisiones administrativas

  • Una salida estructurada solo es útil si se valida, cada tema debe evaluarse una vez y cada fuente citada tiene que existir

  • Correr un modelo de pesos abiertos en local convierte la privacidad en una propiedad de la arquitectura y no en una promesa

  • Medir antes de optimizar ahorra días, un benchmark simple mostró que el problema de velocidad venía de una sola opción del modelo

  • En herramientas que afectan a personas, explicar los límites y quién decide forma parte del producto tanto como las funciones