Tabla de contenidos
- 1. ¿Qué es el RAG? — Retrieval-Augmented Generation
- 2. Por qué hace falta el RAG — los 3 límites del LLM solo
- 3. Cómo funciona — el RAG en 3 pasos
- 4. Componentes principales del RAG
- 5. Qué es una base de datos vectorial
- 6. Usos principales — dónde se aplica el RAG
- 7. RAG vs fine-tuning — cuál elegir
- 8. Antes de construirlo tú — prueba con tus propios documentos
- 9. Cómo implementarlo — RAG con LangChain
- 10. Retos del RAG y cómo afrontarlos
- 11. Lista de herramientas y servicios principales
- Preguntas frecuentes
«Quiero que ChatGPT consulte el manual de mi empresa y responda preguntas». «Quiero buscar y resumir investigaciones nuevas». Para estas tareas, el conocimiento aprendido por el modelo puede no bastar: puedes proporcionar los documentos que necesita al responder.
Una opción es RAG (Retrieval-Augmented Generation, generación aumentada por recuperación): busca información relevante en fuentes externas y la incorpora al contexto de la respuesta. Las funciones listas para usar también consultan documentos, pero subir un archivo no activa siempre el mismo proceso de búsqueda.
En este artículo explicamos en 3 pasos visuales cómo funciona el RAG y abordamos las bases vectoriales, la implementación con LangChain y cuándo conviene RAG o fine-tuning de forma comprensible para principiantes pero también técnicamente rigurosa.
RAG (Retrieval-Augmented Generation)
Generación aumentada por recuperación: conocimiento externo para el LLM
Chroma / pgvector
Gemini / Llama
Manuales / FAQ
Papers / noticias
↓ Se envía al LLM
1. ¿Qué es el RAG? — Retrieval-Augmented Generation
RAG (Retrieval-Augmented Generation) significa literalmente «generación (Generation) aumentada (Augmented) con búsqueda (Retrieval)». En español se traduce habitualmente como «generación aumentada por recuperación».
En pocas palabras: un LLM utiliza información relevante recuperada de fuentes externas al generar su respuesta. Los diagramas muestran el patrón básico: buscar primero y responder después. También puedes usar bases existentes o búsqueda por palabras clave; una base vectorial no es obligatoria.
Una analogía culinaria
Un LLM por sí solo es como «un chef que cocina solo de memoria». Es brillante, pero no puede preparar recetas que no conoce ni sabe qué hay en la nevera.
El RAG es el sistema que «le entrega al chef un libro de recetas, le cuenta qué hay en la nevera y, después, lo pone a cocinar». Así, el chef puede consultar el recetario y crear el mejor plato posible con los ingredientes disponibles.
El papel de «Retrieval», «Augmented» y «Generation»
| Palabra | Significado | Función dentro del RAG |
|---|---|---|
| Retrieval | Búsqueda / recuperación | Extrae de la base de datos los documentos relevantes para la pregunta |
| Augmented | Aumento / refuerzo | Añade esa información al prompt antes de pasarlo al LLM |
| Generation | Generación | El LLM redacta la respuesta apoyándose en los resultados de la búsqueda |
La clave es que no se reentrena al LLM, sino que cada vez que llega una pregunta se le suministra «el conocimiento necesario» desde fuera. Esa es la diferencia decisiva con el fine-tuning, que veremos más adelante.
La guía de recuperación de LangChain explica el patrón básico y el uso de bases SQL o sistemas de documentos existentes.
2. Por qué hace falta el RAG — los 3 límites del LLM solo
Hay tres problemas que un LLM como ChatGPT o Claude no puede resolver por sí solo.
Límite 1: corte de conocimiento (frescura de la información)
El conocimiento aprendido por un modelo no permite verificar por sí solo lo que cambió después del entrenamiento. El corte de conocimiento varía según el modelo; los hechos posteriores requieren documentos o resultados de búsqueda.
- «¿Qué producto se anunció ayer?» → consultar el anuncio
- «¿Qué cambió en las condiciones la semana pasada?» → consultar la nueva versión
- «¿Cuál es el tipo de cambio de hoy?» → consultar datos con fecha y hora
RAG puede usar noticias, bases de datos o APIs. Pero las fuentes desactualizadas también producen respuestas desactualizadas: hay que mantener los documentos y revisar la búsqueda.
Límite 2: alucinaciones (mentiras verosímiles)
Los LLM tienden a inventarse respuestas que parecen creíbles incluso cuando no saben la respuesta. A esto se le llama alucinación.
Sin proporcionar una política privada, el modelo podría inventar una cifra plausible sobre las vacaciones de una empresa. Es un ejemplo explicativo, no una respuesta ejecutada u observada para este artículo.
RAG recupera documentos para ayudar a fundamentar la respuesta. Los metadatos permiten mostrar nombres o páginas, pero una cita no demuestra que la respuesta sea correcta: la búsqueda puede omitir información y el modelo puede interpretarla mal.
Límite 3: imposibilidad de acceder a datos internos o privados
No presupongas que un modelo público conoce los manuales o contratos privados de tu empresa. Antes de entregarlos, comprueba si puedes utilizarlos y adónde se enviarán.
RAG selecciona material relevante, pero no garantiza la confidencialidad. Aunque la base sea propia, las APIs externas de embeddings o LLM reciben documentos, preguntas o fragmentos. Revisa permisos durante la búsqueda, destinos, almacenamiento y registros; las FAQ distinguen estos aspectos.
3. Cómo funciona — el RAG en 3 pasos
El funcionamiento del RAG se divide en dos fases: «preparación previa (creación del índice)» y «tiempo de ejecución (respuesta a la pregunta)».
Diagrama completo del pipeline RAG
Flujo íntegro desde la pregunta hasta la respuesta
Fase de preparación — vectorizar los documentos y guardarlos
- Recopilación de documentos: PDF, Word, HTML, Markdown..., reúnes los documentos que quieres usar
- División en chunks: trocea cada documento en fragmentos del tamaño adecuado (por ejemplo, 500-1000 caracteres)
- Embedding: pasa cada chunk por un modelo de embeddings (por ejemplo, text-embedding-3-small de OpenAI) y conviértelo en un vector de, por ejemplo, 1536 dimensiones (un array de números)
- Guardar en la base vectorial: almacena cada chunk junto a su vector en una BD especializada (Pinecone, Qdrant, etc.)
Esta tarea se ejecuta cuando se añaden o actualizan documentos.
Fase de ejecución — responder a la pregunta en 3 pasos
Cuando llega una pregunta del usuario, el flujo es el siguiente.
- Paso 1: Retrieval (búsqueda)
- Vectoriza la pregunta con el mismo modelo de embeddings
- Recupera los K fragmentos más cercanos al vector de la pregunta (3 en este ejemplo)
- Para medir la cercanía se suele usar la similitud del coseno
- Paso 2: Augmented (aumento)
- Inserta los chunks recuperados como «información de referencia» en el prompt
- Algo así como: «Responde a la pregunta usando la siguiente información como referencia: [resultados]. Pregunta: [pregunta del usuario]»
- Paso 3: Generation (generación)
- El LLM (GPT, Claude, Gemini, etc.) genera la respuesta basándose en la información proporcionada
- Si procede, añade citas de «qué documentos consultó»
Ejemplo concreto: preguntar a ChatGPT por el reglamento interno
Los días, la antigüedad y los números de artículo siguientes pertenecen a una política ficticia; no representan un derecho real.
Flujo para la pregunta «¿cuántos días de vacaciones pagadas tengo?»:
- El modelo de embeddings vectoriza la pregunta → [0.12, -0.45, 0.78, ...]
- Se recuperan de la BD vectorial 3 chunks relacionados con «vacaciones» o «descanso retribuido»
- Chunks recuperados: «Artículo 15. Vacaciones anuales pagadas. Tras 6 meses en la empresa se conceden 10 días...», «hasta un máximo de 20 días según la antigüedad...», etc.
- Se monta el prompt: «Información de referencia: artículo 15... Pregunta: ¿cuántos días de vacaciones pagadas tengo?»
- El LLM responde: «Tras 6 meses en la empresa se conceden 10 días, ampliables hasta 20 según la antigüedad (véase el artículo 15 del reglamento interno)»
4. Componentes principales del RAG
Veamos los 5 componentes que forman un RAG.
1) Modelo de embeddings (Embedding Model)
Es el modelo de IA que convierte texto en vectores numéricos. Está entrenado para que «los textos semánticamente parecidos queden cerca también en el espacio vectorial».
| Modelo | Proveedor | Características |
|---|---|---|
| text-embedding-3-small | OpenAI | 1536 dimensiones por defecto; reducibles con dimensions |
| text-embedding-3-large | OpenAI | 3072 dimensiones por defecto; reducibles con dimensions |
| voyage-4 | Voyage AI | Presentado en la documentación de Anthropic; también hay versión ligera y de pesos abiertos |
| Cohere Embed | Cohere | Candidato para buscar en documentos multilingües |
| multilingual-e5-large | Microsoft (modelo público) | Candidato local; comprobar condiciones de uso y recursos |
| BGE-M3 | BAAI (OSS) | Multilingüe; candidato para uso local |
La guía oficial de embeddings explica las dimensiones por defecto de OpenAI y su reducción. Evalúa candidatos con tus documentos, no solo por dimensiones. Una base o extensión almacena vectores y recupera los similares; se explica en la siguiente sección.
2) Base de datos vectorial
3) Motor de búsqueda (Retriever)
Además de la búsqueda vectorial, suele combinarse con búsqueda por palabras clave (BM25, etc.) o con búsqueda híbrida.
4) LLM (lado generador)
El gran modelo de lenguaje que produce la respuesta final: GPT, Claude, Gemini, Llama... Funciona tanto con APIs comerciales como con modelos OSS locales. Todas estas familias renuevan sus versiones sin parar, así que consulta los nombres de modelo actuales en nuestra lista de los principales modelos de IA.
5) Plantilla de prompt
Plantilla que combina los resultados de búsqueda con la pregunta del usuario antes de pasarlos al LLM. Es un elemento crítico para la precisión del RAG.
Eres un asistente experto en el reglamento interno.
Responde únicamente con base en la información de referencia siguiente.
Si la información de referencia no contiene la respuesta, responde "no dispongo de información".
[Información de referencia]
{retrieved_chunks}
[Pregunta]
{user_question}
[Respuesta]
5. Qué es una base de datos vectorial
Una base vectorial ofrece índices y funciones para almacenar vectores de alta dimensión y recuperar los similares. Puedes elegir un servicio dedicado o ampliar una base existente, como PostgreSQL con pgvector. La velocidad y la precisión dependen del índice, los datos y la configuración.
Comparativa de las principales BD vectoriales
| BD | Tipo | Características | Precio |
|---|---|---|---|
| Pinecone | SaaS gestionado | El servicio gestiona la infraestructura | Starter gratuito; Builder: 20 USD/mes. Standard: mínimo de 50 USD/mes; consumo adicional por separado (precios oficiales) |
| Weaviate | OSS + nube | API GraphQL, búsqueda híbrida | OSS gratuito; Cloud: Free y Flex desde 45 USD/mes (precios oficiales) |
| Qdrant | OSS + nube | Búsqueda vectorial y filtros de metadatos | Autoalojado o Cloud; recursos y tarifas de Cloud por separado |
| Chroma | OSS | Utilizable desde Python | Alojamiento y operación tienen costes propios |
| pgvector | Extensión PostgreSQL | Usa tu PostgreSQL existente | Revisa licencia y costes operativos de la base |
| Milvus | OSS + nube | Construcción de búsqueda vectorial | Autoalojado o Zilliz Cloud; condiciones diferentes |
| Elasticsearch | Motor de búsqueda | Búsqueda vectorial y por palabras clave | Según distribución, funciones y contrato; opción gestionada |
| Vertex AI Vector Search | Google Cloud | Integrado en el ecosistema GCP | Pago por uso |
Cuál elegir
Los precios de Pinecone y Weaviate se comprobaron en sus páginas oficiales el 9 de octubre de 2026. El software gratuito también requiere alojamiento y mantenimiento. Los costes de nube dependen de capacidad, búsquedas, funciones adicionales y otras opciones.
- Probar búsqueda en Python: Chroma o similar; prepara paquetes y modelos
- Aprovechar tu PostgreSQL: pgvector (unificas la BD)
- Delegar infraestructura: Pinecone u otro servicio gestionado; aún debes configurar índices, capacidad y permisos
- Autoalojamiento: Qdrant o Weaviate; gestiona operación y permisos
- Colecciones grandes: evalúa candidatos como Milvus con datos reales: índices, capacidad y búsqueda
Sobre dónde alojar todo esto, también te puede interesar la comparativa de PaaS (Vercel y similares) frente a hosting compartido, VPS y nube.
6. Usos principales — dónde se aplica el RAG
RAG puede apoyar respuestas basadas en documentos internos, productos y otras fuentes. Estos son ejemplos de usos posibles.
Caso 1: QA sobre documentación interna (base de conocimiento)
Busca reglamentos, manuales, especificaciones, actas o material comercial para responder a empleados. El diseño debe limitar los documentos según los permisos y reflejar sus cambios en el índice.
Caso 2: automatización de soporte al cliente
Se ragifican el FAQ y el histórico de soporte, y un chatbot atiende la primera línea automáticamente. Las personas operadoras se concentran en las consultas complejas.
Caso 3: Q&A de conocimiento experto en derecho o medicina
Busca legislación, resoluciones, artículos médicos o guías como referencia. Mostrar una fuente no demuestra su vigencia ni la exactitud de la respuesta. En decisiones importantes, una persona cualificada debe revisar originales, condiciones y jurisdicción.
Caso 4: búsqueda y resumen de papers de investigación
Busca artículos o resúmenes que puedas utilizar para preguntas sobre tendencias o investigaciones relacionadas. Indica fechas y alcance de las fuentes; verifica resultados y condiciones en los originales.
Caso 5: búsqueda de productos y FAQ en eCommerce
Un RAG que integra manuales, reseñas, política de devoluciones, etc. Permite búsquedas en lenguaje natural como «¿esta aspiradora va bien con pelo de mascotas?».
Caso 6: chat sobre documentación para personas desarrolladoras
Busca documentación de bibliotecas o APIs para responder preguntas como «¿hay un ejemplo para este procesamiento?». Consulta versiones y condiciones de los ejemplos recuperados.
Caso 7: búsqueda y explicación de la base de código interna
Busca código y diseños para explicar funciones o localizar implementaciones similares. Las herramientas de desarrollo también pueden consultar código, pero su procesamiento interno no tiene por qué coincidir con este diagrama. Ejemplos de herramientas para consultar código: GitHub Copilot y herramientas de IA para desarrollo como Cursor o Claude Code.
Caso 8: nuevas optimizaciones para IA como llms.txt
llms.txt es una propuesta para orientar a herramientas de IA hacia páginas seleccionadas. No garantiza que un servicio lea, indexe o cite esas páginas; comprueba el mecanismo de incorporación y los permisos.
7. RAG vs fine-tuning — cuál elegir
Junto con el RAG, el otro gran candidato cuando se habla de «dotar a un LLM de conocimiento propio» es el fine-tuning. Sus enfoques son radicalmente distintos.
RAG vs Fine-tuning
¿Cómo dotar de conocimiento al LLM? Dos enfoques radicalmente distintos
Define la respuesta esperada y evalúa búsqueda, instrucciones y entrenamiento según la tarea
Diferencia de fondo
| Aspecto | RAG | Fine-tuning |
|---|---|---|
| Enfoque | Pasa información desde fuera en tiempo de ejecución | Reentrena el propio modelo de antemano |
| Actualización | Actualizar documentos e índice; requiere procesamiento | El comportamiento aprendido exige entrenamiento adicional |
| Coste inicial | Preparación, índice, integración, permisos y evaluación | Datos, entrenamiento, integración y evaluación |
| Coste operativo | Búsqueda, almacenamiento, generación, actualización y evaluación | Generación, entrenamiento, almacenamiento y evaluación; según servicio |
| Respuestas erróneas | Posibles por búsqueda o interpretación | Posibles incluso tras entrenar |
| Fuentes | Conservar metadatos y comprobar que respaldan la respuesta | Por sí solo no busca ni verifica fuentes actuales |
| Estilo o tono | Instrucciones y ejemplos en el contexto | Ajustar con datos y evaluación |
| Datos cambiantes | Necesita fuentes actualizadas y búsqueda correcta | Los datos actuales necesitan una fuente o búsqueda adicional |
| Confidencialidad | Revisar destinos, permisos, almacenamiento y registros | Revisar datos de entrenamiento, destinos y condiciones de despliegue |
Cuándo encaja el RAG
- El conocimiento se actualiza con frecuencia (noticias, documentos internos, catálogo)
- Hay que demostrar las fuentes (derecho, medicina, finanzas)
- El material necesario cambia según la pregunta y quieres evaluar la búsqueda de fragmentos en vez de enviar todo
- Quieres probar consultas a documentos sin reentrenar el modelo
Cuándo encaja el fine-tuning
- Quieres un estilo o tono concreto (marca corporativa, personalidad)
- Quieres aprender los patrones de lenguaje de un dominio (terminología médica o jurídica)
- Quieres evaluar prompts más cortos o modelos menores, incluyendo el coste del entrenamiento
- Dispones de ejemplos de respuestas esperadas y datos de evaluación
La disponibilidad del entrenamiento adicional depende del servicio. La documentación oficial de OpenAI consultada el 9 de octubre de 2026 indica que el fine-tuning no está disponible para nuevos usuarios. Comprueba modelos y condiciones antes de elegirlo.
Combina las técnicas si hace falta y evalúa el resultado
RAG y fine-tuning pueden combinarse: por ejemplo, ajustar el formato con entrenamiento y aportar documentos actualizados mediante búsqueda. Pero combinar ambos no garantiza mayor calidad.
Define respuestas y evaluación; prueba primero instrucciones y documentos. Considera RAG para consultar fuentes y fine-tuning para ajustar el comportamiento. Compara coste, velocidad y calidad con entradas reales. La guía de OpenAI sigue una evaluación e iteración similares. La ejecución local depende de distribución de pesos, licencia y recursos.
8. Antes de construirlo tú — prueba con tus propios documentos
Antes de montar tu propio RAG, comprueba con tus documentos si el esquema «buscar y luego responder» sirve de verdad. Te ahorra rodeos y, en la mayoría de los casos, la primera prueba no requiere código.
Paso 1: comprueba si puedes proporcionar todos los documentos
Si el material cabe en la ventana de contexto, también puedes proporcionarlo sin búsqueda. En su explicación de Contextual Retrieval de 2024, Anthropic recomendó incluir directamente colecciones inferiores a 200.000 tokens (unas 500 páginas) y usar caché de prompts (explicación oficial). No es un umbral universal: decide según el límite actual del modelo, longitud, calidad y coste.
Paso 2: sube los documentos a una función de «Proyectos» ya hecha y pregunta
Los Projects de Claude pasan automáticamente a RAG cuando el conocimiento del proyecto se acerca al límite de contexto, y admiten hasta 10 veces más contenido. Es una función de los planes de pago; al activarse aparece un indicador y Claude usa la herramienta «project knowledge search» al responder (Centro de ayuda de Claude). Los Projects de ChatGPT también permiten añadir archivos y preguntar sobre ellos, con límites, como el número de archivos, fijados por plan.
Paso 3: prueba con 10 preguntas cuya respuesta ya conoces
Escribe 10 preguntas cuya respuesta sepas dónde está en los documentos y anota tres cosas.
- ¿La respuesta es correcta?
- ¿El fragmento que cita como prueba es el correcto?
- Cuando preguntas algo que no está en los documentos, ¿lo dice?
Si inventa respuestas, repite la prueba con la instrucción de reconocer información ausente. Diez preguntas son una prueba inicial, no evidencia de aptitud para producción o seguridad. Amplía la evaluación a preguntas importantes, contradicciones, documentos parecidos y permisos.
Paso 4: compara opciones propias y gestionadas cuando necesites más control
| Señal | Qué comprobar al comparar opciones |
|---|---|
| Muchos documentos o cambios diarios | Capacidad, incorporación automática y actualización del índice |
| Permisos distintos según la persona | Limitar búsqueda según permisos; ver seguridad en las FAQ |
| Integración con sistemas o apps | APIs, integración, autenticación y tarifas |
| La búsqueda omite información relevante | Configuración de búsqueda, reranking y evaluación |
Anthropic informó de que Contextual Embeddings junto con Contextual BM25 redujo un 49 % los fallos de recuperación entre los 20 primeros fragmentos, o un 67 % con reranking (condiciones y resultados). Son mediciones del proveedor sobre sus datos de evaluación, no una reducción garantizada de errores en tus respuestas.
La versión mínima para construirlo tú está en la siguiente sección; las mejoras para producción, como la búsqueda híbrida y el reranking, se tratan en la guía de implementación de RAG y bases de datos vectoriales.
9. Cómo implementarlo — RAG con LangChain
Tras presentar los principales frameworks de RAG, mostramos un ejemplo mínimo en Python.
Frameworks principales
| Framework | Lenguaje | Características |
|---|---|---|
| LangChain | Python / JS | Integraciones de búsqueda, modelos y fuentes |
| LlamaIndex | Python | Especializado en conexión de datos e índices |
| Haystack | Python | Enfoque enterprise, control fino |
| Semantic Kernel | C# / Python | De Microsoft; integración con .NET |
| DSPy | Python | Automatiza la optimización de prompts |
| Implementación propia | Cualquiera | Combinar búsqueda y generación para el alcance necesario |
Ejemplo mínimo de RAG con LangChain
Este ejemplo de aprendizaje busca fragmentos de un PDF y los proporciona al modelo. LangChain 1.x requiere Python 3.10 o posterior. Configura la clave en OPENAI_API_KEY y el acceso a los modelos de la API. Nunca pongas la clave en el código ni en un repositorio público.
El texto del PDF y las preguntas se envían a la API de embeddings; los fragmentos y preguntas se envían a la API del LLM. Chroma local no significa procesamiento totalmente local. La API se factura por separado de ChatGPT. Usa material no confidencial cuyo envío esté permitido. Este código es un ejemplo de aprendizaje cuyo funcionamiento no se ha verificado. Antes de ejecutarlo, compáralo con la forma oficial de uso de la versión de la biblioteca que utilices.
# pip install -U langchain-openai langchain-chroma langchain-text-splitters langchain-community pypdf
from langchain_community.document_loaders import PyPDFLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma
# 1. Cargar el documento
loader = PyPDFLoader("reglamento.pdf")
docs = loader.load()
# 2. Trocear en chunks
splitter = RecursiveCharacterTextSplitter(
chunk_size=500, chunk_overlap=50
)
chunks = splitter.split_documents(docs)
# 3. Embeddings + montar BD vectorial
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vectorstore = Chroma.from_documents(chunks, embeddings)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
# 4. Recuperar (los 3 chunks más cercanos a la pregunta)
question = "¿Cuántos días de vacaciones pagadas tengo?"
found = retriever.invoke(question)
context = "\n\n".join(d.page_content for d in found)
# 5. Pasar las fuentes y generar la respuesta
llm = ChatOpenAI(model="gpt-6-luna")
answer = llm.invoke([
{"role": "system", "content": "Responde solo con la información de este material. Si no está, di que no aparece en el material.\n\n" + context},
{"role": "user", "content": question},
])
print(answer.content)
print("Fuentes:", [d.metadata for d in found])
El ejemplo busca fragmentos del PDF y los proporciona a GPT-6 Luna; también imprime metadatos. La información de páginas depende del documento y del cargador. Hay que verificar por separado las citas de la respuesta generada.
gpt-6-luna se comprobó en la página oficial el 9 de octubre de 2026. Revisa APIs, condiciones y precios en la lista de modelos. Compara candidatos con los mismos documentos y preguntas: interpretación, calidad, velocidad y coste.
El código usa la estructura de paquetes de LangChain 1.x. En 1.0, ejemplos con langchain.chains, incluido RetrievalQA, pasaron a langchain-classic. Este ejemplo importa langchain_text_splitters y sigue 2-Step RAG: buscar y después generar. Consulta imports y requisitos de Python en la guía de migración. Registra versiones y verifica el código en un entorno reproducible.
En una implementación más cercana a producción
- Optimización del troceo (chunking semántico, chunks jerárquicos, etc.)
- Búsqueda híbrida (combinar vectorial + BM25 por palabras clave)
- Reranking (Cohere Rerank, voyage-rerank, etc., para reordenar los resultados)
- Reescritura de la consulta (HyDE, Multi-Query, etc., para mejorar la precisión)
- Pipeline de evaluación (evaluación automática con RAGAS)
10. Retos del RAG y cómo afrontarlos
En producción, revisa estos aspectos del RAG.
Reto 1: la dificultad de trocear los documentos
El cómo dividir el documento cambia mucho la precisión de la búsqueda. Si los chunks son demasiado cortos pierden contexto; si son demasiado largos, baja la precisión.
Cómo afrontarlo:
- Chunking semántico (cortar por bloques con significado)
- Configurar overlap (que los chunks adyacentes se solapen)
- Chunks jerárquicos (almacenar padre-hijo y buscar en hijo, citar el padre)
Reto 2: precisión del Retrieval
Que se traigan chunks parecidos pero distintos, o que se quede fuera información clave.
Cómo afrontarlo:
- Búsqueda híbrida (vectorial + BM25 por palabras clave)
- Reordenar tras la búsqueda con un modelo de reranking
- Generar varias consultas (buscar la misma pregunta con distintas formulaciones)
Reto 3: límite de la ventana de contexto
Existe un máximo de tokens que se puede pasar al LLM, así que no caben muchísimos chunks.
Cómo afrontarlo:
- Reducir K (top 3-5)
- Resumir antes de pasar
- Usar un LLM de contexto largo (el límite cambia según el modelo y hoy algunos admiten del orden de un millón de tokens; comprueba el de tu modelo en la documentación oficial)
Reto 4: la dificultad de evaluar
Medir objetivamente la calidad de las respuestas RAG es difícil. El reto está en cómo construir el dataset de referencia.
Cómo afrontarlo:
- Usar RAGAS (framework OSS para evaluación de RAG)
- Calcular automáticamente métricas como exactitud, relevancia y fidelidad
- LLM-as-a-Judge (que otro LLM puntúe la respuesta)
Reto 5: multilingüe y multimodal
Documentos donde se mezclan español e inglés, PDF con imágenes, tablas, gráficos... su procesamiento es complicado.
Cómo afrontarlo:
- Modelos de embeddings multilingües (BGE-M3, Cohere Multilingual)
- Convertir imágenes y tablas a texto antes con un LLM (OCR + VLM)
- Embeddings multimodales (CLIP, Nomic, etc.)
11. Lista de herramientas y servicios principales
Herramientas habituales para construir RAG, agrupadas por categoría.
Frameworks y librerías
- LangChain — integraciones de búsqueda, modelos y fuentes
- LlamaIndex — especializado en conexión de datos
- Haystack — orientado a empresa
- DSPy — optimización automática de prompts
BD vectoriales (gestionadas)
- Pinecone — búsqueda vectorial gestionada
- Weaviate Cloud — soporte GraphQL
- Qdrant Cloud — servicio gestionado de Qdrant
- Zilliz Cloud — versión gestionada de Milvus
BD vectoriales (OSS / autoalojadas)
- Chroma — búsqueda vectorial desde Python
- Qdrant — búsqueda vectorial y filtros
- Weaviate — versión OSS
- Milvus — base de datos vectorial
- pgvector — extensión de PostgreSQL
Modelos de embeddings
- OpenAI text-embedding-3 — embeddings mediante API
- Voyage AI — presentado en la documentación de Anthropic
- Cohere Embed — multilingüe
- BGE-M3 — candidato multilingüe para uso local
Servicios RAG no-code o gestionados
- ChatGPT Projects / Custom GPTs existentes — consulta de documentos; revisa procesamiento y condiciones por función
- Claude Projects — la función RAG de Anthropic
- Notion AI — búsqueda sobre documentos de Notion
- Microsoft Copilot (Microsoft 365) — candidato para consultar material interno; revisa contrato, conexiones y permisos
- Dify — plataforma OSS no-code para construir IA
- Vertex AI Agent Builder — servicio RAG de Google Cloud
- Amazon Bedrock Knowledge Bases — RAG gestionado de AWS
Herramientas de evaluación
- RAGAS — framework OSS para evaluar RAG
- TruLens — evaluación de aplicaciones LLM en general
- LangSmith — trazado y evaluación oficial de LangChain
Si quieres profundizar en el fine-tuning, lee también qué es el fine-tuning: explica cuándo usarlo frente a RAG y métodos como LoRA/QLoRA, para principiantes.
Preguntas frecuentes
P. ¿Se puede usar RAG con ChatGPT?
Projects de ChatGPT puede consultar documentos añadidos, pero el procesamiento varía. La explicación oficial de Enterprise distingue texto en contexto o recuperado mediante búsqueda, hojas de cálculo con Python e interpretación de imágenes. Describe Enterprise, no el funcionamiento de todos los planes.
Para desarrollar, File Search de Responses API de OpenAI ofrece búsqueda semántica y por palabras clave en documentos subidos. Es un servicio API distinto de las funciones de ChatGPT. También puedes implementar RAG con LangChain. La sección 8 explica Claude Projects.
Para crear nuevos Custom GPTs, la guía oficial actual indica que las cuentas personales Free, Go, Plus y Pro no pueden crear ni publicar nuevos GPTs. Usar o editar los existentes y la creación en organizaciones tienen condiciones distintas.
P. ¿Cuánto cuesta operar un RAG?
La cantidad de documentos y preguntas no determina por sí sola el coste mensual. Influyen longitud, actualizaciones, contexto recuperado, respuesta, modelo y condiciones de la base. Calcula embeddings de documentos y preguntas, almacenamiento y búsquedas, entrada y salida del LLM, actualizaciones, servidores, evaluación, monitorización y mantenimiento.
Prueba primero con material no confidencial y registra tokens y búsquedas por pregunta; extrapola al volumen previsto e incluye mínimos de la base y actualizaciones. Usa tarifas oficiales de la API y precios de la base.
P. ¿Qué diferencia hay entre RAG y subir un fichero a ChatGPT?
Subir archivos a ChatGPT es una función lista para consultar documentos; según el archivo y la función, puede usar búsqueda, lectura directa o código. Con RAG propio diseñas búsqueda, actualización de índices, permisos, evaluación y destinos, pero asumes desarrollo y operación. También hay opciones gestionadas.
Elige según capacidad, actualizaciones, permisos e integración API. Puedes diseñar sistemas para colecciones grandes o instalación local, pero capacidad y seguridad no están garantizadas automáticamente.
P. ¿Con RAG desaparecen las alucinaciones por completo?
No. RAG puede fallar si no recupera el documento correcto, interpreta mal los resultados o encuentra contradicciones. Instruye al modelo para reconocer información ausente, muestra fuentes y evalúa continuamente. Estas medidas no garantizan respuestas correctas para todas las preguntas. En medicina, derecho y otros usos importantes, añade revisión humana.
P. ¿Cómo se trabaja con documentos en español?
Considera embeddings multilingües como OpenAI text-embedding-3, Cohere Embed o BGE-M3; respeta puntuación y palabras del español al dividir documentos. Evalúa también el modelo de respuesta con tus documentos y preguntas.
El soporte de un idioma no establece una clasificación de precisión. Compara omisiones, correspondencia de fuentes, exactitud y coste con los mismos datos. Reevalúa cuando cambien versión o configuración.
P. ¿Cuál es la diferencia entre RAG y un agente de IA?
RAG proporciona material recuperado a la generación. El ejemplo básico es 2-step RAG: buscar primero y generar después, pero RAG no se limita a procesos fijos. Agentic RAG deja que el agente decida si debe buscar y cómo; Hybrid RAG puede validar resultados y repetir búsquedas.
Un agente selecciona herramientas según el objetivo. RAG puede ser una de ellas, pero no todos los agentes lo usan. La guía de LangChain distingue estas arquitecturas.
P. ¿Y la seguridad? No quiero enseñar mis datos confidenciales a la IA
Ni RAG ni una base local demuestran que los datos permanezcan privados. Comprueba destinos durante lectura, embeddings, búsqueda, generación, registros y evaluación. Evitar el envío externo requiere embeddings y modelos de respuesta locales, además de controlar registros y evaluación.
La API de OpenAI no utiliza entradas y salidas para entrenar por defecto, salvo participación explícita en el programa de intercambio. No entrenar no equivale a no almacenar. Revisa registros de supervisión, archivos y almacenes vectoriales, eliminación y controles de retención en la documentación oficial. Azure explica por separado entrenamiento, almacenamiento y supervisión.
Aplica permisos antes de incluir documentos en resultados. Recuperar documentos confidenciales y decir al modelo que no los revele es insuficiente. Son controles de diseño, no una demostración de confidencialidad en un entorno específico.
P. ¿Cuánto tiempo y qué nivel se necesita para montar un RAG?
Un prototipo de aprendizaje requiere Python básico, manejo de claves y tarifas API, lectura de documentos y revisión de búsquedas. Un código corto no implica una preparación rápida para producción.
Para producción se añaden preparación y actualización de documentos, autenticación y permisos de búsqueda, datos de evaluación, monitorización, incidencias, registros y control de costes. El plazo depende de documentos y requisitos: prueba un alcance pequeño y estima el trabajo restante y responsables. Si añades fine-tuning, consulta las condiciones de la sección 7.
El 9 de octubre de 2026 se revisaron precios, disponibilidad de productos y tratamiento de datos API con fuentes oficiales. No se verificaron ejecución del código o APIs, cargos ni protección de información en un entorno real. Consulta condiciones actuales antes de implementar.