Curso sobre RAG: 6 – Herramientas habituales para construir un sistema RAG

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
Idea clave:
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.

Advertencia:
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 vectorialTipoGestiónPunto fuerteCuándo usarla
FAISSMotor de búsquedaAutogestionadoRendimiento y controlPrototipos, investigación, pruebas locales
ChromaBase vectorialAutogestionada (simple)Facilidad de usoPrimeros RAG, PoC, proyectos pequeños
PineconeBase vectorial cloudGestionadaEscalabilidad y fiabilidadProducción empresarial sin infraestructura propia
QdrantBase vectorialAutogestionada o cloudFiltros por metadatosRAG con lógica de negocio y control por roles
WeaviateBase vectorial avanzadaAutogestionada o cloudBúsqueda semántica complejaProyectos con relaciones y capas semánticas ricas
Conclusión rápida:
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.
Nota práctica:
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.

Consejo práctico:
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.

Recapitulación final:
  • 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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio