feat: Update default models for extraction and normalization to GPT-5.6 Luna across configuration files and documentation. Remove deprecated code and improve pricing details in the UI components. Add tests to ensure correct model settings and pricing calculations.

This commit is contained in:
erik
2026-08-16 15:39:01 -05:00
parent 046f26c20c
commit 3b01456875
38 changed files with 615 additions and 639 deletions
+30 -1
View File
@@ -17,6 +17,7 @@ from infrastructure.serialization import flatten_extraction_result
from api.desktop_ingest import (
_finalize_radicado_if_ready,
_paths_for_type,
_service_for_model,
mark_task_completed_if_done,
)
from domain.profiles import get_profile
@@ -27,6 +28,27 @@ from domain.rate_limiter import get_rate_limiter
logger = logging.getLogger(__name__)
def _service_for_request(
ctx: dict[str, Any], request: dict[str, Any]
) -> Any:
"""Resuelve y reutiliza el servicio correspondiente al modelo solicitado."""
base_service = ctx["service"]
requested_model = str(request.get("model") or "").strip() or None
if not requested_model:
return base_service
current_model = getattr(getattr(base_service, "extractor", None), "model", None)
if current_model == requested_model:
return base_service
services_by_model = ctx.setdefault("services_by_model", {})
service = services_by_model.get(requested_model)
if service is None:
service = _service_for_model(base_service, requested_model)
services_by_model[requested_model] = service
return service
async def process_document(
ctx: dict[str, Any],
*,
@@ -52,7 +74,6 @@ async def process_document(
instruction: Instrucción de extracción personalizada.
tiff_page_range: Rango de páginas TIFF [inicio, fin].
"""
service = ctx["service"]
rate_limiter = get_rate_limiter()
tiff_range = tuple(tiff_page_range) if tiff_page_range else None
@@ -72,6 +93,14 @@ async def process_document(
logger.warning("Tarea %s no encontrada — saltando %s", task_id, filename)
return {"skipped": True, "reason": "task_not_found"}
service = _service_for_request(ctx, request)
effective_model = getattr(getattr(service, "extractor", None), "model", "?")
logger.info(
"Modelo resuelto para task=%s: %s",
task_id,
effective_model,
)
fields: list[str] = list(request.get("fields") or [])
alias_map: dict[str, str] = dict(request.get("alias_map") or {})
structure_mode: str = str(request.get("structure_mode") or "radicados")