Refactor digitador bot and add runtime monitoring
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user