Cómo Nammu procesa un caso: un pipeline de procesamiento de 5 niveles
Cada página de cada documento legal que subes se clasifica y se enruta al motor de extracción más adecuado — en paralelo, sin bloquear tu flujo de trabajo. Así es como funciona.
Inventum P5
Ingeniería · Galictis-Legal
10 de julio de 2026
7 min de lectura
Cuando un abogado sube un expediente legal a Nammu, algo sucede antes de que corra cualquier análisis de IA: cada página se clasifica y se enruta al motor de extracción más adecuado para manejarla. No todas las páginas pasan por el mismo proceso. No todos los documentos necesitan el mismo tratamiento. Esta es la historia de ese sistema de clasificación — el pipeline de procesamiento de 5 niveles.
El problema con los documentos legales
Los expedientes legales costarricenses no son limpios. Un solo expediente puede contener una resolución mecanografiada de 2024 (texto digital limpio), una copia certificada manuscrita de 2018 (imagen escaneada), un plano catastral o diagrama de propiedad (un artefacto completamente visual), y un acta notarial fotocopiada tres veces (escaneo degradado a distintos DPI). Cada uno requiere una estrategia de extracción fundamentalmente distinta.
El enfoque ingenuo — pasar cada página por el motor más poderoso (visión con IA) — es técnicamente sólido pero económica y temporalmente absurdo. Un expediente de 140 páginas procesado enteramente con Azure GPT-Vision tomaría minutos y costaría órdenes de magnitud más de lo necesario. La mayoría de las páginas son perfectamente legibles con herramientas mucho más simples.
El pipeline de Nammu resuelve esto con una clasificación de enrutamiento único: cada página se inspecciona una sola vez, se le asigna un nivel de complejidad y se envía exactamente al extractor correcto.
Los cinco niveles
Antes de extraer cualquier texto, una pasada ligera con PyMuPDF examina cada página — sin renderizado, sin OCR — y mide cuatro señales: conteo de palabras, proporción de área de imagen, área de bloques de texto y la presencia de palabras clave visuales de disparo legal (plano, croquis, mapa de desalojo). A partir de esto, a cada página se le asigna uno de cinco niveles de complejidad.
L1
Texto digital
Pasada rápida con PyMuPDF
enruta
L2
Texto limpio
Limpieza de texto estándar legal
enruta
L3
OCR 200 DPI
Tesseract estándar
enruta
L4
OCR HD 300 DPI
Cascada multi-PSM
enruta
L5
Visión con IA
Azure GPT-Vision
Cada página se clasifica una sola vez y se enruta a exactamente un nivel — no se ejecuta secuencialmente por los cinco.
Texto digital incrustado
PyMuPDF · fitz_text
Páginas de PDF puramente digitales con ≥ 50 palabras. Las resoluciones judiciales, escritos mecanografiados y presentaciones modernas caen aquí.
La ruta más rápida — sin renderizado, sin OCR. Menos de un segundo por página.
Texto digital limpio
fitz_clean · limpieza de texto estándar
Páginas de diseño mixto con ≥ 30 palabras. Elimina el texto estándar legal, encabezados repetidos y ruido de pie de página de documentos estructurados.
El análisis legal temprano se dispara cuando este nivel termina — mientras L3–L5 aún corren.
OCR estándar
Tesseract · renderizado a 200 DPI
Páginas escaneadas con 10–29 palabras o proporciones mixtas. El caballo de batalla para la mayoría de documentos físicos.
Renderiza cada página a PNG de 200 DPI y luego ejecuta Tesseract. Maneja la mayoría de las páginas de expedientes antiguos.
OCR de alta densidad
Tesseract HD · 300 DPI · cascada multi-PSM
Escaneos pesados con < 10 palabras y ≥ 50% de área de imagen. Fotocopias degradadas, copias certificadas antiguas, documentos faxeados.
Prueba múltiples modos de segmentación de página de Tesseract en secuencia. Respaldo de OCR local opcional para niveles de pago.
Visión con IA
Azure GPT-Vision · respaldo ollama_vision
Diagramas, mapas catastrales, planos y cualquier cosa que una palabra clave de disparo identifique como artefacto visual.
Corre en un pool de hilos de visión dedicado en paralelo con L1–L4. Limitado por nivel y con tope por documento.
Enrutamiento único: ¿por qué no una cascada?
Una alternativa común es una cascada completa: probar L1, si falla probar L2, luego L3, luego L4, luego L5. Esto garantiza cobertura máxima pero a un costo elevado — cada página pasa por hasta cinco pasadas. Para un expediente de 38 documentos, esto es la diferencia entre un tiempo de procesamiento de 3 minutos y uno de 20 minutos.
El diseño de enrutamiento único funciona porque el clasificador de páginas es preciso para la gran mayoría de las páginas. Las señales — conteo de palabras, proporción de imagen — son predictores fuertes de qué extractor tendrá éxito. Los únicos casos que necesitan una segunda oportunidad son casos límite deliberados, y para esos, el pipeline usa promociones específicas.
Promociones específicas: respaldos inteligentes
Cuando la clasificación es incorrecta — sucede — el pipeline tiene cuatro reglas de respaldo quirúrgicas en lugar de una cascada completa de reintentos.
| Disparador | Desde | → Hacia | Cuándo |
|---|---|---|---|
| L1 en blanco → 0 palabras tras la extracción | L1 | L3 | Siempre |
| L5 visión deshabilitada por nivel o entorno | L5 clasificado | L4 | Respaldo por nivel |
| Cualquier página L1–L4 aún con 0 palabras | Cualquiera | L5 | Nivel de pago + tope |
| L4 con < 50 palabras extraídas | L4 | OCR Ollama | Nivel + flag de entorno |
La más importante de estas es la promoción de L1 en blanco → L3, agregada en junio de 2026. Algunos escaneos reportan un área de imagen casi nula a PyMuPDF (los metadatos dicen que la página está casi en blanco) mientras en realidad contienen texto denso. El clasificador les asigna L1, el lector digital rápido no encuentra nada, y silenciosamente se perderían. La regla de promoción las detecta: cualquier página L1 que aún tenga cero palabras tras la extracción recibe un intento de OCR en L3 antes de ser marcada.
Paralelismo: niveles dentro de un documento
Dentro de un solo documento, los niveles no corren secuencialmente. Las páginas de visión L5 se envían a un pool de hilos dedicado de inmediato — empiezan mientras las páginas L1–L4 aún se están procesando. Dentro de cada nivel, todas las páginas de ese nivel corren en paralelo en un pool de CPU dimensionado según el hardware del host.
El coordinador espera a que cada lote de nivel de CPU termine antes de pasar al siguiente (para que las promociones de L1-en-blanco puedan decidirse después de que L1 termine), pero L5 es completamente no bloqueante y puede completarse antes, durante o después del trabajo de CPU.
Lo que ves en la interfaz: disponibilidad progresiva
No esperas a que los cinco niveles terminen antes de poder trabajar. La interfaz se actualiza a medida que cada lote de nivel se completa, siguiendo una progresión de disponibilidad:
TEXT_READY
Puedes empezar a hacer preguntas sobre el texto extraído de inmediato
ENRICHED
Texto limpio disponible; el análisis legal temprano empieza en segundo plano
ENRICHED
Primera pasada de OCR completa; llegan las páginas escaneadas
OCR_DONE
Escaneos de alta densidad procesados; todas las páginas físicas capturadas
COMPLETE
Diagramas, mapas y planos completamente comprendidos
Esto significa que para un documento con texto mayormente digital, puedes estar haciendo preguntas y ejecutando análisis a segundos de subirlo — mientras el pipeline maneja silenciosamente las páginas escaneadas más difíciles en segundo plano.
Política de nivel y acceso a L5
L5 Visión con IA es el extractor más poderoso y más costoso. El acceso está limitado por el nivel de suscripción con un tope de páginas por documento:
| Nivel | Visión L5 | Promoción L5 | Tope / doc |
|---|---|---|---|
| Beta | ✓ | ✓ | 20 páginas |
| Pro | ✓ | ✓ | 20 páginas |
| Advanced | ✓ | ✓ | 50 páginas |
| Enterprise · Firm | ✓ | ✓ | 100 páginas |
El tope evita que un documento grande (algunas compilaciones de códigos llegan a más de 400 páginas) consuma todo el presupuesto de una sesión en llamadas de visión. Las páginas que exceden el tope se marcan en los metadatos del documento como no_text_pages — nunca se descartan silenciosamente.
Garantía de no pérdida de contenido
Los expedientes legales no deben perder páginas silenciosamente. Si una página llega al final del pipeline con cero palabras extraídas — después de todas las promociones aplicables — se registra en nivel WARNING, se anota en el JSON del documento ensamblado y se muestra en la interfaz. Siempre sabrás qué páginas no se pudieron leer y por qué.
Qué sigue
El pipeline fue diseñado para extenderse. Los dos elementos abiertos más significativos son:
- Auto-escalación de L3 a L4 para páginas que pasan el OCR pero producen texto de baja confianza — actualmente requiere designación manual a L4.
- Extracción estructurada en L2 para documentos altamente plantillados (actas notariales, resoluciones estándar) donde el análisis a nivel de campo aportaría más valor que el texto en bruto.
El pipeline de 5 niveles no es la parte técnicamente más glamorosa de un producto de IA legal. Pero es la base de la que depende todo lo demás. Si la extracción falla, ninguna cantidad de inteligencia posterior lo arregla. Si funciona bien, el sistema lee documentos como lo haría un asistente legal cuidadoso: sabiendo qué páginas necesitan una segunda mirada, y sin fingir nunca que una página difícil es fácil.
¿Quieres ver esto en acción con tus casos?
Solicita acceso temprano y te guiaremos por una sesión de procesamiento en vivo con expedientes reales de tu área de práctica.
Solicita una demo →