Construye un sistema de preguntas y respuestas sobre tu base de conocimiento con RAG
Los LLM no conocen tu material privado y actualizado, y son propensos a alucinar. El RAG (generación aumentada por recuperación) hace que el modelo responda a partir de una base de conocimiento fiable con la lógica de "recuperar primero, generar después": uno de los enfoques de producción más prácticos hoy.
PorAI Resource Hub
Por qué hace falta RAG
Inyectar conocimiento afinando el modelo directamente es caro y lento de actualizar. El RAG mantiene el conocimiento en una base de datos externa y recupera los fragmentos relevantes bajo demanda para dárselos al modelo: barato y siempre al día.
Visión general del pipeline
Un sistema RAG típico tiene dos fases: una "fase de indexación" offline que procesa los documentos hasta convertirlos en vectores recuperables, y una "fase de consulta" online que recupera y genera una respuesta a partir de la pregunta del usuario.
Troceado de documentos y embeddings
Primero divide los documentos en fragmentos de tamaño adecuado. Demasiado grandes, la recuperación pierde precisión; demasiado pequeños, se pierde el contexto. Un enfoque habitual son unos pocos cientos de tokens con algo de solapamiento.
Después usa un modelo de embeddings para convertir cada fragmento en un vector y guardarlo en una base de datos vectorial (como pgvector, Milvus o Qdrant).
Recuperación vectorial y Top-K
Cuando un usuario hace una pregunta, conviértela también en vector, ejecuta una búsqueda por similitud en la base de datos y recupera los fragmentos más relevantes (Top-K).
Puedes combinar la búsqueda por palabras clave para una "recuperación híbrida" y aplicar reranking para mejorar aún más la calidad del recall.
Monta el contexto y genera la respuesta
Inserta los fragmentos recuperados en el prompt e indícale al modelo que "responda solo a partir del material proporcionado y diga con claridad si el material no contiene la respuesta": esto reduce mucho las alucinaciones.
Entre las optimizaciones avanzadas están la reescritura de la consulta, citar las fuentes, controlar la longitud del contexto, y deduplicar y filtrar los resultados de la recuperación.
Elegir una base de datos vectorial
La base de datos vectorial está en el corazón del RAG. Para prototipos, Chroma funciona en memoria sin configuración. Para cargas de producción, Qdrant (basado en Rust) y Pinecone (totalmente gestionado) ofrecen el mejor rendimiento y escalabilidad. Si ya usas PostgreSQL, pgvector evita añadir infraestructura nueva. Weaviate destaca cuando necesitas módulos de vectorización integrados y una API GraphQL.
Evaluar la calidad del RAG
Un sistema RAG es tan bueno como su recuperación y su generación. Mide la recuperación con Recall@K (¿el fragmento correcto aparece en los resultados Top-K?) y la generación con fidelidad (¿la respuesta se basa en el contexto recuperado?) y relevancia (¿responde realmente a la pregunta?). Frameworks como RAGAS automatizan estas métricas para que puedas seguir la calidad mientras iteras sobre estrategias de troceado, modelos de embedding y plantillas de prompts.