RAG Chatbot
Chatbot RAG que responde preguntas sobre una base de conocimiento usando LangChain y Gemini.Chatbot RAG qui répond aux questions sur une base de connaissances en utilisant LangChain et Gemini.
El problemaLe problème
Entrevista técnica para AI Partners. El ejercicio: construir un chatbot RAG sobre una base de conocimiento ficticia de la empresa, deployado detrás de una interfaz web simple.Entretien technique pour AI Partners. L'exercice : construire un chatbot RAG sur une base de connaissances fictive de l'entreprise, déployé derrière une interface web simple.
El objetivo no era un sistema de producción, sino demostrar razonamiento sobre un problema real de Generative AI, trade-offs pragmáticos bajo presión de tiempo, y un sistema que funcione end-to-end.L'objectif n'était pas un système de production, mais de démontrer le raisonnement sur un vrai problème de Generative AI, des compromis pragmatiques sous pression de temps, et un système qui fonctionne de bout en bout.
Cómo funcionaComment ça marche
Ingesta
Carga el documento de conocimiento, lo divide en chunks de ~500-1000 tokens con overlap.Charge le document de connaissances, le divise en chunks de ~500-1000 tokens avec chevauchement.
Embeddings + IndexaciónEmbeddings + Indexation
Embedding de chunks, almacenamiento en Chroma vector store.Embedding des chunks, stockage dans Chroma vector store.
Retrieval
Búsqueda de similitud top-k sobre la pregunta del usuario.Recherche de similarité top-k sur la question de l'utilisateur.
Generación verificadaGénération vérifiée
Prompt con contexto recuperado + pregunta. Responder solo desde el contexto, admitir cuando no sabe.Prompt avec contexte récupéré + question. Répondre uniquement depuis le contexte, admettre quand il ne sait pas.
Stack técnicoStack technique
Decisiones claveDécisions clés
Chroma sobre FAISS —más simple para un corpus pequeño, sin setup externo.plus simple pour un petit corpus, sans setup externe.
Gemini sobre OpenAI —el ejercicio pedía GCP, y Gemini tiene un free tier generoso.l'exercice demandait GCP, et Gemini a un free tier généreux.
Grounding estricto —el chatbot dice "no sé" cuando la pregunta no está en la base. Sin alucinaciones.le chatbot dit "je ne sais pas" quand la question n'est pas dans la base. Sans hallucinations.
Streamlit —la forma más rápida de tener una UI funcional sin frontend custom.la façon la plus rapide d'avoir une UI fonctionnelle sans frontend custom.