Skill: arquitecto-rag Agentes IA CULTIVA IA
Diseño RAG de Producción

LexAI — Pipeline RAG Legal

Cliente: LexAI SaaS B2B · Despachos de Abogados 45.000 documentos jurídicos 800 consultas/día Generado: Junio 2026
45K
Documentos
Sentencias, contratos, memorandos
$118
Coste mensual
Estimado · verificar precios actuales
100%
Recall@5
TF-IDF baseline (sin embedding)
LOW
Mantenimiento
Stack sobre PostgreSQL existente
$118 /mes
⚠ Estimación — verificar precios en vivo antes de presupuestar
pgvector PostgreSQL $50
Cross-encoder reranking $48
Evaluation framework $20
Embedding (self-hosted) $0
Componentes del pipeline
Chunking
semantic_heading_aware
Respeta jerarquía de secciones · preserva cláusulas completas
max_size: 1500 heading_weight: 2.0 overlap: 100
Embedding
all-MiniLM-L6-v2
Self-hosted · 384 dims · coste $0 · adecuado para escala small
$0/mes 384 dims batch: 100
Vector DB
pgvector (PostgreSQL)
Aprovechar infra PostgreSQL existente · ACID · SQL familiar
cosine distance hnsw index $50/mes est.
Retrieval
hybrid (dense 0.7 + sparse 0.3)
Semántico + keywords · óptimo para búsqueda de citas legales exactas
top_k: 20 threshold: 0.7
Reranking
cross-encoder/ms-marco-MiniLM-L-12-v2
Reordena top-20 → top-5 · mejora precision para citas críticas
rerank k=20 → 5 $48/mes est.
Evaluación
comprehensive_evaluation
precision@k · recall@k · MRR · NDCG · frecuencia mensual
k = 1, 3, 5, 10 sample: 1000
Arquitectura del pipeline
Ingestión de documentos
📄
Corpus Legal
45K docs · .md/.txt
✂️
Chunking
semantic_heading
🔢
Embedding
MiniLM-L6-v2
🗄️
pgvector
cosine · hnsw
Consulta en tiempo real
💬
Query Abogado
cita / análisis
🔍
Hybrid Search
dense + sparse
↕️
Reranking
cross-encoder
📋
Top-5 Chunks
→ LLM context

Por qué semantic_heading para documentos legales

  • Las sentencias y contratos tienen estructura jerárquica explícita (Fundamentos, Cláusulas, Artículos)
  • Preserva las cláusulas completas — evita cortar a mitad de una obligación legal
  • El chunking anterior (fixed-size 512) partía cláusulas y causaba citaciones incorrectas
  • heading_weight=2.0 favorece inicios de sección como puntos de corte naturales
📊 Análisis del corpus (real)
Sentence breaks limpias88.9%
Score sentence_based0.648
Score paragraph_based0.569
Score fixed_size0.461
Documentos analizados 5
Total caracteres 28.172
Tamaño medio chunk 1.040
Desviación std 173
Estrategias testeadas 12
Resultados de evaluación de recuperación (baseline TF-IDF)
Métricas aggregate (8 queries · corpus legal)
Precision@3 31.3%
Precision@5 37.5%
Precision@10 37.5%
Recall@5 100%
Recall@10 100%
MRR 0.375
NDCG@5 0.532
Recall@5 vs target (0.88)100% ✓ SUPERA
Precision@5 vs target (0.85)37.5% — mejorar con embedding real
Verification loop
1
Corpus analizado con chunking_optimizer.py Recomendado: sentence_based (score 0.648) · corpus real de 5 docs / 28K chars
2
Pipeline diseñado con rag_pipeline_designer.py Escala SMALL · pgvector sobre PostgreSQL existente · $118/mes est.
3
Evaluado con retrieval_evaluator.py (TF-IDF baseline) 8 queries · recall@5=100% ✓ · precision@5=37.5% → bajo por TF-IDF sin embedding
4
Siguiente iteración: activar embedding real Desplegar MiniLM-L6-v2 self-hosted → re-evaluar precision@5 (target ≥0.85)
5
Activar cross-encoder reranking → validar NDCG Si precision@5 ≥ 0.85 y recall@10 ≥ 0.88 → pasar a producción
Recall: SUPERA EL TARGET recall@5=100% y recall@10=100% · baseline TF-IDF ya encuentra todos los documentos relevantes · el embedding semántico solo puede mejorar esto
⚠️
Precision: POR DEBAJO (baseline TF-IDF) 37.5% es el baseline sin embedding real. Esperado: TF-IDF no entiende semántica legal. El pipeline real con MiniLM + reranking debería superar 0.85
Detalle de queries de evaluación
🔎 8 queries legales · corpus LexAI
ID Query Doc. relevante esperado P@5 R@5
q1 responsabilidad administradores causas disolución sociedad ley-sociedades-capital 20% 100%
q2 obligaciones encargado tratamiento datos personales RGPD memorando-rgpd 20% 100%
q3 vicios ocultos compraventa inmueble hipoteca sentencia-ts-2024 20% 100%
q4 clausulas cambio de control SPA due diligence informe-due-diligence 100% 100%
q5 arrendamiento local negocio obras mejoras autorización contrato-arrendamiento 100% 100%
q6 transferencias internacionales datos Privacy Shield memorando-rgpd 20% 100%
q7 aportaciones no dinerarias capital social valoración ley-sociedades-capital 20% 100%
q8 plazo respuesta derechos ARCO protección datos memorando-rgpd 20% 100%
Templates de configuración generados
{ } Configuración de ingesta
# chunking_config.py — LexAI CHUNKING_CONFIG = { "strategy": "semantic_heading_aware", "max_size": 1500, "heading_weight": 2.0, "overlap": 100, } EMBEDDING_CONFIG = { "model": "all-MiniLM-L6-v2", "dimensions": 384, "batch_size": 100, "cache_embeddings": True, }
🗄 Configuración pgvector + retrieval
# pgvector + hybrid retrieval VECTOR_DB_CONFIG = { "db": "pgvector", "collection": "rag_documents", "distance_metric": "cosine", "index_type": "hnsw", } RETRIEVAL_CONFIG = { "strategy": "hybrid", "dense_weight": 0.7, "sparse_weight": 0.3, "top_k": 20, "rerank_to": 5, }