@@ -87,7 +87,16 @@ async def request(
8787 TextPart ('text2' ),
8888 {}, # test unexpected parts # type: ignore
8989 ],
90- usage = RequestUsage (input_tokens = 100 , output_tokens = 200 ),
90+ usage = RequestUsage (
91+ input_tokens = 100 ,
92+ output_tokens = 200 ,
93+ cache_write_tokens = 10 ,
94+ cache_read_tokens = 20 ,
95+ input_audio_tokens = 10 ,
96+ cache_audio_read_tokens = 5 ,
97+ output_audio_tokens = 30 ,
98+ details = {'reasoning_tokens' : 30 },
99+ ),
91100 model_name = 'gpt-4o-2024-11-20' ,
92101 provider_details = dict (finish_reason = 'stop' , foo = 'bar' ),
93102 provider_response_id = 'response_id' ,
@@ -190,9 +199,15 @@ async def test_instrumented_model(capfire: CaptureLogfire):
190199 'logfire.span_type' : 'span' ,
191200 'gen_ai.response.model' : 'gpt-4o-2024-11-20' ,
192201 'gen_ai.response.id' : 'response_id' ,
202+ 'gen_ai.usage.details.reasoning_tokens' : 30 ,
203+ 'gen_ai.usage.details.cache_write_tokens' : 10 ,
204+ 'gen_ai.usage.details.cache_read_tokens' : 20 ,
205+ 'gen_ai.usage.details.input_audio_tokens' : 10 ,
206+ 'gen_ai.usage.details.cache_audio_read_tokens' : 5 ,
207+ 'gen_ai.usage.details.output_audio_tokens' : 30 ,
193208 'gen_ai.usage.input_tokens' : 100 ,
194209 'gen_ai.usage.output_tokens' : 200 ,
195- 'operation.cost' : 0.00225 ,
210+ 'operation.cost' : 0.00188125 ,
196211 },
197212 },
198213 ]
@@ -724,11 +739,17 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire, instr
724739 'event.name' : 'gen_ai.choice' ,
725740 },
726741 ],
742+ 'gen_ai.usage.details.reasoning_tokens' : 30 ,
743+ 'gen_ai.usage.details.cache_write_tokens' : 10 ,
744+ 'gen_ai.usage.details.cache_read_tokens' : 20 ,
745+ 'gen_ai.usage.details.input_audio_tokens' : 10 ,
746+ 'gen_ai.usage.details.cache_audio_read_tokens' : 5 ,
747+ 'gen_ai.usage.details.output_audio_tokens' : 30 ,
727748 'logfire.json_schema' : {
728749 'type' : 'object' ,
729750 'properties' : {'events' : {'type' : 'array' }, 'model_request_parameters' : {'type' : 'object' }},
730751 },
731- 'operation.cost' : 0.00225 ,
752+ 'operation.cost' : 0.00188125 ,
732753 'gen_ai.response.id' : 'response_id' ,
733754 },
734755 },
@@ -821,6 +842,12 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire, instr
821842 'gen_ai.system_instructions' : [{'type' : 'text' , 'content' : 'instructions' }],
822843 'gen_ai.usage.input_tokens' : 100 ,
823844 'gen_ai.usage.output_tokens' : 200 ,
845+ 'gen_ai.usage.details.reasoning_tokens' : 30 ,
846+ 'gen_ai.usage.details.cache_write_tokens' : 10 ,
847+ 'gen_ai.usage.details.cache_read_tokens' : 20 ,
848+ 'gen_ai.usage.details.input_audio_tokens' : 10 ,
849+ 'gen_ai.usage.details.cache_audio_read_tokens' : 5 ,
850+ 'gen_ai.usage.details.output_audio_tokens' : 30 ,
824851 'logfire.json_schema' : {
825852 'type' : 'object' ,
826853 'properties' : {
@@ -830,7 +857,7 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire, instr
830857 'model_request_parameters' : {'type' : 'object' },
831858 },
832859 },
833- 'operation.cost' : 0.00225 ,
860+ 'operation.cost' : 0.00188125 ,
834861 'gen_ai.response.id' : 'response_id' ,
835862 },
836863 },
@@ -908,14 +935,14 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire, instr
908935 'start_time_unix_nano' : IsInt (),
909936 'time_unix_nano' : IsInt (),
910937 'count' : 1 ,
911- 'sum' : 0.00025 ,
938+ 'sum' : 0.00018125 ,
912939 'scale' : 20 ,
913940 'zero_count' : 0 ,
914- 'positive' : {'offset' : - 12547035 , 'bucket_counts' : [1 ]},
941+ 'positive' : {'offset' : - 13033519 , 'bucket_counts' : [1 ]},
915942 'negative' : {'offset' : 0 , 'bucket_counts' : [0 ]},
916943 'flags' : 0 ,
917- 'min' : 0.00025 ,
918- 'max' : 0.00025 ,
944+ 'min' : 0.00018125 ,
945+ 'max' : 0.00018125 ,
919946 'exemplars' : [],
920947 },
921948 {
@@ -929,14 +956,14 @@ async def test_instrumented_model_attributes_mode(capfire: CaptureLogfire, instr
929956 'start_time_unix_nano' : IsInt (),
930957 'time_unix_nano' : IsInt (),
931958 'count' : 1 ,
932- 'sum' : 0.002 ,
959+ 'sum' : 0.0017 ,
933960 'scale' : 20 ,
934961 'zero_count' : 0 ,
935- 'positive' : {'offset' : - 9401307 , 'bucket_counts' : [1 ]},
962+ 'positive' : {'offset' : - 9647161 , 'bucket_counts' : [1 ]},
936963 'negative' : {'offset' : 0 , 'bucket_counts' : [0 ]},
937964 'flags' : 0 ,
938- 'min' : 0.002 ,
939- 'max' : 0.002 ,
965+ 'min' : 0.0017 ,
966+ 'max' : 0.0017 ,
940967 'exemplars' : [],
941968 },
942969 ],
@@ -1490,6 +1517,12 @@ async def test_response_cost_error(capfire: CaptureLogfire, monkeypatch: pytest.
14901517 },
14911518 'gen_ai.usage.input_tokens' : 100 ,
14921519 'gen_ai.usage.output_tokens' : 200 ,
1520+ 'gen_ai.usage.details.reasoning_tokens' : 30 ,
1521+ 'gen_ai.usage.details.cache_write_tokens' : 10 ,
1522+ 'gen_ai.usage.details.cache_read_tokens' : 20 ,
1523+ 'gen_ai.usage.details.input_audio_tokens' : 10 ,
1524+ 'gen_ai.usage.details.cache_audio_read_tokens' : 5 ,
1525+ 'gen_ai.usage.details.output_audio_tokens' : 30 ,
14931526 'gen_ai.response.model' : 'gpt-4o-2024-11-20' ,
14941527 'gen_ai.response.id' : 'response_id' ,
14951528 },
0 commit comments