«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

Usuario
Envía la pregunta
Question
BD vectorial
Retrieval (búsqueda)
Pinecone / Qdrant
Chroma / pgvector
LLM
Generation (generación)
GPT / Claude
Gemini / Llama
Respuesta
Con fundamento
Answer
Fuentes externas
Docs internos / PDF
Manuales / FAQ
Papers / noticias
Augmented Prompt
Resultados + pregunta
↓ Se envía al LLM
El RAG en 3 pasos
1. Retrieval (búsqueda) → 2. Augmented (aumento) → 3. Generation (generación)
Complementa el conocimiento aprendido; hay que comprobar búsqueda, respuesta y permisos

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»

PalabraSignificadoFunción dentro del RAG
RetrievalBúsqueda / recuperaciónExtrae de la base de datos los documentos relevantes para la pregunta
AugmentedAumento / refuerzoAñade esa información al prompt antes de pasarlo al LLM
GenerationGeneraciónEl 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 ejecución: responder a la pregunta
1. Pregunta
"¿cuántos días?"
User Query
2. Embed
Modelo embeddings
[0.12, -0.45, ...]
3. Búsqueda vec.
Top-K vecinos
Cosine Similarity
4. Chunks
Docs relevantes 3-5
Art. 15 vacaciones...
↓
5. LLM + Context (Augmented Prompt)
«Responde basándote en lo siguiente: [chunk] Pregunta: [consulta]»
GPT / Claude / Gemini genera la respuesta con fundamento
↓
6. Respuesta (con cita)
"10 días tras 6 meses (ejemplo ficticio, art. 15)"
▶ Fase de preparación: vectorizar los documentos
Documento
PDF / Word
Troceo
500-1000 car.
Embedding
Vectorizar
BD vectorial
Guardar / indexar
* Se ejecuta al añadir/actualizar

Fase de preparación — vectorizar los documentos y guardarlos

  1. Recopilación de documentos: PDF, Word, HTML, Markdown..., reúnes los documentos que quieres usar
  2. División en chunks: trocea cada documento en fragmentos del tamaño adecuado (por ejemplo, 500-1000 caracteres)
  3. 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)
  4. 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.

  1. 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
  2. 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]»
  3. 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?»:

  1. El modelo de embeddings vectoriza la pregunta → [0.12, -0.45, 0.78, ...]
  2. Se recuperan de la BD vectorial 3 chunks relacionados con «vacaciones» o «descanso retribuido»
  3. 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.
  4. Se monta el prompt: «Información de referencia: artículo 15... Pregunta: ¿cuántos días de vacaciones pagadas tengo?»
  5. 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».

ModeloProveedorCaracterísticas
text-embedding-3-smallOpenAI1536 dimensiones por defecto; reducibles con dimensions
text-embedding-3-largeOpenAI3072 dimensiones por defecto; reducibles con dimensions
voyage-4Voyage AIPresentado en la documentación de Anthropic; también hay versión ligera y de pesos abiertos
Cohere EmbedCohereCandidato para buscar en documentos multilingües
multilingual-e5-largeMicrosoft (modelo público)Candidato local; comprobar condiciones de uso y recursos
BGE-M3BAAI (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

BDTipoCaracterísticasPrecio
PineconeSaaS gestionadoEl servicio gestiona la infraestructuraStarter gratuito; Builder: 20 USD/mes. Standard: mínimo de 50 USD/mes; consumo adicional por separado (precios oficiales)
WeaviateOSS + nubeAPI GraphQL, búsqueda híbridaOSS gratuito; Cloud: Free y Flex desde 45 USD/mes (precios oficiales)
QdrantOSS + nubeBúsqueda vectorial y filtros de metadatosAutoalojado o Cloud; recursos y tarifas de Cloud por separado
ChromaOSSUtilizable desde PythonAlojamiento y operación tienen costes propios
pgvectorExtensión PostgreSQLUsa tu PostgreSQL existenteRevisa licencia y costes operativos de la base
MilvusOSS + nubeConstrucción de búsqueda vectorialAutoalojado o Zilliz Cloud; condiciones diferentes
ElasticsearchMotor de búsquedaBúsqueda vectorial y por palabras claveSegún distribución, funciones y contrato; opción gestionada
Vertex AI Vector SearchGoogle CloudIntegrado en el ecosistema GCPPago 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

RAG
Recupera info de una BD externa en ejecución
Enfoque
Ante cada pregunta, busca info relevante en una BD externa y la añade al prompt para el LLM
Ventajas
+ Actualizar documentos e índices
+ Mostrar fuentes si se conservan metadatos
+ Dar referencias al modelo; aún puede equivocarse
+ Empezar sin reentrenar el modelo
+ Consultar fuentes actualizadas
Desventajas
- El estilo se controla con instrucciones y ejemplos
- Calidad atada a la precisión de búsqueda
- Los contextos largos pueden elevar coste y latencia
Usos recomendados
QA interno / FAQ / derecho / medicina / noticias
Fine-tuning
Ajusta el comportamiento mediante entrenamiento adicional
Enfoque
Se reúnen muchos datos supervisados (pares pregunta-respuesta) y se reentrenan los pesos
Ventajas
+ Aprende estilo, tono y personalidad
+ Puede permitir prompts más cortos; hay que evaluar el ahorro
+ Domina patrones de lenguaje especializados
+ Despliegue según condiciones del proveedor
+ Ejecución local si pesos, licencia y recursos lo permiten
Desventajas
- Requiere datos de entrenamiento, cómputo y evaluación
- Los cambios aprendidos requieren más entrenamiento
- Por sí solo no recupera fuentes actuales
Usos recomendados
Estilo propio / léxico especializado / optimizar inferencia

Define la respuesta esperada y evalúa búsqueda, instrucciones y entrenamiento según la tarea

Diferencia de fondo

AspectoRAGFine-tuning
EnfoquePasa información desde fuera en tiempo de ejecuciónReentrena el propio modelo de antemano
ActualizaciónActualizar documentos e índice; requiere procesamientoEl comportamiento aprendido exige entrenamiento adicional
Coste inicialPreparación, índice, integración, permisos y evaluaciónDatos, entrenamiento, integración y evaluación
Coste operativoBúsqueda, almacenamiento, generación, actualización y evaluaciónGeneración, entrenamiento, almacenamiento y evaluación; según servicio
Respuestas erróneasPosibles por búsqueda o interpretaciónPosibles incluso tras entrenar
FuentesConservar metadatos y comprobar que respaldan la respuestaPor sí solo no busca ni verifica fuentes actuales
Estilo o tonoInstrucciones y ejemplos en el contextoAjustar con datos y evaluación
Datos cambiantesNecesita fuentes actualizadas y búsqueda correctaLos datos actuales necesitan una fuente o búsqueda adicional
ConfidencialidadRevisar destinos, permisos, almacenamiento y registrosRevisar 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.

  1. ¿La respuesta es correcta?
  2. ¿El fragmento que cita como prueba es el correcto?
  3. 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ñalQué comprobar al comparar opciones
Muchos documentos o cambios diariosCapacidad, incorporación automática y actualización del índice
Permisos distintos según la personaLimitar búsqueda según permisos; ver seguridad en las FAQ
Integración con sistemas o appsAPIs, integración, autenticación y tarifas
La búsqueda omite información relevanteConfiguració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

FrameworkLenguajeCaracterísticas
LangChainPython / JSIntegraciones de búsqueda, modelos y fuentes
LlamaIndexPythonEspecializado en conexión de datos e índices
HaystackPythonEnfoque enterprise, control fino
Semantic KernelC# / PythonDe Microsoft; integración con .NET
DSPyPythonAutomatiza la optimización de prompts
Implementación propiaCualquieraCombinar 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.