RAG - Retrieval Augmented Generation
Generación Aumentada por Recuperación
Una vez entendido el flujo de un sistema RAG, el siguiente paso natural es conocer qué piezas tecnológicas suelen usarse para construirlo.
Es importante aclarar algo desde el principio:
Un RAG no depende de una herramienta concreta, sino de una arquitectura bien pensada.
Las herramientas cambian, la arquitectura permanece.
Las cuatro categorías de herramientas en un RAG
Casi todos los sistemas RAG se apoyan en cuatro tipos de herramientas claramente diferenciadas:
- Gestión de documentos
- Generación de embeddings
- Base de datos vectorial
- Modelo de lenguaje (LLM)
Vamos a ver cada una de ellas con ejemplos habituales.
1. Herramientas para gestionar documentos
Este bloque se encarga de:
- Cargar documentos
- Limpiarlos
- Fragmentarlos
En proyectos sencillos, esto puede ser tan simple como:
- Ficheros Markdown
- HTML
- Textos en base de datos
En proyectos más complejos, suelen aparecer librerías de ayuda como:
- Frameworks de procesamiento de texto
- Utilidades para dividir documentos largos
- Herramientas para normalizar contenido
La herramienta importa menos que la calidad y estructura del texto resultante.
2. Generación de embeddings
Los embeddings son los que permiten la búsqueda semántica.
Para generarlos, se utilizan modelos especializados que transforman texto en vectores numéricos.
Algunas opciones habituales:
- Modelos de OpenAI
- Modelos de Google (Gemini)
- Modelos open source
Desde el punto de vista arquitectónico, lo importante es que:
- El mismo modelo se use para documentos y preguntas
- Los embeddings sean consistentes en el tiempo
Cambiar de modelo de embeddings implica, en la mayoría de casos, recalcular toda la base vectorial.
Elegir embeddings “por probar” suele salir caro más adelante.
Bases de datos vectoriales más habituales en sistemas RAG
Las bases de datos vectoriales son una pieza clave en cualquier arquitectura RAG. Su función es almacenar representaciones numéricas (embeddings) de los textos y permitir búsquedas por similitud semántica.
A continuación se muestran algunas de las opciones más utilizadas, con una breve descripción para entender en qué contexto encaja cada una.
- FAISS — https://github.com/facebookresearch/faiss
Librería open source desarrollada por Meta (Facebook AI Research). No es una base de datos completa, sino un motor de búsqueda de vectores muy eficiente. Ideal para prototipos, investigación y entornos donde se necesita máximo control sobre el indexado y el rendimiento. - Chroma — https://www.trychroma.com
Base de datos vectorial open source y ligera, pensada para desarrolladores. Muy fácil de usar y de ejecutar en local. Encaja perfectamente en pruebas de concepto, proyectos pequeños o primeros RAG donde se busca rapidez y simplicidad. - Pinecone — https://www.pinecone.io
Base de datos vectorial gestionada y nativa en la nube. Se encarga automáticamente del escalado, rendimiento y disponibilidad. Es una opción habitual en entornos de producción y proyectos empresariales donde no se quiere gestionar infraestructura. - Qdrant — https://qdrant.tech
Base de datos vectorial open source desarrollada en Rust. Destaca por su alto rendimiento y por permitir filtros avanzados basados en metadatos. Muy adecuada cuando el RAG necesita combinar búsqueda semántica con lógica de negocio (roles, clientes, estados, etc.). - Weaviate — https://weaviate.io
Base vectorial open source con funcionalidades avanzadas como búsquedas híbridas (vectoriales + tradicionales), API GraphQL y gestión de objetos con metadatos ricos. Es útil cuando se quiere construir una capa semántica compleja sobre los datos.
| Base vectorial | Tipo | Gestión | Punto fuerte | Cuándo usarla |
|---|---|---|---|---|
| FAISS | Motor de búsqueda | Autogestionado | Rendimiento y control | Prototipos, investigación, pruebas locales |
| Chroma | Base vectorial | Autogestionada (simple) | Facilidad de uso | Primeros RAG, PoC, proyectos pequeños |
| Pinecone | Base vectorial cloud | Gestionada | Escalabilidad y fiabilidad | Producción empresarial sin infraestructura propia |
| Qdrant | Base vectorial | Autogestionada o cloud | Filtros por metadatos | RAG con lógica de negocio y control por roles |
| Weaviate | Base vectorial avanzada | Autogestionada o cloud | Búsqueda semántica compleja | Proyectos con relaciones y capas semánticas ricas |
Para aprender y experimentar, Chroma o FAISS suelen ser más que suficientes. A medida que el proyecto crece, Qdrant, Weaviate o Pinecone permiten escalar sin cambiar el enfoque RAG.
Para empezar con RAG, no es necesario elegir la opción más compleja. Lo importante es entender el flujo completo. La base vectorial se puede cambiar más adelante si la arquitectura está bien diseñada.
4. Modelos de lenguaje (LLM)
El modelo de lenguaje es el encargado de:
- Leer los fragmentos recuperados
- Entender la pregunta
- Redactar la respuesta
Aquí encontramos opciones como:
- Modelos de OpenAI
- Modelos de Google Gemini
- Otros modelos comerciales u open source
Desde el punto de vista del RAG, el modelo:
- No necesita saber nada del negocio
- No debe “inventar”
- Debe seguir bien las instrucciones
Por eso, en RAG suele ser más importante un buen prompt de control que el modelo más grande disponible.
Frameworks que lo conectan todo
Además de las piezas individuales, existen frameworks que ayudan a conectarlas:
- Orquestan el flujo
- Reducen código repetitivo
- Facilitan pruebas
Son útiles, pero no imprescindibles.
De hecho, entender primero el RAG “a mano” ayuda mucho a no depender ciegamente de ellos.
Empieza simple. Añade frameworks solo cuando el problema lo justifique.
Qué herramienta elegir para empezar
Para un primer RAG:
- Poca documentación
- Una base vectorial sencilla
- Un único modelo de embeddings
- Un solo modelo de lenguaje
La prioridad no es el stack, sino ver el sistema funcionando de principio a fin.
- Un RAG se compone de piezas intercambiables
- La arquitectura es más importante que la herramienta
- Embeddings y base vectorial son el corazón del sistema
- Empezar simple reduce errores
En la próxima entrada bajaremos un nivel más: un primer RAG con ejemplo práctico y flujo real.
