Skip to content

Commit ac60719

Browse files
authored
Merge branch 'master' into feat/span-first
2 parents 09154fb + 34e4a8b commit ac60719

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

sentry_sdk/integrations/openai.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -237,10 +237,6 @@ def _set_responses_api_input_data(
237237
if model is not None:
238238
span.set_data(SPANDATA.GEN_AI_REQUEST_MODEL, model)
239239

240-
stream = kwargs.get("stream")
241-
if stream is not None and _is_given(stream):
242-
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, stream)
243-
244240
max_tokens = kwargs.get("max_output_tokens")
245241
if max_tokens is not None and _is_given(max_tokens):
246242
span.set_data(SPANDATA.GEN_AI_REQUEST_MAX_TOKENS, max_tokens)
@@ -1059,12 +1055,16 @@ def _new_responses_create_common(f: "Any", *args: "Any", **kwargs: "Any") -> "An
10591055
span.__enter__()
10601056

10611057
span.set_data(SPANDATA.GEN_AI_SYSTEM, "openai")
1058+
1059+
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/responses/responses.py#L940
1060+
is_streaming_response = kwargs.get("stream", False) or False
1061+
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
1062+
10621063
_set_responses_api_input_data(span, kwargs, integration)
10631064

10641065
start_time = time.perf_counter()
10651066
response = yield f, args, kwargs
10661067

1067-
is_streaming_response = kwargs.get("stream", False)
10681068
if is_streaming_response:
10691069
_set_streaming_responses_api_output_data(
10701070
span, response, kwargs, integration, start_time, finish_span=True

tests/integrations/openai/test_openai.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1892,6 +1892,7 @@ def test_ai_client_span_responses_api_no_pii(sentry_init, capture_events):
18921892
"gen_ai.request.top_p": 0.9,
18931893
"gen_ai.request.model": "gpt-4o",
18941894
"gen_ai.response.model": "response-model-id",
1895+
"gen_ai.response.streaming": False,
18951896
"gen_ai.system": "openai",
18961897
"gen_ai.usage.input_tokens": 20,
18971898
"gen_ai.usage.input_tokens.cached": 5,
@@ -2009,6 +2010,7 @@ def test_ai_client_span_responses_api(
20092010
"gen_ai.request.top_p": 0.9,
20102011
"gen_ai.system": "openai",
20112012
"gen_ai.response.model": "response-model-id",
2013+
"gen_ai.response.streaming": False,
20122014
"gen_ai.usage.input_tokens": 20,
20132015
"gen_ai.usage.input_tokens.cached": 5,
20142016
"gen_ai.usage.output_tokens": 10,
@@ -2318,6 +2320,7 @@ async def test_ai_client_span_responses_async_api(
23182320
"gen_ai.request.messages": '["How do I check if a Python object is an instance of a class?"]',
23192321
"gen_ai.request.model": "gpt-4o",
23202322
"gen_ai.response.model": "response-model-id",
2323+
"gen_ai.response.streaming": False,
23212324
"gen_ai.system": "openai",
23222325
"gen_ai.usage.input_tokens": 20,
23232326
"gen_ai.usage.input_tokens.cached": 5,

0 commit comments

Comments
 (0)