Skip to content

Commit 8fc28cd

Browse files
Handle top-level cache creation usage
1 parent 656c276 commit 8fc28cd

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

‎dspy/clients/openai_format.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -926,6 +926,7 @@ def _add_cache_usage_aliases(usage: dict[str, Any]) -> None:
926926
"cache_write_tokens",
927927
"cache_write_input_tokens",
928928
"cache_creation_input_tokens",
929+
"cache_creation_tokens",
929930
)
930931
if cache_write_tokens is None:
931932
cache_write_tokens = _numeric_usage_value(

‎tests/core/test_types.py‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,22 @@ def test_usage_from_response_promotes_anthropic_cache_token_details():
438438
assert usage.cache_write_tokens == 12
439439

440440

441+
def test_usage_from_response_promotes_top_level_cache_creation_tokens():
442+
from dspy.clients.openai_format import usage_from_response
443+
444+
usage = usage_from_response(
445+
{
446+
"usage": {
447+
"input_tokens": 10,
448+
"output_tokens": 1,
449+
"cache_creation_tokens": 7,
450+
}
451+
}
452+
)
453+
454+
assert usage.cache_write_tokens == 7
455+
456+
441457
def test_default_config_does_not_serialize_empty_stop_sequences():
442458
request = LMRequest.from_call(model="model", prompt="hi")
443459
entry = LMHistoryEntry(

0 commit comments

Comments
 (0)