RAG para conocimiento empresarial: fuentes, recuperación, permisos y evaluación · Módulo 2: Construir el índice recuperable

Preparar documentos, metadatos y fragmentos

Diseño de ingestión y chunking que conserva estructura, procedencia, permisos, contexto y capacidad de actualización.

Objetivo de aprendizaje

Diseñar una ingestión reproducible donde cada fragmento conserve significado, identidad, jerarquía, versión, permisos y procedencia.

Un motor de recuperación rara vez trabaja con el archivo completo. Necesita unidades suficientemente pequeñas para discriminar relevancia y suficientemente completas para conservar una idea, condición o procedimiento. El reto no consiste en cortar texto en bloques; consiste en producir unidades recuperables que sigan teniendo identidad y contexto.

Conserva estructura antes de fragmentar

La extracción inicial debe preservar todo lo que pueda cambiar la interpretación:

  • título;
  • jerarquía de encabezados;
  • listas;
  • tablas;
  • páginas;
  • secciones;
  • notas;
  • enlaces;
  • identificadores;
  • marcas de versión;
  • etiquetas de confidencialidad.

Convertir un documento complejo a texto plano puede destruir relaciones importantes. Una celda de tabla depende de su encabezado; una excepción puede depender del título del apartado; una condición puede quedar separada de su consecuencia.

Antes de elegir chunking, inspecciona cómo se representa realmente el documento después de la extracción.

Elige límites semánticos antes que tamaños arbitrarios

Las estrategias de tamaño fijo son útiles como respaldo técnico, pero no deben ser el único criterio. Siempre que sea posible, utiliza límites naturales: sección, artículo, procedimiento, pregunta-respuesta, registro o fila lógica.

Un buen fragmento debería poder contestar: «¿qué afirmación o unidad de trabajo conserva este bloque?».

El tamaño óptimo depende del corpus y de las preguntas. Fragmentos demasiado pequeños pierden contexto; demasiado grandes reducen precisión y consumen presupuesto de contexto. Por eso el tamaño se decide con evaluación, no con una cifra universal.

Usa solapamiento con una finalidad concreta

El solapamiento puede evitar que una idea situada en un límite se pierda, pero también crea duplicados que compiten entre sí y ocupan posiciones del top-k.

Aplica solapamiento cuando el contenido realmente cruza fronteras. Después mide si aparecen resultados redundantes. Si tres chunks casi idénticos monopolizan los primeros puestos, la estrategia está reduciendo diversidad de evidencia.

Para tablas o listas, suele ser más útil conservar el encabezado o contexto padre en cada unidad que repetir arbitrariamente párrafos vecinos.

Diseña un esquema de metadatos recuperable

Cada fragmento necesita identidad suficiente para filtrar, citar, actualizar y retirar. Un esquema razonable puede incluir:

  • document_id;
  • document_version;
  • chunk_id;
  • título;
  • ruta jerárquica;
  • página o ancla;
  • propietario;
  • estado editorial;
  • fecha de vigencia;
  • ámbito;
  • permisos;
  • idioma;
  • fecha de ingestión;
  • hash de contenido.

No todos los campos deben mostrarse al usuario. Algunos sirven solo para filtrado y operación. Distingue metadatos de seguridad, metadatos de ranking y metadatos de cita.

Preserva procedencia

Cuando la respuesta cite un fragmento, debes poder reconstruir de dónde salió. Evita chunks anónimos que contienen texto correcto pero ya no pueden vincularse a una versión concreta.

La procedencia también facilita depuración. Si una respuesta utiliza un pasaje incorrecto, el equipo necesita localizar documento, versión y pipeline de ingestión sin buscar manualmente entre miles de vectores.

Diseña ingestión idempotente

Reindexar la misma versión no debería multiplicar fragmentos. Define identidad de documento y de versión y decide cómo reconocer cambios.

Una actualización puede:

  • reemplazar todos los fragmentos;
  • recalcular solo secciones afectadas;
  • crear nueva versión y retirar la anterior;
  • conservar ambas si siguen siendo aplicables a contextos distintos.

No existe una estrategia universal. La decisión debe permitir explicar qué contenido está activo en cada momento.

Registra archivos fallidos, extracciones parciales y errores de transformación. Un documento no puede figurar como correctamente indexado si faltan páginas relevantes.

Evalúa la calidad del chunking con preguntas

No evalúes fragmentación mirando solo ejemplos bonitos. Usa el inventario de preguntas.

Para cada pregunta comprueba:

  1. si existe un fragmento que contenga la evidencia necesaria;
  2. si conserva la condición o excepción;
  3. si puede identificarse la fuente;
  4. si los filtros necesarios están presentes;
  5. si la evidencia queda repartida entre varios fragmentos;
  6. si la recuperación trae copias redundantes.

Cuando una pregunta requiere dos fragmentos, documenta esa necesidad. No fuerces un chunk enorme solo para que toda respuesta posible quepa en una unidad.

Ejemplo: política con regla y excepción

Una política define un plazo general en una sección y una excepción por producto en la siguiente. Si se cortan sin jerarquía, el sistema puede recuperar la regla y omitir la excepción.

Una solución consiste en conservar el título padre y la referencia cruzada en ambos chunks y diseñar preguntas de evaluación que exijan recuperar la excepción cuando corresponda. Otra puede ser modelar explícitamente las condiciones en metadatos. La mejor elección depende de cómo esté estructurado el corpus.

Trata tablas, imágenes y documentos complejos como estructuras

Cuando el conocimiento depende de una tabla, una imagen, un diagrama o una relación espacial, el texto lineal puede ser insuficiente. Antes de indexar decide qué representación conserva el significado.

Una tabla puede convertirse en filas autocontenidas con sus encabezados, mantenerse como bloque estructurado o almacenarse en una representación específica para recuperación. Una imagen puede requerir OCR, descripción o extracción especializada. La decisión depende de las preguntas que deba resolver el sistema.

No indexes representaciones derivadas sin conservar la referencia al original. Si una transformación pierde información, necesitas saber qué componente la produjo y poder revisar el documento fuente.

Versiona también la lógica de ingestión

Dos ejecuciones sobre el mismo PDF pueden producir chunks distintos si cambia el extractor, el OCR, el parser o la estrategia de fragmentación. Por tanto, además de la versión del documento, registra la versión relevante del pipeline.

Esto permite distinguir «cambió la fuente» de «cambió nuestra representación de la fuente». La diferencia es esencial al analizar regresiones de retrieval.

Ejercicio: especificación de ingestión

Elige cinco documentos distintos y crea:

  • representación extraída;
  • reglas de limpieza;
  • límites de fragmentación;
  • estrategia de solapamiento;
  • metadatos;
  • identidad;
  • permisos;
  • cita;
  • actualización;
  • retirada;
  • tratamiento de errores.

Después selecciona diez preguntas del benchmark y marca qué fragmentos contienen la evidencia esperada. Si no puedes rastrear un fragmento hasta su versión y su acceso, la ingestión todavía no está lista.

Resultado de la lección

Debes terminar con una especificación de ingestión donde cada fragmento conserva significado, procedencia, permisos y ciclo de vida. En la siguiente lección podrás comparar búsqueda léxica, vectorial y filtros sobre unidades cuya calidad ya puede evaluarse.