Captura del dashboard de extracción documental TARCJA

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