Chatbot de Soporte con
Base de Datos Vectorial
Sistema RAG (Retrieval-Augmented Generation) que responde preguntas de soporte técnico buscando semánticamente en una base de conocimiento vectorial antes de generar la respuesta con GPT-4o. Sin alucinaciones, respuestas ancladas a documentación real.
¿Qué problema resuelve?
Los modelos de lenguaje como GPT-4o tienen un conocimiento estático: no saben nada sobre la documentación interna de tu empresa. Si le preguntas al modelo "¿cuántos proyectos permite el Plan Free de NexusTask?", inventará una respuesta.
RAG soluciona esto recuperando información relevante de una base de conocimiento antes de generar la respuesta, de forma que el modelo solo trabaja con datos reales y verificados. El resultado es un chatbot de soporte que responde con precisión sin necesidad de hacer fine-tuning del modelo.
¿Cómo funciona?
Ingesta de documentos
~100 fragmentos de documentación de NexusTask se cargan como objetos Document.
El RecursiveCharacterTextSplitter los divide
en chunks de 1000 caracteres con 200 de solapamiento para no perder contexto en los cortes.
Generación de embeddings
Cada chunk se convierte en un vector de 1536 dimensiones usando
text-embedding-3-small de OpenAI.
Los vectores capturan el significado semántico del texto, permitiendo encontrar documentos
relacionados aunque no compartan palabras exactas con la pregunta.
Índice vectorial con FAISS
Los vectores se indexan en FAISS (Facebook AI Similarity Search), una librería optimizada para búsqueda por similitud coseno en alta dimensionalidad. FAISS permite encontrar los K vecinos más cercanos en milisegundos incluso con millones de vectores.
Retrieval semántico
La pregunta del usuario se convierte también en embedding y FAISS recupera los
3 fragmentos más similares semánticamente
(k=3).
Estos fragmentos forman el contexto que se inyectará en el prompt.
Generación con GPT-4o
Los 3 fragmentos recuperados + la pregunta original se envían a GPT-4o
mediante una create_retrieval_chain.
El prompt de sistema instruye al modelo a responder únicamente con la información
del contexto — si no hay información suficiente, responde que no sabe.
Flujo de datos
Stack técnico
Orquestación del pipeline RAG: retrieval chain, document chain, prompt templates.
Vector store en memoria para búsqueda por similitud coseno de alta eficiencia.
Modelo text-embedding-3-small para convertir texto en vectores semánticos.
Modelo generativo que produce respuestas en lenguaje natural ancladas al contexto recuperado.
Proyecto personal · Python · 2025