¿Qué significa implementar RAG y cómo funciona?

Implementar RAG consiste en conectar un modelo de lenguaje grande con su propio conocimiento para que responda a partir de sus documentos y no de memoria. En el momento de la petición, el sistema busca en su contenido indexado, selecciona los pasajes más relevantes, los inserta en el prompt y pide al modelo que responda con citas.

Una arquitectura RAG de producción tiene dos pipelines:

  1. Pipeline de ingesta: conectar las fuentes, analizar los archivos, limpiar el texto, dividirlo en fragmentos, crear embeddings, guardar los fragmentos con metadatos y reglas de acceso y mantenerlo todo sincronizado.
  2. Pipeline de consulta: entender la pregunta, ejecutar la búsqueda híbrida, reordenar los resultados, montar el prompt, generar la respuesta, adjuntar las citas y registrarlo todo para la evaluación.

La mayoría de los fallos de RAG vienen del primer pipeline, no del modelo. Si una tabla se analiza como ruido o una política se parte por la mitad, ningún modelo puede recuperar la respuesta. Esta guía recorre cada etapa tal como la abordamos en Lytvynov Production. Para la parte de entrega, consulte nuestros servicios de desarrollo RAG.

¿Cómo ingerir y analizar los documentos?

La ingesta debe convertir cada fuente en texto limpio con estructura y metadatos: título, encabezados, URL de origen, autor, fechas, tipo de documento, idioma y quién puede leerlo. Dedique tiempo real a esto, porque la calidad del análisis marca el techo de la calidad de las respuestas.

Fuentes habituales y lo que necesitan:

  • PDF y archivos de Office: análisis sensible al diseño que conserve encabezados, listas y tablas; OCR para las páginas escaneadas.
  • Wikis y centros de ayuda (Confluence, Notion, Zendesk, Intercom): conectores de API que traigan también los permisos y las fechas de actualización.
  • Tickets, chats y emails: reconstrucción de hilos, eliminación de respuestas citadas duplicadas y de firmas.
  • Bases de datos y catálogos de productos: convertir los registros en textos breves y legibles, o consultarlos directamente con herramientas en lugar de generar embeddings.

Normalizar muchos formatos desordenados en una sola tabla limpia suele ser la parte más difícil. En el proyecto AI Grief Companion escribimos analizadores para diez formatos de exportación de chats (WhatsApp, Messenger, Instagram, Discord, iMessage desde una copia de seguridad de iPhone, SMS de Android y otros) y los normalizamos todos en una única tabla de mensajes antes de ejecutar cualquier paso de IA. La misma lección vale para los datos de negocio: invierta primero en un único modelo normalizado. Nuestra plataforma de calendarios deportivos muestra la misma disciplina fuera de la IA, con un motor de análisis que unifica datos de cientos de calendarios externos.

¿Qué estrategia de fragmentación conviene usar?

Fragmente primero por la estructura del documento y después por tamaño. Divida por encabezados, secciones, elementos de lista o hilos de mensajes, y después limite los fragmentos a un tamaño que contenga una idea completa, normalmente 200-800 tokens con un pequeño solapamiento.

Estrategia Cómo funciona Adecuada para Cuidado con
Tamaño fijo con solapamiento Dividir cada N tokens, solapamiento del 10-20% Punto de partida rápido, texto uniforme Corta frases, tablas y listas por la mitad
Según la estructura Dividir por encabezados, secciones, párrafos Documentación, políticas, contratos Las secciones muy largas necesitan una segunda división
Semántica Dividir donde cae la similitud temática Texto narrativo largo, transcripciones Más cómputo en la ingesta, más difícil de depurar
Padre e hijo Buscar en fragmentos pequeños, devolver la sección padre más grande Búsqueda precisa con contexto suficiente Más almacenamiento, más tokens en el prompt
Por registro Un fragmento por ticket, producto, entrada de FAQ o hilo de mensajes Datos estructurados o semiestructurados Los registros muy cortos pueden carecer de contexto

Añada contexto a cada fragmento: anteponga el título del documento y la ruta de la sección ("Política de reembolsos > Clientes de la UE > Bienes digitales") para que el fragmento tenga sentido por sí solo. Este único paso suele mejorar la recuperación más que cambiar de modelo de embeddings.

¿Cómo elegir un modelo de embeddings?

Elija un modelo de embeddings que maneje sus idiomas y el vocabulario de su sector, y después pruebe dos o tres candidatos con su propio conjunto de referencia. Las APIs de embeddings alojadas de OpenAI y otros son una opción por defecto sensata; los modelos de embeddings de pesos abiertos son una buena opción cuando los datos deben quedarse en su infraestructura.

Registre el modelo de embeddings y su versión con cada vector almacenado. Cambiar de modelo más adelante implica volver a generar los embeddings de todo el corpus, así que planifíquelo como una tarea normal en segundo plano, no como una emergencia. Para contenido multilingüe, compruebe que una pregunta en un idioma recupera documentos escritos en otro, si sus usuarios lo necesitan.

¿Qué base de datos vectorial conviene usar para RAG?

Use la base de datos que su equipo sepa operar bien. En la mayoría de los sistemas RAG empresariales por debajo de decenas de millones de fragmentos, la calidad de la recuperación depende mucho más de la fragmentación, la búsqueda híbrida y el reranking que del almacén vectorial elegido.

Opción Tipo Puntos fuertes Contrapartidas Encaja con
pgvector (PostgreSQL) Extensión de su base de datos actual Una sola base de datos para datos, vectores y permisos; transacciones; operación sencilla Requiere ajuste a gran escala; la búsqueda por palabras clave es básica sin trabajo extra Productos SaaS que ya usan PostgreSQL, hasta varios millones de fragmentos
Qdrant Base de datos vectorial open source, autoalojada o en la nube Filtrado rápido por metadatos, soporte de búsqueda híbrida, uso eficiente de memoria Otro servicio que operar y respaldar Corpus grandes, filtrado intensivo por metadatos
Weaviate Base de datos vectorial open source, autoalojada o en la nube Búsqueda híbrida integrada, módulos de vectorización Más conceptos que aprender, más pesada de operar Equipos que quieren funciones de búsqueda listas para usar
Pinecone Servicio totalmente gestionado Sin trabajo de infraestructura, escala con facilidad Dependencia del proveedor, los datos salen de su nube, coste por uso Equipos sin capacidad de operaciones
Elasticsearch / OpenSearch Motor de búsqueda con soporte vectorial Búsqueda por palabras clave madura (BM25), agregaciones, conocimiento operativo existente Consume muchos recursos; las funciones vectoriales varían según versión y licencia Empresas que ya los usan para búsqueda

Nuestra opción por defecto para clientes SaaS sobre PostgreSQL es pgvector, porque los permisos y los identificadores de cliente viven junto a los vectores y hay un sistema menos que proteger. Pasamos a un motor dedicado cuando la escala o las necesidades de filtrado lo justifican.

¿Por qué usar búsqueda híbrida y reranking?

La búsqueda híbrida combina la búsqueda por palabras clave (BM25) con la búsqueda vectorial, porque cada una encuentra lo que la otra pasa por alto. La búsqueda vectorial entiende las paráfrasis; la búsqueda por palabras clave capta códigos de producto exactos, mensajes de error, nombres y siglas. Después, un reranker reordena los candidatos combinados según su relevancia real para la pregunta.

Un flujo de consulta típico: reescribir la pregunta del usuario como una consulta de búsqueda autónoma (resolviendo "eso" y "aquello" a partir de la conversación), ejecutar en paralelo la búsqueda por palabras clave y la vectorial con filtros de permisos, fusionar los resultados (la fusión por rango recíproco es un método sencillo), reordenar los 30-50 mejores candidatos con un cross-encoder o una API de reranking y quedarse con los 5-10 mejores para el prompt. El reranking suele dar una de las mayores mejoras de calidad por hora de ingeniería en un proyecto RAG.

¿Cómo montar el prompt y añadir citas?

Monte el prompt con secciones claras: reglas del sistema, pasajes recuperados etiquetados cada uno con un identificador de fuente, la conversación hasta el momento y la pregunta. Indique al modelo que responda solo a partir de los pasajes, que cite los identificadores de fuente de cada afirmación y que diga claramente cuándo las fuentes no contienen la respuesta.

Tras la generación, valide las citas en el código: cada identificador citado debe existir en el conjunto recuperado, y las respuestas sin citas para afirmaciones factuales pueden marcarse o regenerarse. Muestre las citas en la interfaz como enlaces al documento y la sección originales. Los usuarios confían en respuestas que pueden comprobar, y los equipos de soporte pueden corregir el documento fuente en lugar de discutir con la IA. Para el panorama completo de la integración (streaming, salvaguardas, coste), consulte nuestra guía sobre cómo integrar ChatGPT o Claude en una aplicación.

¿Cómo gestionar permisos y control de acceso en RAG?

Aplique los permisos en el momento de la recuperación, antes de que ningún pasaje llegue al modelo. Guarde los metadatos de acceso (identificador de cliente, equipo, rol, ACL del documento) con cada fragmento y aplíquelos como filtro en la consulta de búsqueda del usuario actual.

Nunca confíe en el prompt para ocultar contenido ("no reveles documentos de RR. HH."), porque a los modelos se les puede convencer de que ignoren instrucciones. Sincronice rápido los cambios de permisos de los sistemas de origen y elimine los fragmentos cuando se borren los documentos. En un SaaS multicliente, un filtro por cliente en cada consulta es obligatorio, y añadimos pruebas automáticas que intentan recuperar datos de otro cliente. El contenido sensible puede necesitar además cifrado en reposo; la plataforma AI Grief Companion cifra cada mensaje en la ingesta con AES-256-GCM por mensaje y permite borrarlo todo con un clic.

¿Cómo evaluar un sistema RAG?

Evalúe la recuperación y la generación por separado, con un conjunto de referencia de preguntas reales. Sin él, cada cambio es una apuesta, y los equipos acaban ajustando prompts contra el último ejemplo del que alguien se quejó.

  • Conjunto de referencia: 100-300 preguntas reales con respuestas de referencia y los documentos fuente que deberían encontrarse. Incluya preguntas cuya respuesta no esté en el corpus.
  • Métricas de recuperación: recall at k (¿apareció el pasaje correcto entre los k primeros?) y calidad del orden.
  • Métricas de generación: fidelidad (¿cada afirmación está respaldada por los pasajes recuperados?), relevancia de la respuesta, exhaustividad y precisión de las citas. Un segundo modelo puede puntuarlas con una rúbrica, con personas revisando una muestra.
  • Señales de producción: pulgares abajo, reformulaciones posteriores, escaladas a una persona y preguntas sin respuesta.

Ejecute el conjunto en cada cambio de análisis, fragmentación, embeddings, configuración de búsqueda, prompts o modelos, y bloquee las versiones que bajen las puntuaciones.

¿Cómo mantener actualizado un índice RAG?

Mantenga el índice actualizado con sincronización incremental: detecte los documentos nuevos, modificados y eliminados en cada fuente y actualice solo los fragmentos afectados. Guarde un hash del contenido y una fecha de actualización por documento para omitir los archivos sin cambios.

Los webhooks de los sistemas de origen dan actualizaciones casi en tiempo real; las tareas programadas (cada hora o cada noche) bastan para el contenido que cambia más despacio. Añada metadatos de actualidad a la búsqueda para que las versiones más nuevas de una política queden por encima de las antiguas, y archive los documentos sustituidos en lugar de dejarlos competir. Monitorice las tareas de sincronización como cualquier otro pipeline de producción, porque un fallo silencioso de sincronización hace que el asistente se equivoque con total seguridad sobre los cambios del mes pasado.

¿Cuáles son los fallos más comunes de RAG?

Los fallos más comunes son fallos de recuperación que parecen fallos del modelo. Cuando una respuesta es incorrecta, compruebe primero si se recuperó el pasaje correcto.

Síntoma Causa probable Solución
La respuesta es vaga o dice "no lo sé" cuando la respuesta existe Análisis o fragmentación deficientes, falta de búsqueda por palabras clave Fragmentación según la estructura, búsqueda híbrida, encabezados de contexto en los fragmentos
La respuesta mezcla reglas antiguas y nuevas Documentos obsoletos o duplicados Sincronización incremental, versionado, prioridad a lo reciente
Respuesta segura que no está en las fuentes Instrucciones de fundamentación débiles, sin comprobación de citas Regla de responder solo a partir del contexto, validación de citas, evaluación de fidelidad
El usuario ve contenido que no debería Permisos aplicados en el prompt, no en la búsqueda Filtros ACL en la consulta, pruebas de aislamiento entre clientes
Buena demo, mala producción Preguntas de prueba escritas por el equipo, no por usuarios Conjunto de referencia a partir de registros reales, revisión semanal de fallos
Los costes crecen con el uso Demasiados pasajes o demasiado largos por llamada Reranking, menos pasajes, caché de prompts

RAG, fine-tuning o contexto largo: ¿qué elegir?

Elija RAG para el conocimiento, fine-tuning para el comportamiento y contexto largo para material pequeño que cambia en cada petición. Son complementarios, no rivales, y muchos sistemas en producción usan dos de ellos a la vez.

Enfoque Ideal para Actualizaciones Perfil de coste Límites
RAG Conocimiento amplio, cambiante y sujeto a permisos; respuestas con citas Inmediatas, se reindexa un documento Indexación más recuperación y tokens de prompt por petición Calidad limitada por el análisis y la recuperación
Fine-tuning (p. ej., LoRA) Estilo, tono, formato o comportamiento acotado y consistente Requiere reentrenar Ejecuciones de entrenamiento más alojamiento del modelo ajustado Malo para almacenar hechos que cambian; sin citas
Contexto largo Un contrato, una parte del código o un informe por petición Nada que actualizar Coste de tokens alto por petición salvo con caché Más lento, caro a escala, la atención puede dispersarse en entradas muy largas

La plataforma AI Grief Companion es un ejemplo real de combinación de enfoques. Construye un perfil de personalidad, un grafo de hechos en Neo4j y la preparación RAG a partir del historial de chats del usuario, y entrena adaptadores LoRA (SFT y CPT sobre Qwen2.5-7B con QLoRA de 4 bits) para la voz de una persona concreta, con vLLM cargando el adaptador adecuado en el momento de la petición. El chat aprovecha la etapa que esté lista, así que la conversación es posible antes de que termine el entrenamiento. El fine-tuning se ocupa de cómo escribe la persona; la recuperación, de lo que dijo.

Cómo trabajamos en proyectos RAG

En Lytvynov Production empezamos los proyectos RAG con una breve llamada para definir el alcance: revisamos una muestra de sus documentos reales y las preguntas que hacen los usuarios, y le damos un presupuesto cerrado para el desarrollo. El primer hito construye un conjunto de referencia y prueba sobre él el análisis y la recuperación. Después entregamos por hitos, con puntuaciones de evaluación en cada uno. Si está planificando un asistente de conocimiento o un chatbot con IA sobre los datos de su empresa, póngase en contacto.

Casos de estudio

Preguntas frecuentes

La generación aumentada por recuperación (RAG) es un patrón en el que un sistema de IA primero busca en sus propios documentos los pasajes relevantes para una pregunta y después entrega esos pasajes a un modelo de lenguaje grande junto con la pregunta. El modelo redacta una respuesta basada en sus fuentes y puede citarlas. RAG permite que un modelo general responda preguntas sobre información privada, reciente o propia de la empresa sin reentrenarlo.

No hay una única opción mejor. Si ya usa PostgreSQL, pgvector suele bastar hasta varios millones de fragmentos y mantiene datos y permisos en un solo lugar. Qdrant y Weaviate encajan con cargas más grandes o intensivas en búsqueda, Pinecone con equipos que quieren un servicio totalmente gestionado, y Elasticsearch u OpenSearch tienen sentido cuando ya dependen de ellos para la búsqueda por palabras clave. La calidad de la recuperación depende más de la fragmentación y de la búsqueda híbrida que de la base de datos.

Un asistente RAG enfocado sobre una fuente de conocimiento bien estructurada, como un centro de ayuda o una biblioteca de políticas, suele tardar 4-8 semanas en llegar a producción con evaluación y monitorización. Varias fuentes, PDF escaneados, permisos por usuario e integraciones con sistemas de tickets o CRM suelen llevarlo a 8-16 semanas. La mayor parte del esfuerzo se va en el análisis de documentos, el control de acceso y la evaluación.

Construya un conjunto de referencia de 100-300 preguntas reales con respuestas de referencia y los documentos que deberían recuperarse. Mida la recuperación (¿aparecieron los pasajes correctos entre los primeros resultados?) por separado de la generación (¿la respuesta es fiel a esos pasajes, completa y está bien citada?). Ejecute el conjunto en cada cambio de fragmentación, embeddings, prompts o modelos, y añada cada semana las preguntas fallidas de producción.

Use RAG cuando las respuestas dependan de un conocimiento amplio, cambiante o sujeto a permisos. Use fine-tuning cuando necesite un estilo, formato o comportamiento acotado y consistente que los prompts no logran. Use contexto largo cuando el material relevante sea pequeño, quepa en la ventana y cambie en cada petición, como un único contrato. Muchos sistemas en producción combinan RAG con un fine-tuning ligero o con contexto largo.

Empecemos su proyecto
Agendar una llamada