RAG (Retrieval-Augmented Generation): qué es
Tecnica que combina busqueda en tu base de datos con un LLM para generar respuestas basadas en documentos reales, no en memoria.
Definición rápida
Tecnica que combina busqueda en tu base de datos con un LLM para generar respuestas basadas en documentos reales, no en memoria.
En este término
Que es RAG?
Te permite responder con tus PDFs, Notion o tickets sin reentrenar el modelo.
Como funciona
- Indexado: divides docs en chunks 400-600 tokens con 10% overlap, generas embeddings con
text-embedding-3-smally guardas en pgvector/Qdrant. - Retrieval: embeddeas la query y buscas top-k=5 por similitud coseno.
- Generation: inyectas los chunks: “Responde solo con este contexto:\n{{context}}”.
El truco es el chunking y el reranking. Un mal chunk partido a mitad de funcion baja el recall del 84% al 40%.
// RAG minimo con OpenAI + Supabase
import OpenAI from 'openai';
const openai = new OpenAI();
const qEmb = await openai.embeddings.create({ model: 'text-embedding-3-small', input: query });
const { data: chunks } = await supabase.rpc('match_docs', { query_embedding: qEmb.data[0].embedding, match_count: 5 });
const context = chunks.map(c => c.content).join('\n---\n');
const res = await openai.chat.completions.create({
model: 'gpt-4o-mini',
messages: [{ role: 'system', content: 'Responde solo con este contexto:\n'+context }, { role: 'user', content: query }],
temperature: 0
});
Cuando usarlo
Datos privados o cambiantes, citar fuentes. No para razonamiento puro sin corpus.
Errores comunes
- k=20: mete ruido y gasta 8k tokens. Empieza con k=5 + reranker.
- Sin filtro por user_id: filtras datos privados.
- Chunk 2000 tokens: diluye embedding. Usa 500 semanticos.
Coste real
En francobosg, cada post es un chunk. Coste medio $0.02 por query con reranking manual por tags.
Duda sobre RAG (Retrieval-Augmented Generation)? Escribeme por LinkedIn.
Preguntas frecuentes
RAG es mejor que fine-tuning?
Para datos que cambian, si. RAG busca y cita fuentes sin reentrenar.
Que BBDD usar para RAG?
Supabase pgvector, Qdrant o Pinecone. Supabase es gratis para empezar.
Términos relacionados
Embeddings
Vectores numericos que representan el significado de un texto; textos similares quedan cerca en el espacio.
Chunking
Dividir documentos largos en trozos 300-800 tokens para embedear sin perder contexto.
Vector Database
Base de datos optimizada para guardar embeddings y buscar por similitud en milisegundos.
Alucinacion (Hallucination)
Cuando un LLM inventa datos con confianza porque no encuentra la respuesta.
Artículos para profundizar
Error 'Context Length Exceeded' en OpenAI y Claude: Cómo Solucionarlo
¿'Maximum context length exceeded' al llamar a la API de OpenAI o Claude? Causas, límites por modelo y 4 técnicas para solucionarlo: chunking, RAG, resumen y sliding window.
Crear un Agente de IA con LangChain y Node.js (2026)
Tutorial paso a paso para construir un agente de IA con LangChain y Node.js. Con búsqueda web, RAG, memoria y API REST. Código completo.
Crear un Chatbot con RAG y OpenAI desde Cero (2026)
Crea un chatbot que responde con TUS datos: tutorial RAG paso a paso con Node.js, OpenAI y ChromaDB. Código completo.