Capítulo 12 — RAG (Generación Aumentada por Recuperación)
TL;DR: RAG combina recuperación (embeddings + búsqueda) con generación (LLM). El agente recupera documentos relevantes antes de generar la respuesta, reduciendo alucinaciones y manteniendo la respuesta anclada en hechos.
El pipeline RAG
Sección titulada «El pipeline RAG»graph TD
Q[Pregunta del usuario] --> E[Embeddar pregunta]
E --> S[Buscar chunks relevantes]
S --> C[Montar contexto]
C --> P[Prompt con contexto + pregunta]
P --> LLM[LLM genera respuesta]
LLM --> R[Respuesta fundada en hechos]
Código do diagrama
graph TD
Q[Pregunta del usuario] --> E[Embeddar pregunta]
E --> S[Buscar chunks relevantes]
S --> C[Montar contexto]
C --> P[Prompt con contexto + pregunta]
P --> LLM[LLM genera respuesta]
LLM --> R[Respuesta fundada en hechos]
Calidad del RAG
Sección titulada «Calidad del RAG»Tres métricas importan:
- Recall — ¿estaba el chunk correcto en los top-k recuperados?
- Precision — ¿cuántos chunks recuperados eran realmente relevantes?
- Latencia — ¿cuánto tiempo tarda recuperar, montar contexto y generar?
async function rag(query: string) { const chunks = await semanticSearch(query, k: 5); const context = chunks.map(c => c.content).join("\n---\n");
return await llm.generate({ prompt: `Basado en este contexto:\n${context}\n\nResponde: ${query}` });}