Montar un prototipo de RAG toma una tarde; hacer que la búsqueda semántica sobreviva a producción toma meses. El fracaso sigue patrón: chunks de tamaño fijo cortando frases a la mitad, documento viejo rankeando para siempre, recuperación mediana poniendo techo a la calidad de la respuesta. La pipeline que funciona junta cinco piezas.

Chunking semántico antes de ventana fija

Una ventana fija de 512 tokens rompe ideas a la mitad. El chunk por estructura respeta headers y párrafos, con overlap de 10-15% entre vecinos para que el contexto cruce la frontera. Metadata acompaña cada chunk: origen, sección, fecha, título. Es ella la que habilita filtro por tenant y cita con link en la respuesta final.

Embedding: benchmark en tu corpus

text-embedding-3-small de OpenAI contra bge-m3 y e5-large open-source: el ganador aparece en tu dato, en tu idioma, en tu dominio. El leaderboard de terceros miente. La dimensión define costo de storage (1536 dims cuestan 3x más que 512 en cualquier vector store). Corre recall@k en un conjunto propio de consultas antes de cerrar contrato.

pgvector cubre la mayoría de los casos

Índice HNSW dentro de Postgres, join SQL entre vector y fila relacional, un sistema menos que operar. El disparador de graduación hacia un vector DB dedicado llega cerca de 50M+ de vectores o con SLA de latencia estricto (~30ms de p95). Antes de ese punto, la complejidad extra cuesta más de lo que devuelve.

Híbrido con reranking: donde vive la calidad

La búsqueda 100% vectorial erra en nombre propio, código de producto y siglas; BM25 erra en el resto. Combina ambas con Reciprocal Rank Fusion y pon un cross-encoder encima (cohere-rerank-3.5 o bge-reranker-v2-m3) para reordenar los top-50 candidatos al top-k final. Ajusta top_k por tipo de consulta: FAQ aguanta con 5, análisis jurídico pide 15.

Loop de evaluación desde el día uno

Golden set de 50-200 pares pregunta/respuesta construido a partir de queries reales, guardado junto de los prompts. Mide hit-rate@k antes y después de cada cambio en la pipeline. ¿Cambió el modelo de embedding? Todo necesita re-embedding de todas formas; aprovecha y reejecuta la suite completa en la misma pasada.

Chunking por estructura, embedding benchmarkeado en tu dato, búsqueda híbrida con reranking y evaluación continua: las cuatro piezas separan demo de producto.