Arquitectura Avanzado

RAG

Retrieval-Augmented Generation - Tecnica que combina busqueda de documentos con LLMs para generar respuestas basadas en informacion actualizada y especifica.

Pronunciación

/ræɡ/
"rag"
Escuchar en: Forvo

Que es

RAG (Retrieval-Augmented Generation) es una tecnica de AI que:

  1. Busca informacion relevante en tus documentos
  2. Recupera los fragmentos mas utiles
  3. Aumenta el prompt del LLM con ese contexto
  4. Genera respuestas basadas en datos reales

RAG resuelve el problema de que los LLMs no conocen tu informacion privada ni datos recientes.

Pronunciacion

IPA: /ræɡ/

Suena como: “rag” - como “trapo” en ingles, una sola silaba

Errores comunes:

  • “R-A-G” (deletreado) - incorrecto
  • “rague” - incorrecto

Por que RAG es importante

Sin RAG

Usuario: "Cual es la politica de vacaciones de mi empresa?"

LLM: "Las politicas de vacaciones varian segun la empresa.
      Generalmente incluyen 15-20 dias al ano..."

[Respuesta generica, no conoce TU empresa]

Con RAG

Usuario: "Cual es la politica de vacaciones de mi empresa?"

Sistema RAG:
  1. Busca en documentos de RRHH
  2. Encuentra: politica_vacaciones_2026.pdf
  3. Extrae: "20 dias habiles + 5 por antiguedad"

LLM + Contexto: "Segun la politica vigente, tienes 20 dias
                 habiles de vacaciones, mas 5 adicionales
                 por tus 3 anos de antiguedad. El proceso
                 de solicitud es..."

[Respuesta especifica con datos reales]

Como funciona

┌─────────────────────────────────────────────────────────────┐
│                    ARQUITECTURA RAG                          │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│   1. INDEXACION (preparacion, una vez)                      │
│   ┌──────────────────────────────────────────────────────┐  │
│   │  Documentos → Chunks → Embeddings → Vector DB        │  │
│   │                                                       │  │
│   │  PDF, Word, Wiki    Fragmentos    Vectores numericos │  │
│   │  Confluence, Notion  de ~500 tokens  representando   │  │
│   │  Codigo, FAQs                      significado        │  │
│   └──────────────────────────────────────────────────────┘  │
│                                                              │
│   2. CONSULTA (cada pregunta)                               │
│   ┌──────────────────────────────────────────────────────┐  │
│   │                                                       │  │
│   │  Pregunta ──→ Embedding ──→ Busqueda Vectorial      │  │
│   │     │              │              │                   │  │
│   │     ▼              ▼              ▼                   │  │
│   │  "Como         [0.2, 0.8,    Top 5 chunks           │  │
│   │   configuro     0.1, ...]    mas similares           │  │
│   │   el SSO?"                                            │  │
│   │                                                       │  │
│   └──────────────────────────────────────────────────────┘  │
│                                                              │
│   3. GENERACION                                             │
│   ┌──────────────────────────────────────────────────────┐  │
│   │                                                       │  │
│   │  Prompt = Pregunta + Contexto recuperado             │  │
│   │                                                       │  │
│   │  "Basandote en esta documentacion:                   │  │
│   │   [chunk1] [chunk2] [chunk3]                         │  │
│   │   Responde: Como configuro el SSO?"                  │  │
│   │                                                       │  │
│   │           │                                           │  │
│   │           ▼                                           │  │
│   │        LLM genera respuesta fundamentada             │  │
│   │                                                       │  │
│   └──────────────────────────────────────────────────────┘  │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Componentes clave

ComponenteFuncionEjemplos
EmbeddingsConvertir texto a vectoresOpenAI Ada, Cohere, Sentence-BERT
Vector DBAlmacenar y buscar vectoresPinecone, Weaviate, Chroma, pgvector
ChunkingDividir documentosPor parrafos, semantico, hibrido
RerankingMejorar relevanciaCohere Rerank, Cross-encoders
LLMGenerar respuestaGPT-4, Claude, Llama

Caso practico: Chatbot de soporte

// Ejemplo simplificado con LangChain
import { OpenAIEmbeddings } from "langchain/embeddings/openai";
import { PineconeStore } from "langchain/vectorstores/pinecone";
import { ChatOpenAI } from "langchain/chat_models/openai";

// 1. Buscar documentos relevantes
const vectorStore = await PineconeStore.fromExisting(
  new OpenAIEmbeddings(),
  { pineconeIndex }
);

const relevantDocs = await vectorStore.similaritySearch(
  "Como reseteo mi password?",
  5  // top 5 resultados
);

// 2. Generar respuesta con contexto
const llm = new ChatOpenAI({ modelName: "gpt-4" });

const response = await llm.invoke([
  {
    role: "system",
    content: `Eres un agente de soporte. Usa SOLO esta informacion:
              ${relevantDocs.map(d => d.pageContent).join('\n\n')}`
  },
  {
    role: "user",
    content: "Como reseteo mi password?"
  }
]);

Ventajas vs Fine-tuning

AspectoRAGFine-tuning
ActualizacionInstantaneaRequiere re-entrenar
CostoBajo (solo inference)Alto (entrenamiento)
TrazabilidadCita fuentes”Caja negra”
Datos privadosPermanecen localesSe incorporan al modelo
Mejor paraFAQ, documentacionTono, formato especifico

Mejores practicas

Do

  • Usar chunks de 200-500 tokens
  • Implementar reranking para mejor precision
  • Incluir metadatos (fecha, fuente, autor)
  • Versionar tus indices
  • Filtrar por relevancia minima

Dont

  • Chunks muy grandes (pierde relevancia)
  • Chunks muy pequenos (pierde contexto)
  • Ignorar la calidad de documentos fuente
  • Omitir el manejo de “no se”

Metricas importantes

┌────────────────────────────────────────┐
│   KPIs PARA RAG                         │
├────────────────────────────────────────┤
│                                         │
│   Retrieval:                           │
│   - Precision@K: % relevantes en top K │
│   - Recall: % documentos encontrados   │
│   - MRR: Posicion del primer relevante │
│                                         │
│   Generation:                          │
│   - Faithfulness: Fidelidad al contexto│
│   - Answer relevancy: Util para user   │
│   - Hallucination rate: Invenciones    │
│                                         │
└────────────────────────────────────────┘

Terminos relacionados

  • [[LLM]] - El modelo que genera las respuestas
  • [[Agentic AI]] - Agentes que usan RAG para tareas complejas
  • [[MCP]] - Protocolo para conectar RAG a multiples fuentes

Recuerda: RAG es tan bueno como tus documentos. Garbage in, garbage out. Invierte en la calidad y organizacion de tu base de conocimiento.