feat: Implement the initial IPSExtractor project structure, including application logic, GUI, core utilities, and documentation.

This commit is contained in:
erik
2026-02-23 09:24:06 -05:00
commit 69debb1c93
49 changed files with 7385 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
# `application/config.py` y `application/logging_config.py`
## Propósito
Centralizan configuración (Pydantic Settings) y logging en formato JSON.
## Configuración (`application/config.py`)
### Clases
- `ApiSettings`: `base_url`, `api_key`, `model`, `request_timeout_s`.
- `ImagingSettings`: `pdf_dpi`, `pdf_thread_count`, `tiff_pages`, y parámetros judiciales.
- `RetrySettings`: reintentos y backoff.
- `AppSettings`: agrega las anteriores y `csv_delimiter`.
Se expone `settings = AppSettings()`. Lee variables desde `.env` (si existe).
### Variables de entorno relevantes
- `EXTRACTOR_BASE_URL`, `EXTRACTOR_API_KEY`, `EXTRACTOR_MODEL`, `EXTRACTOR_TIMEOUT_S`
- `PDF_DPI`, `PDF_THREAD_COUNT`, `TIFF_PAGES`
- `JUDICIAL_FAST_FIND_DPI`, `JUDICIAL_MAIN_DPI`, `JUDICIAL_GRAYSCALE`, `JUDICIAL_VALIDATE_IMAGES`
- `RETRY_MAX_ATTEMPTS`, `RETRY_WAIT_MIN_S`, `RETRY_WAIT_MAX_S`
- `CSV_DELIMITER`
## Logging (`application/logging_config.py`)
Configura loggers rotativos unificados:
- `logs/ips_extractor.log` (aplicación),
- `logs/llm.log` (normalización),
- `logs/api_calls.log` (llamadas a APIs),
y consola para WARNING+.
### Uso
```python
from application.logging_config import configure_logging
configure_logging()
```