Sherlock-docs - Procesamiento Inteligente de Documentos Judiciales
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.