From 34cd139f537434c392d4c491eabb34399d00b96e Mon Sep 17 00:00:00 2001 From: daleselaji-dev <265319989+daleselaji-dev@users.noreply.github.com> Date: Thu, 27 Aug 2026 12:23:42 +0800 Subject: [PATCH] fix(streaming): avoid rebinding usage helper arguments --- .../streaming_chunk_builder_utils.py | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/litellm/litellm_core_utils/streaming_chunk_builder_utils.py b/litellm/litellm_core_utils/streaming_chunk_builder_utils.py index 88317817a1e..4c0b06322be 100644 --- a/litellm/litellm_core_utils/streaming_chunk_builder_utils.py +++ b/litellm/litellm_core_utils/streaming_chunk_builder_utils.py @@ -762,19 +762,30 @@ class ChunkProcessor: prompt_tokens_provided = "prompt_tokens" in usage_chunk completion_tokens_provided = "completion_tokens" in usage_chunk - if prompt_tokens_provided and (usage_chunk_dict["prompt_tokens"] > 0 or prompt_tokens == 0): - prompt_tokens = usage_chunk_dict["prompt_tokens"] - if completion_tokens_provided and (usage_chunk_dict["completion_tokens"] > 0 or completion_tokens == 0): - completion_tokens = usage_chunk_dict["completion_tokens"] - if completion_tokens > 0: - completion_usage_updates += 1 + updated_prompt_tokens = ( + usage_chunk_dict["prompt_tokens"] + if prompt_tokens_provided and (usage_chunk_dict["prompt_tokens"] > 0 or prompt_tokens == 0) + else prompt_tokens + ) + updated_completion_tokens = ( + usage_chunk_dict["completion_tokens"] + if completion_tokens_provided and (usage_chunk_dict["completion_tokens"] > 0 or completion_tokens == 0) + else completion_tokens + ) + updated_completion_usage_updates = ( + completion_usage_updates + 1 + if completion_tokens_provided + and (usage_chunk_dict["completion_tokens"] > 0 or completion_tokens == 0) + and updated_completion_tokens > 0 + else completion_usage_updates + ) return ( - prompt_tokens, - completion_tokens, + updated_prompt_tokens, + updated_completion_tokens, prompt_tokens_provided, completion_tokens_provided, - completion_usage_updates, + updated_completion_usage_updates, ) def _calculate_usage_per_chunk(