refactor(audio): keep transcription pricing selection together

This commit is contained in:
Emerson Gomes 2026-09-15 13:35:42 -05:00
parent 8783a3b301
commit ea84863217
No known key found for this signature in database
GPG key ID: D3DF28AB5D1B5E17
2 changed files with 20 additions and 28 deletions

View file

@ -296,12 +296,29 @@ def _get_additional_costs(
return None
def _transcription_usage_has_token_details(
def _transcription_uses_token_pricing(
model: str,
custom_llm_provider: str | None,
usage_block: Usage | None,
) -> bool:
if usage_block is None:
return False
model_info: Final = _cached_get_model_info_helper(model=model, custom_llm_provider=custom_llm_provider)
has_token_pricing: Final = any(
model_info.get(field)
for field in (
"input_cost_per_token",
"output_cost_per_token",
"input_cost_per_audio_token",
"output_cost_per_audio_token",
)
)
if not has_token_pricing and (
model_info.get("input_cost_per_second") is not None or model_info.get("output_cost_per_second") is not None
):
return False
prompt_tokens_val: Final = getattr(usage_block, "prompt_tokens", 0) or 0
completion_tokens_val: Final = getattr(usage_block, "completion_tokens", 0) or 0
prompt_details: Final[PromptTokensDetailsWrapper | None] = getattr(usage_block, "prompt_tokens_details", None)
@ -628,25 +645,7 @@ def cost_per_token(
data_residency=data_residency,
)
elif call_type == "atranscription" or call_type == "transcription":
transcription_model_info: Final = _cached_get_model_info_helper(
model=model_without_prefix, custom_llm_provider=custom_llm_provider
)
has_token_pricing: Final = any(
transcription_model_info.get(field)
for field in (
"input_cost_per_token",
"output_cost_per_token",
"input_cost_per_audio_token",
"output_cost_per_audio_token",
)
)
if _transcription_usage_has_token_details(usage_block) and (
has_token_pricing
or (
transcription_model_info.get("input_cost_per_second") is None
and transcription_model_info.get("output_cost_per_second") is None
)
):
if _transcription_uses_token_pricing(model_without_prefix, custom_llm_provider, usage_block):
return generic_cost_per_token(
model=model_without_prefix,
usage=usage_block,

View file

@ -3285,14 +3285,7 @@ class Logging(LiteLLMLoggingBaseClass):
## BUILD COMPLETE STREAMED RESPONSE
if "async_complete_streaming_response" in self.model_call_details:
return # break out of this.
complete_streaming_response: Final[
ModelResponse
| TextCompletionResponse
| ResponsesAPIResponse
| InteractionsAPIResponse
| TranscriptionResponse
| None
] = self._get_assembled_streaming_response(
complete_streaming_response: Final = self._get_assembled_streaming_response(
result=result,
start_time=start_time,
end_time=end_time,