Files
GTI_GERENCIADOR_FISCAL/fiscal/central/app/ai/payloads.py
T
gti d21a9d1140 Add 'fiscal/' from commit '102ba84500dbd9655a0471288c3e278652593ca9'
git-subtree-dir: fiscal
git-subtree-mainline: d95165fc8f
git-subtree-split: 102ba84500
2026-09-29 14:43:23 -03:00

29 lines
1.0 KiB
Python

"""Deterministic prompt compaction that preserves candidate evidence."""
import json
def estimate_tokens(payload) -> int:
return max(1, len(json.dumps(payload, ensure_ascii=False, sort_keys=True)) // 4)
def compact_payload(payload):
"""Remove repeated metadata only; candidate codes/descriptions are untouched."""
compact = dict(payload)
compact.pop("debug", None)
compact.pop("duplicate_examples", None)
candidates = compact.get("official_candidates")
if isinstance(candidates, list):
seen = set()
compact["official_candidates"] = [
row for row in candidates
if not (row.get("ncm") in seen or seen.add(row.get("ncm")))
]
return compact
def measure_payloads(payloads):
before = sum(estimate_tokens(payload) for payload in payloads)
after = sum(estimate_tokens(compact_payload(payload)) for payload in payloads)
return {"items": len(payloads), "tokens_before": before, "tokens_after": after, "reduction_percent": round((1 - after / before) * 100, 2) if before else 0.0}