En pocas palabras
Patrón que recupera información de fuentes externas y la incorpora al contexto de un LLM antes de generar una respuesta, sin reentrenar necesariamente el modelo.
Qué problema resuelve
Respuestas sin acceso al conocimiento específico o actualizado de una organización, y dificultad para respaldarlas con evidencia consultable.
Cuándo utilizarlo
Asistentes documentales, búsqueda empresarial y comprensión de código. Ejemplo: recuperar procedimientos vigentes y responder una consulta citando los fragmentos utilizados.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Adopt (valoración de la edición aportada).
Cómo funciona
Un proceso prepara documentos y metadatos. Al llegar una consulta, un recuperador selecciona candidatos, puede reordenarlos por relevancia y entrega evidencia al generador. La indexación puede utilizar embeddings, pero una base vectorial no es obligatoria.
Ejemplo: responder sobre un procedimiento
- Identificar la pregunta y el ámbito de acceso del usuario.
- Recuperar fragmentos vigentes con búsqueda híbrida.
- Reordenar los candidatos y seleccionar el contexto útil.
- Pedir una respuesta respaldada por ese contexto, con fuentes.
- Indicar cuándo la evidencia disponible no permite responder.
Arquitectura de referencia
INGESTA: fuentes → conversión (Docling, MarkItDown) → limpieza → fragmentación
→ enriquecimiento (título, sección, fecha, permisos) → embeddings → índice
CONSULTA: pregunta → reescritura / expansión → filtro por permisos y metadatos
→ búsqueda híbrida (vectorial + palabras clave) → fusión → reranking
→ selección de contexto → generación con citas → verificación
Decisiones de fragmentación
| Estrategia | Cuándo |
|---|---|
| Por tamaño fijo con solapamiento | Texto homogéneo; punto de partida |
| Por estructura (secciones, títulos) | Manuales, políticas, documentación técnica |
| Por unidad semántica (artículo, cláusula, FAQ) | Normativa y contratos |
| Contextualizada | Añadir al fragmento un resumen de su documento y sección antes de indexar |
Un fragmento debe poder entenderse solo: «el plazo máximo es 24 meses» sin saber de qué producto habla no sirve.
Búsqueda híbrida en PostgreSQL
-- Vectorial (pgvector) + texto completo, fusionadas con Reciprocal Rank Fusion
WITH vec AS (
SELECT id, row_number() OVER (ORDER BY embedding <=> $1) AS r
FROM fragmentos WHERE $3 = ANY(grupos_permitidos)
ORDER BY embedding <=> $1 LIMIT 40
), txt AS (
SELECT id, row_number() OVER (ORDER BY ts_rank(tsv, q) DESC) AS r
FROM fragmentos, plainto_tsquery('spanish', $2) q
WHERE tsv @@ q AND $3 = ANY(grupos_permitidos)
LIMIT 40
)
SELECT id, sum(1.0 / (60 + r)) AS score
FROM (SELECT * FROM vec UNION ALL SELECT * FROM txt) t
GROUP BY id ORDER BY score DESC LIMIT 10;
Las palabras clave capturan códigos, nombres propios y siglas que los embeddings representan mal; los embeddings capturan sinónimos y paráfrasis. Un reranker (modelo cross-encoder) reordena después los candidatos con más precisión.
Evaluación por etapas
| Etapa | Métrica | Pregunta |
|---|---|---|
| Recuperación | Recall@k, MRR | ¿Está el fragmento correcto entre los k primeros? |
| Contexto | Precisión del contexto | ¿Cuánto del contexto enviado era útil? |
| Generación | Fidelidad (faithfulness), relevancia | ¿La respuesta se basa en el contexto y responde? |
| Citas | Exactitud de las citas | ¿La fuente citada sostiene la afirmación? |
| Abstención | Tasa de «no lo sé» correctos | ¿Reconoce cuando no hay evidencia? |
DeepEval y LLM as a judge automatizan buena parte; construye el conjunto con preguntas reales de usuarios.
Problemas frecuentes y soluciones
| Problema | Solución |
|---|---|
| Responde con una política derogada | Metadatos de vigencia y filtro por fecha; retirar versiones antiguas |
| No encuentra por códigos o siglas | Añadir búsqueda por palabras clave |
| Fragmentos sin contexto | Fragmentación por estructura o contextualizada |
| Usuario ve contenido que no debería | Filtrar por permisos en la consulta, nunca después |
| Preguntas sobre el corpus completo | Considerar GraphRAG o resúmenes jerárquicos |
Criterios de implementación
Evalúa recuperación y generación por separado. Mide si aparecen los documentos correctos, si la respuesta los utiliza y si las citas la sostienen. Aplica permisos durante la recuperación, conserva procedencia y fechas, y trata instrucciones presentes en documentos como contenido externo no confiable.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.