
Público
TARCJA: extracción y dashboard de documentos judiciales
Aplicación de un taxonomista LLM de uso general a un corpus de recursos judiciales. Extracción de registros estructurados a escala y dashboard estático Plotly para exploración y comparación entre versiones.
Stack
Python · Plotly · Jinja2 · GCP (Cloud Run, Cloud Functions, Firestore) · Gemini · OpenAI
Artefactos
Demo / repositorio públicos
En breve
- Aplicó el taxonomista documental multi-agente a más de 5200 PDFs de recursos judiciales — sin parsers por documento.
- Diseño de esquema de dominio para recursos judiciales: campos de hechos, actores, jurisdicción, ciclo de vida, riesgo y resultado.
- Procesamiento a escala: 95–100% de cobertura en campos core, latencia media 16.8s por documento, p95 26.1s.
- Dashboard estático Plotly + Jinja2 desplegado en GitHub Pages con vista comparativa entre versiones de extracción.
Patrones reutilizables
- Diseño de esquema de dominio para texto legal no estructurado: facetas universales (actores, jurisdicción, ciclo de vida, riesgo) transferibles entre tipos de documento.
- Dashboard estático desde JSONL: Plotly + Jinja2 genera HTML standalone — sin servidor post-extracción.
- UI de comparación multi-versión: selector de versión y vista comparativa exponen cambios de esquema o datos entre corridas.
- Herramientas local-first para iteración: schema induction y extracción local antes de desplegar a workers en la nube.
Contexto
Comenzó como proyecto para la Gemini API Developer Competition en Devpost.
El dominio: un corpus de recursos judiciales en PDF no estructurado, sin layout ni estructura de campos consistente.
Objetivo: extraer registros estructurados y consultables de cada documento de forma automática, y luego explorar patrones en el corpus completo.
Decisiones
- Reutilizó el taxonomista documental multi-agente como backend de extracción — sin necesidad de reconstruir inducción de esquemas ni workers para este dominio.
- Diseño de esquema específico para recursos judiciales usando el agente SchemaDesigner sobre una muestra: campos clave incluyen partes, jurisdicción, tipo de proceso, etapa del ciclo de vida y resultado.
- Dashboard en HTML estático (Plotly + Jinja2): sin base de datos ni servidor para compartir resultados, y GitHub Pages es gratuito.
- Estructura multi-versión en el dashboard: cada corrida de extracción genera su propia vista, con una página de comparación para ver cambios entre versiones de esquema o datos.
Arquitectura
- Backend de extracción: plataforma taxonomista documental multi-agente (FastAPI + Cloud Functions + Firestore).
- Esquema: inducido vía agente SchemaDesigner en una muestra de PDFs judiciales, luego refinado manualmente.
- Output: JSONL por corrida, almacenado localmente y procesado por dashboard_tarc para visualización.
- CLI dashboard_tarc: genera HTML standalone desde JSONL + manifest de esquema — un solo comando, sin servidor.
- Despliegue en GitHub Pages: dist/ estático publicado en la rama docs/, sin CI/CD.
Resultados
- Más de 5200 documentos judiciales procesados end-to-end.
- 95–100% de cobertura en campos core del esquema (partes, jurisdicción, tipo de proceso, resultado).
- Latencia media de extracción LLM: 16.8s por documento; p95: 26.1s.
- Dashboard estático desplegado en GitHub Pages con comparativa y selector de versión.
- Desarrollo post-hackathon: versionado de esquemas, facetas adicionales, mejoras de observabilidad.
Enlaces
Related