Capítulo 10: RAG — Retrieval Augmented Generation
En el capítulo anterior aprendimos sobre embeddings y búsqueda semántica. Ahora vamos a usar esa búsqueda para algo más poderoso: hacer que un modelo responda preguntas sobre tus propios documentos.
RAG significa "Retrieval Augmented Generation":
- Retrieval: Buscar información relevante
- Augmented: Aumentar el prompt con esa información
- Generation: Generar una respuesta basada en el contexto
Es el patrón que usan los chatbots empresariales para responder sobre políticas internas, manuales de producto, o cualquier documento privado.
Código Primero
Construyamos un asistente que responde preguntas sobre políticas de empresa:
Eso es todo. En ~60 líneas tienes un sistema RAG funcional.
¿Qué Acaba de Pasar?
El flujo RAG tiene dos fases:
La clave está en el prompt final. El modelo no "sabe" sobre tus documentos, pero puede razonar sobre la información que le pasas en el contexto.
El Truco del Contexto
Sin RAG:
Con RAG:
El modelo usa la información del contexto para dar respuestas precisas.
Chunking: Dividir Documentos Grandes
Un problema: ¿qué pasa si tus documentos son muy largos?
Los embeddings funcionan mejor con textos cortos (200-500 palabras). Si tienes un manual de 50 páginas, necesitas dividirlo en "chunks" (fragmentos).
Regla práctica: chunks de 200-500 palabras suelen funcionar bien. Muy cortos pierden contexto, muy largos diluyen la relevancia.
Citando Fuentes
Para que las respuestas sean verificables, haz que el modelo cite sus fuentes:
Integrándolo en React Router v7
Mejorando la Precisión
Si las respuestas no son lo suficientemente precisas, hay varias técnicas:
1. Buscar más documentos
2. Filtrar por relevancia mínima
3. Mejor prompt de sistema
4. Agregar metadata
Resumen
| Paso | Función | Descripción |
|---|---|---|
| 1. Indexar | embedMany() | Convertir documentos a vectores |
| 2. Buscar | embed() + similitud | Encontrar docs relevantes |
| 3. Contexto | String con docs | Información para el modelo |
| 4. Generar | generateText() | Respuesta basada en contexto |
El flujo completo
¿Cuándo usar RAG?
| Usa RAG | No necesitas RAG |
|---|---|
| Documentos privados/actualizados | Conocimiento general |
| Necesitas citar fuentes | Respuestas creativas |
| Información cambia frecuentemente | Datos estáticos y simples |
| Manuales, políticas, FAQs | Chat casual |
En el próximo capítulo veremos Agentic RAG: cuando el modelo decide autónomamente si necesita buscar, qué buscar, y cuándo buscar de nuevo para responder preguntas complejas.
¿Ya compraste el libro?
Si compraste el libro y no encuentras tu email de descarga, ingresa tu email y te enviamos un nuevo enlace.
