Files
IPSExtractor/docs/application/config.md
T

37 lines
1.2 KiB
Markdown

# `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()
```