Sherlock-docs - Procesamiento Inteligente de Documentos Judiciales

dic. 1, 2025 · 2 min de lectura

Sherlock-docs es un sistema de procesamiento inteligente de documentos judiciales (tutelas y habeas corpus) que combina OCR, reconocimiento de entidades nombradas (NER) y deteccion de duplicados. Todo el procesamiento es 100% local, sin envio de datos a APIs externas.

Caracteristicas Principales

  • OCR Hibrido: PaddleOCR + Tesseract para documentos escaneados y digitales
  • NER Legal: Extraccion de entidades con SpaCy, F1 score de 85.3% validado por humanos
  • Deteccion de Duplicados Multinivel: Hash SHA-256, LZJD fuzzy hash, TF-IDF, Sentence-Transformers
  • Busqueda Avanzada: SQLite FTS5 full-text search con filtrado avanzado
  • API REST Completa: 22 endpoints FastAPI con autenticacion JWT y documentacion Swagger
  • Interfaz Grafica: 9 paginas Streamlit para gestion interactiva de documentos
  • CLI: 20 comandos para operaciones por lotes
  • Aprendizaje Activo: Interfaz para validacion humana de entidades NER
  • Exportacion: Generacion de reportes en Excel

Tecnologias Utilizadas

  • Backend: Python 3.12.4, FastAPI, Pydantic
  • OCR: PaddleOCR + Tesseract
  • NLP/NER: SpaCy (modelo espanol legal)
  • Base de Datos: SQLite + FTS5 (33 columnas, 11 indices, WAL mode)
  • Frontend: Streamlit (9 paginas)
  • Arquitectura: Clean Architecture por capas, Result-Oriented Programming (returns)
  • Seguridad: JWT, RBAC, rate limiting, security headers
  • Despliegue: Docker, Easypanel, GitHub Webhook automatizado

Arquitectura

5 capas con ServiceContainer (14 propiedades lazy-loaded):

  • Core: Entidades, value objects
  • Application: Casos de uso, DTOs, ServiceContainer
  • Infrastructure: OCR, NER, deduplicacion, logging
  • Persistence: SQLite + FTS5 con puertos ISP
  • Interfaces: Streamlit GUI, CLI (20 comandos), FastAPI REST (22 endpoints)

Logros Alcanzados

  • 1,832 tests (1,770 unitarios + 62 integracion) con 87% de cobertura
  • NER F1 85.3% con datos validados por operadores humanos
  • 22 endpoints REST documentados y funcionales
  • 16/16 SECs de seguridad + 4 SEC-API implementados
  • 9 sprints completados (S23-S28) con 30 documentos de planning
  • mypy 0 errores en modo estricto sobre 130 archivos
  • Auditoria SDD certificada: 39 conformes, 0 defectos
  • Calidad de codigo: 9.1/10

Impacto

Sherlock-docs procesa ~100 documentos/dia con un objetivo de rendimiento de <2 minutos para documentos de 20 paginas y <100ms para documentos digitales, eliminando la clasificacion manual de documentos judiciales y detectando automaticamente documentos duplicados.

Este sistema nace de la necesidad de automatizar el registro y clasificacion de tutelas y habeas corpus en el sistema judicial colombiano, donde la deteccion de duplicados y la extraccion precisa de informacion de partes procesales son criticas para la eficiencia del despacho judicial.