Clarify tiered pricing helper comment

This commit is contained in:
its-amann 2026-06-12 17:34:25 +05:30
parent 9d54c45344
commit 3941d11940

View file

@ -208,10 +208,9 @@ def _parse_above_token_threshold(key: str) -> float:
def _get_effective_prompt_tokens_for_tiered_pricing(usage: Usage) -> float:
"""Return the total effective input tokens for tier-threshold comparisons.
Some providers (Anthropic direct, Bedrock) roll cache_creation and cache_read
tokens into prompt_tokens before constructing the Usage object, while others
(Vertex AI) keep them separate. When prompt_tokens_details is present we can
derive the true total from its per-category fields and avoid double-counting.
Some providers report cache tokens inside prompt_tokens, while others keep
them separate. When prompt_tokens_details is present, prefer the category
fields so the threshold check can avoid double-counting cache tokens.
"""
if usage.prompt_tokens_details is not None:
details = usage.prompt_tokens_details
@ -231,7 +230,7 @@ def _get_effective_prompt_tokens_for_tiered_pricing(usage: Usage) -> float:
text_tokens = float(raw_text_tokens or 0)
return text_tokens + cached_tokens + cache_creation
# No prompt_tokens_details — add explicit cache fields only if they are
# No prompt_tokens_details. Add explicit cache fields only if they are
# not already rolled into prompt_tokens (determined by their presence).
prompt_tokens = float(getattr(usage, "prompt_tokens", 0) or 0)
cache_read_tokens = float(getattr(usage, "cache_read_input_tokens", 0) or 0)