juan.sabogal
Deployed

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

01

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.

02

Embeddings + IndexaciónEmbeddings + Indexation

Embedding de chunks, almacenamiento en Chroma vector store.Embedding des chunks, stockage dans Chroma vector store.

03

Retrieval

Búsqueda de similitud top-k sobre la pregunta del usuario.Recherche de similarité top-k sur la question de l'utilisateur.

04

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

PythonLangChainGeminiChromaStreamlitDocker

Decisiones claveDécisions clés

Chroma sobre FAISSmás simple para un corpus pequeño, sin setup externo.plus simple pour un petit corpus, sans setup externe.

Gemini sobre OpenAIel 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 estrictoel 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.

Streamlitla 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.