Skip to content

Commit f583859

Browse files
Merge pull request #14675 from tcx4c70/fix/response-price
fix: cost calculation for responses
2 parents ad6ba8f + 9b0eaf0 commit f583859

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

litellm/responses/utils.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
ResponseText,
2424
)
2525
from litellm.types.responses.main import DecodedResponseId
26-
from litellm.types.utils import SpecialEnums, Usage
26+
from litellm.types.utils import PromptTokensDetails, SpecialEnums, Usage
2727

2828

2929
class ResponsesAPIRequestUtils:
@@ -375,8 +375,15 @@ def _transform_response_api_usage_to_chat_usage(
375375
)
376376
prompt_tokens: int = response_api_usage.input_tokens or 0
377377
completion_tokens: int = response_api_usage.output_tokens or 0
378+
prompt_tokens_details: Optional[PromptTokensDetails] = None
379+
if response_api_usage.input_tokens_details:
380+
prompt_tokens_details = PromptTokensDetails(
381+
cached_tokens=response_api_usage.input_tokens_details.cached_tokens,
382+
audio_tokens=response_api_usage.input_tokens_details.audio_tokens,
383+
)
378384
return Usage(
379385
prompt_tokens=prompt_tokens,
380386
completion_tokens=completion_tokens,
381387
total_tokens=prompt_tokens + completion_tokens,
382-
)
388+
prompt_tokens_details=prompt_tokens_details,
389+
)

tests/test_litellm/responses/test_responses_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ def test_transform_response_api_usage_to_chat_usage(self):
168168
"input_tokens": 10,
169169
"output_tokens": 20,
170170
"total_tokens": 30,
171+
"input_tokens_details": {"cached_tokens": 2},
171172
"output_tokens_details": {"reasoning_tokens": 5},
172173
}
173174

@@ -181,6 +182,7 @@ def test_transform_response_api_usage_to_chat_usage(self):
181182
assert result.prompt_tokens == 10
182183
assert result.completion_tokens == 20
183184
assert result.total_tokens == 30
185+
assert result.prompt_tokens_details and result.prompt_tokens_details.cached_tokens == 2
184186

185187
def test_transform_response_api_usage_with_none_values(self):
186188
"""Test transformation handles None values properly"""

0 commit comments

Comments
 (0)