Holi!
  • Sobre mí
  • Proyectos
  • Experiencia
  • Contacto
  • Currículum

Chatbot con RAG – Reglamento de Admisión

Producto desplegado en la nube que utiliza RAG con LangChain y Ollama para responder consultas sobre admisión. Enfocado en recuperación semántica con interfaz gráfica.

Funcionalidades Clave

  • Respuestas rápidas y precisas basadas en documentos oficiales.
  • Interfaz gráfica intuitiva para usuarios finales.
  • Despliegue en la nube para acceso global.

Prueba el Producto

Haz clic en el enlace para interactuar con el chatbot en vivo:

Ir al Chatbot

Diagrama de Arquitectura

Croquis del flujo del chatbot RAG

Diagrama inicial del flujo de datos y componentes del sistema RAG.

Fragmento de Código Destacado

Este fragmento en Python muestra la inicialización de la cadena de QA (Question-Answering) con LangChain, el núcleo del sistema RAG.

rag_chain.py

from langchain.chains import RetrievalQA
from langchain.llms import Ollama
from langchain.vectorstores import FAISS

# Cargar el vectorstore previamente creado
vectorstore = FAISS.load_local("faiss_index_admision")

# Inicializar el modelo de lenguaje local con Ollama
llm = Ollama(model="llama2")

# Crear la cadena de Retrieval QA
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever()
)
        

Resumen del Proyecto: Asistente RAG para Admisión Universitaria

El proyecto es un sistema de Asistente Virtual Inteligente diseñado para guiar a los postulantes durante el proceso de admisión de la Universidad Nacional de Moquegua (UNAM). Su objetivo principal es responder de manera precisa y amigable a las preguntas de los usuarios sobre requisitos, fechas, costos, carreras, vacantes y otros detalles del proceso, utilizando como base de conocimiento los documentos oficiales de admisión.

Funcionalidad y Arquitectura

El sistema está construido con una arquitectura cliente-servidor desacoplada:

  • Backend (Servidor): Desarrollado en Python con el framework FastAPI. Es el cerebro de la aplicación y se encarga de la lógica de Recuperación Aumentada por Generación (RAG).
  • Frontend (Cliente): Una aplicación de página única (SPA) desarrollada con React, que proporciona la interfaz de chat con la que interactúa el usuario.

Implementación Detallada

El flujo de trabajo es el siguiente:

  1. El usuario envía una pregunta a través de la interfaz de chat del frontend.
  2. El frontend envía la pregunta al endpoint /chat del backend de FastAPI.
  3. El backend utiliza un modelo de embeddings (Google embedding-001) para convertir la pregunta en un vector numérico.
  4. Este vector se usa para buscar los fragmentos de texto más relevantes en una base de datos vectorial ChromaDB.
  5. Los fragmentos de texto recuperados se insertan en un prompt cuidadosamente diseñado junto con la pregunta original y el historial de la conversación.
  6. Este prompt completo se envía a un Modelo de Lenguaje Grande (LLM), específicamente Google Gemini Pro, para generar una respuesta coherente y contextualizada.
  7. La respuesta generada se devuelve al frontend en tiempo real (vía streaming) y se muestra al usuario en la interfaz de chat.

Tecnologías Utilizadas

  • Backend: Python 3, FastAPI, LlamaIndex, ChromaDB, Google Gemini Pro, Google embedding-001, Uvicorn.
  • Frontend: React, JavaScript (JSX), Vite, Tailwind CSS, React Icons.
  • Control de Versiones: Git.