refactor: Introduce accumulate_usage function for token aggregation, enhance alias map expansion in BatchProcessor, and streamline error handling in PreclassificationService. Update PDF processing utilities for improved image conversion and error logging.

This commit is contained in:
erik
2026-03-01 20:55:52 -05:00
parent 3c258ebf12
commit e7fde25227
29 changed files with 321 additions and 1206 deletions
+2 -6
View File
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
from application.profiles import get_profile
from application.prompts import PromptBuilder
from application.normalizer import normalize_to_schema
from application.costs import compute_cost_from_usage, sum_costs
from application.costs import compute_cost_from_usage, sum_costs, accumulate_usage
from application.file_discovery import get_sorted_radicados, find_file_for_type_in_radicados, get_files_as_radicados
from core.utils import collect_radicado_docs, collect_documents_flat
@@ -107,11 +107,7 @@ class Estimator:
return self._build_result(usage_ext, usage_norm, len(entries), first["radicado"])
def _accumulate_usage(self, agg, new_usage):
if not isinstance(new_usage, dict): return
agg["prompt_tokens"] += int(new_usage.get("prompt_tokens") or 0)
agg["completion_tokens"] += int(new_usage.get("completion_tokens") or 0)
details = new_usage.get("prompt_tokens_details") or {}
agg["prompt_tokens_details"]["cached_tokens"] += int(details.get("cached_tokens") or 0)
accumulate_usage(agg, new_usage)
def _build_result(self, usage_ext, usage_norm, total_docs, first_radicado):
model_ext = getattr(self.service.extractor, "model", None)