Skip to content

Commit 505f3e3

Browse files
authored
Test OpenAI completion usage (#1473)
1 parent 9ec1f55 commit 505f3e3

File tree

1 file changed

+80
-6
lines changed

1 file changed

+80
-6
lines changed

tests/otel_integrations/test_openai.py

Lines changed: 80 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,11 @@ def request_handler(request: httpx.Request) -> httpx.Response:
277277
created=123,
278278
model='gpt-3.5-turbo-instruct',
279279
object='text_completion',
280+
usage=completion_usage.CompletionUsage(
281+
completion_tokens=1,
282+
prompt_tokens=2,
283+
total_tokens=3,
284+
),
280285
).model_dump(mode='json'),
281286
)
282287
elif request.url == 'https://api.openai.com/v1/embeddings':
@@ -1403,7 +1408,19 @@ def test_completions(instrumented_client: openai.Client, exporter: TestExporter)
14031408
'gen_ai.system': 'openai',
14041409
'gen_ai.request.model': 'gpt-3.5-turbo-instruct',
14051410
'gen_ai.response.model': 'gpt-3.5-turbo-instruct',
1406-
'response_data': {'finish_reason': 'stop', 'text': 'Nine', 'usage': None},
1411+
'gen_ai.usage.input_tokens': 2,
1412+
'gen_ai.usage.output_tokens': 1,
1413+
'response_data': {
1414+
'finish_reason': 'stop',
1415+
'text': 'Nine',
1416+
'usage': {
1417+
'completion_tokens': 1,
1418+
'prompt_tokens': 2,
1419+
'total_tokens': 3,
1420+
'completion_tokens_details': None,
1421+
'prompt_tokens_details': None,
1422+
},
1423+
},
14071424
'logfire.json_schema': {
14081425
'type': 'object',
14091426
'properties': {
@@ -1412,7 +1429,18 @@ def test_completions(instrumented_client: openai.Client, exporter: TestExporter)
14121429
'gen_ai.system': {},
14131430
'gen_ai.request.model': {},
14141431
'gen_ai.response.model': {},
1415-
'response_data': {'type': 'object'},
1432+
'gen_ai.usage.input_tokens': {},
1433+
'gen_ai.usage.output_tokens': {},
1434+
'response_data': {
1435+
'type': 'object',
1436+
'properties': {
1437+
'usage': {
1438+
'type': 'object',
1439+
'title': 'CompletionUsage',
1440+
'x-python-datatype': 'PydanticModel',
1441+
}
1442+
},
1443+
},
14161444
},
14171445
},
14181446
},
@@ -1903,7 +1931,19 @@ def test_dont_suppress_httpx(exporter: TestExporter) -> None:
19031931
'gen_ai.system': 'openai',
19041932
'gen_ai.request.model': 'gpt-3.5-turbo-instruct',
19051933
'gen_ai.response.model': 'gpt-3.5-turbo-instruct',
1906-
'response_data': {'finish_reason': 'stop', 'text': 'Nine', 'usage': None},
1934+
'gen_ai.usage.input_tokens': 2,
1935+
'gen_ai.usage.output_tokens': 1,
1936+
'response_data': {
1937+
'finish_reason': 'stop',
1938+
'text': 'Nine',
1939+
'usage': {
1940+
'completion_tokens': 1,
1941+
'prompt_tokens': 2,
1942+
'total_tokens': 3,
1943+
'completion_tokens_details': None,
1944+
'prompt_tokens_details': None,
1945+
},
1946+
},
19071947
'logfire.json_schema': {
19081948
'type': 'object',
19091949
'properties': {
@@ -1912,7 +1952,18 @@ def test_dont_suppress_httpx(exporter: TestExporter) -> None:
19121952
'gen_ai.system': {},
19131953
'gen_ai.request.model': {},
19141954
'gen_ai.response.model': {},
1915-
'response_data': {'type': 'object'},
1955+
'gen_ai.usage.input_tokens': {},
1956+
'gen_ai.usage.output_tokens': {},
1957+
'response_data': {
1958+
'type': 'object',
1959+
'properties': {
1960+
'usage': {
1961+
'type': 'object',
1962+
'title': 'CompletionUsage',
1963+
'x-python-datatype': 'PydanticModel',
1964+
}
1965+
},
1966+
},
19161967
},
19171968
},
19181969
'logfire.metrics': {
@@ -1985,7 +2036,19 @@ def test_suppress_httpx(exporter: TestExporter) -> None:
19852036
'gen_ai.system': 'openai',
19862037
'gen_ai.request.model': 'gpt-3.5-turbo-instruct',
19872038
'gen_ai.response.model': 'gpt-3.5-turbo-instruct',
1988-
'response_data': {'finish_reason': 'stop', 'text': 'Nine', 'usage': None},
2039+
'gen_ai.usage.input_tokens': 2,
2040+
'gen_ai.usage.output_tokens': 1,
2041+
'response_data': {
2042+
'finish_reason': 'stop',
2043+
'text': 'Nine',
2044+
'usage': {
2045+
'completion_tokens': 1,
2046+
'prompt_tokens': 2,
2047+
'total_tokens': 3,
2048+
'completion_tokens_details': None,
2049+
'prompt_tokens_details': None,
2050+
},
2051+
},
19892052
'logfire.json_schema': {
19902053
'type': 'object',
19912054
'properties': {
@@ -1994,7 +2057,18 @@ def test_suppress_httpx(exporter: TestExporter) -> None:
19942057
'gen_ai.system': {},
19952058
'gen_ai.request.model': {},
19962059
'gen_ai.response.model': {},
1997-
'response_data': {'type': 'object'},
2060+
'gen_ai.usage.input_tokens': {},
2061+
'gen_ai.usage.output_tokens': {},
2062+
'response_data': {
2063+
'type': 'object',
2064+
'properties': {
2065+
'usage': {
2066+
'type': 'object',
2067+
'title': 'CompletionUsage',
2068+
'x-python-datatype': 'PydanticModel',
2069+
}
2070+
},
2071+
},
19982072
},
19992073
},
20002074
},

0 commit comments

Comments
 (0)