Inicio / Artículos / Un asistente universitario multilingüe que solo responde con datos de confianza

Un asistente universitario multilingüe que solo responde con datos de confianza

Un asistente de atención al estudiante con Gemini, puntuación de relevancia en la recuperación y citas de fuentes en inglés, tamil y cingalés, y cómo se niega a inventar las respuestas que faltan.

1591 palabras

Los estudiantes hacen preguntas pequeñas y prácticas. ¿Cuándo hay que entregar el trabajo? ¿Abre la biblioteca el domingo? ¿Dónde está la oficina de soporte informático? ¿Quién se encarga de los servicios al estudiante? Las respuestas suelen existir, pero están repartidas entre avisos, páginas del LMS, horarios, correos, chats de grupo y distintos departamentos. CampusAI es un prototipo pensado para facilitar esa búsqueda sin convertirse en un chatbot que se inventa respuestas con total seguridad.

Qué es

CampusAI es un asistente multilingüe de atención al estudiante dirigido a instituciones de educación superior. En lugar de rebuscar en varios sistemas, el estudiante escribe una pregunta natural, como «¿Cuándo se entrega mi trabajo de Seguridad de Redes?». La aplicación busca en su base de conocimiento institucional, elige el registro que encaja, envía solo ese registro a Google Gemini y recibe una respuesta clara para el estudiante. Funciona en inglés, tamil y cingalés, porque un asistente no debería obligar a todos los estudiantes a usar un único idioma.

El problema de verdad

Conectar Gemini a una ventana de chat es lo fácil. Lo difícil es conseguir respuestas basadas en información fiable del campus y no inventadas. En la atención al estudiante, una información errónea puede ser peor que ninguna. Imagina que el asistente dice que un trabajo se entrega la semana que viene cuando el plazo real termina mañana.

De ahí salieron tres principios: primero recuperar, después generar y citar la fuente.

Cómo encaja todo

La arquitectura es sencilla a propósito. Una pregunta pasa por la interfaz hasta un motor de recuperación, que consulta la base de conocimiento. Solo los registros relevantes llegan a Gemini, y la respuesta vuelve en el idioma del estudiante con su fuente adjunta:

Student
   ↓
CampusAI UI
   ↓
Retrieval Engine
   ↓
Campus Knowledge Base
   ↓
Relevant Records
   ↓
Google Gemini
   ↓
Multilingual Answer + Source

El prototipo está hecho con Python y Streamlit, usa Google Gemini mediante el Google Gen AI SDK, guarda el conocimiento institucional en JSON, se apoya en una capa propia de recuperación y puntuación de relevancia y controla los cambios con Git y GitHub.

Cómo se organiza el conocimiento

En vez de un único archivo gigante, los datos se dividen por temas, un archivo por área:

data/
├── assignments.json
├── contacts.json
├── courses.json
├── general.json
├── library.json
├── policies.json
└── services.json

Un registro de la biblioteca tiene este aspecto:

{
  "id": "LIB-001",
  "category": "library",
  "title": "Library Opening Hours",
  "content": "The campus library is open Monday to Friday from 8:00 AM to 6:00 PM. On Saturday it is open from 8:00 AM to 1:00 PM. The library is closed on Sunday.",
  "source": "Library Information Notice"
}

Todo esto son datos de demostración, no registros oficiales de una institución real. La distinción importa. El objetivo es demostrar una arquitectura que más adelante podría funcionar con información institucional aprobada.

La recuperación va antes que la generación

La primera versión enviaba toda la base de conocimiento a Gemini con cada pregunta. Funcionaba, pero no escala. Cuanta más información tiene una institución, más derroche supone enviarlo todo, y el contenido ajeno hace que el anclaje a los hechos sea menos preciso.

Así que se añadió una capa de recuperación. Ante una pregunta como la del trabajo, el recuperador sigue estos pasos:

  1. Normalizar la pregunta.
  2. Quitar las palabras con poco valor.
  3. Estimar las categorías probables.
  4. Comparar los términos significativos.
  5. Puntuar los registros candidatos.
  6. Descartar las coincidencias débiles.
  7. Devolver solo las más fuertes.

Esto es lo que sale para la pregunta del trabajo:

Question:
When is my Network Security assignment due?

        ↓

Retriever

        ↓

ASSIGN-001
Network Infrastructure Security Assignment

Deadline:
30 September 2026

Submission:
LMS

Source:
Network Security Assignment Notice

Solo entonces ve Gemini algo. Su tarea es entender cómo lo expresa el estudiante y presentar con naturalidad los datos recuperados, no adivinar por su cuenta los datos del campus.

Cuando nada debería coincidir

Las pruebas sacaron a la luz un fallo útil. Alguien preguntó por el menú de la cafetería de mañana, y la base de conocimiento no tiene nada sobre cafeterías. Aun así, el recuperador devolvía registros sin relación, porque palabras comunes como «what», «is» y «the» aparecían en varios documentos.

La solución tuvo varias partes:

  • Filtrar las palabras vacías.
  • Exigir una coincidencia de tokens significativa.
  • Dar más peso a las categorías.
  • Admitir coincidencias de palabras clave de varias palabras.
  • Añadir una puntuación mínima de relevancia.

Después de eso, la misma pregunta se comporta correctamente:

Question:
What is tomorrow's cafeteria menu?

El recuperador no devuelve nada:

Records found: 0

El asistente responde entonces que no encuentra información verificada, en lugar de inventarse un menú. Esa negativa es uno de los comportamientos más importantes de todo el proyecto.

Gemini redacta la respuesta

Una vez recuperados, los registros van a Gemini con instrucciones firmes. No debe inventar plazos de entrega, horarios, profesores, aulas, tasas, normativas, datos de contacto ni avisos. Cuando hay una coincidencia, el modelo la convierte en una frase clara. Para la pregunta del trabajo, la respuesta da el plazo del 30 de septiembre de 2026 e indica que se entrega a través del LMS, y luego añade la fuente, que es el aviso del trabajo. Mostrar la fuente le dice al estudiante de dónde sale la respuesta.

Tres idiomas, una sola base de conocimiento

Un estudiante puede preguntar por la biblioteca en inglés, tamil o cingalés. El registro recuperado se mantiene en un único formato estructurado, mientras Gemini responde en el idioma que haya usado el estudiante. Es mucho más flexible que mantener un chatbot distinto para cada idioma.

Un ejemplo paso a paso

Supongamos que el registro de la biblioteca contiene este horario:

Library hours
Monday–Friday:
8:00 AM – 6:00 PMSaturday:
8:00 AM – 1:00 PMSunday:
Closed

Un estudiante pregunta si la biblioteca abre el domingo. El recuperador encuentra el registro de la biblioteca y Gemini responde que el domingo está cerrada, citando el aviso informativo de la biblioteca. El estudiante nunca necesita saber si la respuesta está en un archivo JSON, un horario, un aviso o una base de datos. Simplemente pregunta.

Comportamiento responsable desde el diseño

CampusAI sigue siendo un prototipo, pero el comportamiento seguro forma parte del diseño en vez de añadirse después. Sigue cinco salvaguardas:

  1. Los datos del campus deben salir de los registros recuperados, y a Gemini se le indica que no use conocimiento general para ellos.
  2. Un umbral mínimo de relevancia rechaza las coincidencias de poca confianza.
  3. Si no hay nada adecuado, se le dice al estudiante que no se ha encontrado información verificada.
  4. Cada registro conserva la fuente institucional usada para la respuesta.
  5. La demo no contiene datos sensibles: ni identificadores de estudiantes, ni notas, ni datos médicos, ni contraseñas, ni información financiera, ni registros privados.

Un despliegue en producción necesitaría autenticación y control de acceso antes de tocar cualquier dato personal de los estudiantes.

La interfaz

El front-end está hecho con Streamlit y pretende resultar familiar a cualquiera que haya usado un producto moderno de IA conversacional. Tiene un área de conversación, una barra lateral, preguntas sugeridas, información de idioma, una opción de chat nuevo, un cuadro de entrada fijo y respuestas legibles. El diseño visual es sencillo a propósito. Lo que importa no es la animación, sino que un estudiante pueda preguntar dónde conseguir soporte informático y reciba rápido la respuesta correcta.

Cómo se probó

Se probaron varios tipos de preguntas. Información conocida:

What are the library opening hours?

Trabajos:

When is my Network Security assignment due?

Servicios del campus:

Where can I get IT support?

Tamil, una pregunta en idiomas mezclados sobre cuándo entregar el trabajo:

Network Security assignment எப்போது submit செய்ய வேண்டும்?

Cingalés, preguntando dónde está el mostrador de soporte informático:

IT support එක කොහෙද තියෙන්නේ?

Y información que no existe:

What is tomorrow's cafeteria menu?

La última categoría es la que más importa. Un asistente institucional útil debe poder decir que no tiene información verificada sobre algo. Eso siempre es mejor que una respuesta segura y equivocada.

Lecciones aprendidas

El modelo generativo es solo una pieza. Una aplicación útil también necesita buenos datos, recuperación, límites claros, trazabilidad de fuentes, gestión de errores, una experiencia de usuario decente y conciencia de la privacidad.

La mayor mejora no vino de reescribir el prompt. Vino de construir la capa de recuperación que decide qué puede ver Gemini antes de generar nada. Eso hizo el comportamiento más predecible y dio al sistema una estructura mucho más clara.

Qué podría venir después

El proyecto es un MVP, y varias direcciones parecen prometedoras:

  • Recuperación semántica. El enfoque actual usa detección de categorías y puntuación de relevancia. Con conjuntos de datos mayores se podría pasar a embeddings y búsqueda vectorial.
  • Ingesta de documentos. El personal administrativo podría subir archivos revisados, como avisos en PDF, normativas, manuales, horarios y guías del estudiante, y la aplicación los indexaría por sí sola.
  • Integración con el LMS. La información real y aprobada podría llegar directamente del LMS en lugar de archivos JSON de demostración.
  • Autenticación de estudiantes. Con los controles de acceso adecuados, los estudiantes que inicien sesión verían la información de su propio programa o curso.
  • Analítica para la administración. Las instituciones podrían saber qué preguntas surgen más y qué información les cuesta más encontrar a los estudiantes.
  • Despliegue en la nube. La versión actual se ejecuta en local, pero podría convertirse en un servicio web escalable en Google Cloud.

La idea en una línea

La pregunta de partida era si los estudiantes pueden acceder a la información del campus de forma más natural sin renunciar a la fiabilidad. Gemini aporta la comprensión del lenguaje y la generación multilingüe. Combinarlo con recuperación, datos estructurados, atribución de fuentes y disposición a decir que no es lo que lo convierte en algo mejor que un chatbot básico.

Pregunta con naturalidad. Recupera con cuidado. Genera a partir de información de confianza.