Refactor digitador bot and add runtime monitoring

This commit is contained in:
erik
2026-08-30 14:02:58 -05:00
parent 3b01456875
commit d9e2012e22
46 changed files with 1720 additions and 248 deletions
+23 -1
View File
@@ -8,6 +8,8 @@ from domain.normalizer import normalize_to_schema
from domain.profiles import get_profile
from domain.prompts import PromptBuilder
from domain.service import InvoiceProcessingService
from domain.config import settings
from domain.usage_tracking import record_api_usage
from infrastructure.database import ExtractionRow, Task, utcnow
from infrastructure.serialization import flatten_extraction_result
from sqlalchemy.orm import Session
@@ -276,7 +278,7 @@ def process_desktop_ingest(
else:
prompt = instruction or PromptBuilder.build(selected_paths, {}, profile_name=prof.get("name", "invoice"))
data, _usage = service.extract_full_from_pdf(
data, extraction_usage = service.extract_full_from_pdf(
temp_path,
instruction=prompt,
tiff_page_range=tiff_page_range,
@@ -292,8 +294,28 @@ def process_desktop_ingest(
profile_name=prof.get("name", "invoice"),
)
normalized_obj = data
normalizer_usage = None
if isinstance(norm, dict):
normalized_obj = norm.get("normalized") or data
normalizer_usage = norm.get("_usage")
usage_result = record_api_usage(
dict(task.result or {}),
phase="extract",
model=str(getattr(service.extractor, "model", model or "unknown")),
usage=extraction_usage,
radicado=radicado,
filename=filename,
)
usage_result = record_api_usage(
usage_result,
phase="normalize",
model=str(settings.api.normalizer_model),
usage=normalizer_usage,
radicado=radicado,
filename=filename,
)
task.result = usage_result
return persist_desktop_ingest_result(
session,