Chatbot universitario con RAG: centralización de conocimiento
Desarrollo de un asistente virtual inteligente capaz de centralizar y democratizar el acceso a la información normativa universitaria. El sistema utiliza una arquitectura RAG (Retrieval-Augmented Generation) para procesar más de 1,500 documentos PDF, combinando un backend de Python optimizado para inferencia local con una interfaz moderna en React.
1. El problema: dispersión de datos
La comunidad universitaria enfrentaba un reto constante: la información vital (fechas, requisitos, planes de estudio) estaba fragmentada en miles de archivos PDF distribuidos en múltiples portales web.
El objetivo fue crear una 'fuente única de verdad' accesible mediante lenguaje natural, eliminando la fricción de buscar y leer documentos manualmente.
2. Fase 1: Ingeniería de Datos y ETL
El mayor desafío técnico residió en la calidad de los datos. Implementé un pipeline de ETL (Extract, Transform, Load) robusto para recolectar el dataset.
El Reto del OCR: Muchos documentos históricos eran imágenes escaneadas sin texto seleccionable. Desarrollé scripts de auditoría que detectaban fallos en la extracción y redirigían esos archivos a un flujo secundario con Tesseract OCR, asegurando cero pérdida de información crítica antes de la vectorización.
3. Fase 2: Arquitectura RAG y vectorización
Para mitigar las alucinaciones de los LLMs, implementé una memoria semántica utilizando ChromaDB. Optimicé la recuperación de información migrando a un modelo de embeddings multilingüe, permitiendo al sistema entender relaciones semánticas (ej: asociar 'admisión' con 'ingreso').
El modelo generativo seleccionado fue Gemma-2b-it, ejecutado con técnicas de cuantización de 4-bits para maximizar el rendimiento de inferencia en entornos con recursos de GPU limitados.
4. Integración Full Stack
El sistema se expone mediante una API RESTful construida con FastAPI, que orquesta la comunicación asíncrona entre el modelo de IA y el usuario.
La interfaz frontend fue desarrollada con React y Vite, priorizando la velocidad de carga y la experiencia de usuario. El resultado final redujo el tiempo de búsqueda de información compleja de varios minutos a segundos, validando la aplicación de IA Generativa local para la gestión del conocimiento.