El análisis de brecha (Gap Analysis) es el núcleo del motor de recomendación de RAP-Rec. Después de que el sistema evalúa las 5 competencias VAP del aspirante, este algoritmo identifica las áreas de mejora y selecciona los cursos del catálogo que mejor las cierran. El resultado es un plan semestral personalizado con hasta cuatro cursos sugeridos y una justificación técnica para el director del programa.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mafab9125/PDG_SISTEMA_RECOMENDADOR/llms.txt
Use this file to discover all available pages before exploring further.
Qué es una brecha en el contexto VAP-Rec
Una brecha es cualquier competencia (C1–C5) cuyo puntaje en la evaluación VAP sea menor a 4.0. Competencias con puntaje igual o superior a 4.0 se consideran suficientemente desarrolladas para el nivel de posgrado; sus cursos asociados pueden marcarse como exonerados.Pasos del algoritmo
El algoritmo se ejecuta dentro de la funcióngetAIRecommendation en src/services/gemini.ts:
Recibir la entrada
La función recibe dos entradas principales:
evaluation— array deVAPEvaluation[]con el puntaje (0.0–5.0) y nivel de cada competencia C1–C5.profile— objetoUserProfilecon los datos profesionales, el área de profundización y el objetivo profesional del aspirante.
Identificar brechas
El motor busca todas las competencias con
puntaje < 4.0. Estos identificadores (C1–C5) forman la lista de brechas activas que guían el cruce con el catálogo.Cruzar brechas con el catálogo
Para cada curso del catálogo, el sistema revisa el campo
competencias_VAP_primarias. Si alguno de los identificadores en ese campo coincide con una brecha activa, el curso es candidato a ser sugerido.Priorizar por criticidad
Entre los cursos candidatos, el motor da prioridad a los que abordan la competencia con el puntaje más bajo (brecha más crítica). Esto garantiza que el plan semestral atiende primero las necesidades más urgentes del aspirante.
Seleccionar hasta 4 cursos
El sistema selecciona un máximo de 4 cursos sugeridos (
cursos_sugeridos). Superar este límite aumentaría la carga académica más allá de lo razonable para un proceso de flexibilización.Pseudocódigo del cruce
El siguiente fragmento ilustra la lógica de cross-matching tal como la ejecuta el modelo de IA a partir del prompt ensrc/services/gemini.ts:
Este pseudocódigo representa la lógica descrita en el prompt del sistema. El modelo de Gemini ejecuta el razonamiento internamente; no hay un bucle explícito en el código TypeScript de la aplicación.
Estructura de salida
getAIRecommendation devuelve un objeto JSON con cuatro campos principales:
Estados de materia
El campoestado de cada materia en plan_semestral puede tomar tres valores:
| Estado | Significado |
|---|---|
regular | Materia obligatoria del plan de estudios sin modificación. El aspirante la cursa normalmente. |
exonerada | La competencia asociada supera 4.0; se propone al director eximir al aspirante de cursarla. |
sugerida | La materia refuerza una brecha detectada; se incorpora al plan del aspirante en sustitución o adición. |
Cómo el modelo genera las justificaciones
El prompt del sistema instruye al modelo a redactar lajustificacion de cada materia referenciando explícitamente los identificadores de competencia (C1–C5) y el puntaje obtenido. Para analisis_director, el prompt solicita un párrafo técnico que conecte los cursos sugeridos con las brechas específicas, con lenguaje orientado al cuerpo docente del programa.
El campo mensaje_estudiante es motivacional y se personaliza con el valor de profile.area_profundizacion del aspirante.