From eab8bb4e061091c093c43bf52586edcba2052b39 Mon Sep 17 00:00:00 2001 From: Ryan Crabbe Date: Thu, 5 Feb 2026 16:12:00 -0800 Subject: [PATCH] perf: skip output cost lookups when no audio/reasoning/image tokens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move _get_cost_per_unit() calls for output audio/reasoning/image costs inside their conditionals — only lookup when we actually have those token types. --- .../litellm_core_utils/llm_cost_calc/utils.py | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/litellm/litellm_core_utils/llm_cost_calc/utils.py b/litellm/litellm_core_utils/llm_cost_calc/utils.py index d1a47efde7..38cd69110d 100644 --- a/litellm/litellm_core_utils/llm_cost_calc/utils.py +++ b/litellm/litellm_core_utils/llm_cost_calc/utils.py @@ -688,18 +688,11 @@ def generic_cost_per_token( # noqa: PLR0915 ## TEXT COST completion_cost = float(text_tokens) * completion_base_cost - _output_cost_per_audio_token = _get_cost_per_unit( - model_info, "output_cost_per_audio_token", None - ) - _output_cost_per_reasoning_token = _get_cost_per_unit( - model_info, "output_cost_per_reasoning_token", None - ) - _output_cost_per_image_token = _get_cost_per_unit( - model_info, "output_cost_per_image_token", None - ) - ## AUDIO COST if not is_text_tokens_total and audio_tokens is not None and audio_tokens > 0: + _output_cost_per_audio_token = _get_cost_per_unit( + model_info, "output_cost_per_audio_token", None + ) _output_cost_per_audio_token = ( _output_cost_per_audio_token if _output_cost_per_audio_token is not None @@ -709,6 +702,9 @@ def generic_cost_per_token( # noqa: PLR0915 ## REASONING COST if not is_text_tokens_total and reasoning_tokens and reasoning_tokens > 0: + _output_cost_per_reasoning_token = _get_cost_per_unit( + model_info, "output_cost_per_reasoning_token", None + ) _output_cost_per_reasoning_token = ( _output_cost_per_reasoning_token if _output_cost_per_reasoning_token is not None @@ -718,6 +714,9 @@ def generic_cost_per_token( # noqa: PLR0915 ## IMAGE COST if not is_text_tokens_total and image_tokens and image_tokens > 0: + _output_cost_per_image_token = _get_cost_per_unit( + model_info, "output_cost_per_image_token", None + ) _output_cost_per_image_token = ( _output_cost_per_image_token if _output_cost_per_image_token is not None