Skip to content

Commit d8001ff

Browse files
.
1 parent 81a880f commit d8001ff

1 file changed

Lines changed: 34 additions & 45 deletions

File tree

sentry_sdk/integrations/openai.py

Lines changed: 34 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -725,32 +725,30 @@ def _new_sync_chat_completion(f: "Any", *args: "Any", **kwargs: "Any") -> "Any":
725725

726726
model = kwargs.get("model")
727727

728+
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/completions.py#L585
729+
is_streaming_response = kwargs.get("stream", False) or False
730+
728731
if has_span_streaming_enabled(client.options):
729732
span = sentry_sdk.traces.start_span(
730733
name=f"chat {model}",
731734
attributes={
732735
"sentry.op": consts.OP.GEN_AI_CHAT,
733736
"sentry.origin": OpenAIIntegration.origin,
737+
SPANDATA.GEN_AI_SYSTEM: "openai",
738+
SPANDATA.GEN_AI_RESPONSE_STREAMING: is_streaming_response,
734739
},
735740
)
736741

737-
set_on_span = span.set_attribute
738742
else:
739743
span = get_start_span_function()(
740744
op=consts.OP.GEN_AI_CHAT,
741745
name=f"chat {model}",
742746
origin=OpenAIIntegration.origin,
743747
)
748+
span.__enter__()
744749

745-
set_on_span = span.set_data
746-
747-
span.__enter__()
748-
749-
set_on_span(SPANDATA.GEN_AI_SYSTEM, "openai")
750-
751-
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/completions.py#L585
752-
is_streaming_response = kwargs.get("stream", False) or False
753-
set_on_span(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
750+
span.set_data(SPANDATA.GEN_AI_SYSTEM, "openai")
751+
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
754752

755753
_set_completions_api_input_data(span, kwargs, integration)
756754

@@ -808,32 +806,29 @@ async def _new_async_chat_completion(f: "Any", *args: "Any", **kwargs: "Any") ->
808806

809807
model = kwargs.get("model")
810808

809+
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/completions.py#L585
810+
is_streaming_response = kwargs.get("stream", False) or False
811+
811812
if has_span_streaming_enabled(client.options):
812813
span = sentry_sdk.traces.start_span(
813814
name=f"chat {model}",
814815
attributes={
815816
"sentry.op": consts.OP.GEN_AI_CHAT,
816817
"sentry.origin": OpenAIIntegration.origin,
818+
SPANDATA.GEN_AI_SYSTEM: "openai",
819+
SPANDATA.GEN_AI_RESPONSE_STREAMING: is_streaming_response,
817820
},
818821
)
819-
820-
set_on_span = span.set_attribute
821822
else:
822823
span = get_start_span_function()(
823824
op=consts.OP.GEN_AI_CHAT,
824825
name=f"chat {model}",
825826
origin=OpenAIIntegration.origin,
826827
)
828+
span.__enter__()
827829

828-
set_on_span = span.set_data
829-
830-
span.__enter__()
831-
832-
set_on_span(SPANDATA.GEN_AI_SYSTEM, "openai")
833-
834-
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/completions.py#L585
835-
is_streaming_response = kwargs.get("stream", False) or False
836-
set_on_span(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
830+
span.set_data(SPANDATA.GEN_AI_SYSTEM, "openai")
831+
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
837832

838833
_set_completions_api_input_data(span, kwargs, integration)
839834

@@ -1237,9 +1232,9 @@ def _new_sync_embeddings_create(f: "Any", *args: "Any", **kwargs: "Any") -> "Any
12371232
attributes={
12381233
"sentry.op": consts.OP.GEN_AI_EMBEDDINGS,
12391234
"sentry.origin": OpenAIIntegration.origin,
1235+
SPANDATA.GEN_AI_SYSTEM: "openai",
12401236
},
12411237
) as span:
1242-
span.set_attribute(SPANDATA.GEN_AI_SYSTEM, "openai")
12431238
_set_embeddings_input_data(span, kwargs, integration)
12441239

12451240
try:
@@ -1295,9 +1290,9 @@ async def _new_async_embeddings_create(
12951290
attributes={
12961291
"sentry.op": consts.OP.GEN_AI_EMBEDDINGS,
12971292
"sentry.origin": OpenAIIntegration.origin,
1293+
SPANDATA.GEN_AI_SYSTEM: "openai",
12981294
},
12991295
) as span:
1300-
span.set_attribute(SPANDATA.GEN_AI_SYSTEM, "openai")
13011296
_set_embeddings_input_data(span, kwargs, integration)
13021297

13031298
try:
@@ -1369,32 +1364,29 @@ def _new_sync_responses_create(f: "Any", *args: "Any", **kwargs: "Any") -> "Any"
13691364

13701365
model = kwargs.get("model")
13711366

1367+
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/responses/responses.py#L940
1368+
is_streaming_response = kwargs.get("stream", False) or False
1369+
13721370
if has_span_streaming_enabled(client.options):
13731371
span = sentry_sdk.traces.start_span(
13741372
name=f"responses {model}",
13751373
attributes={
13761374
"sentry.op": consts.OP.GEN_AI_RESPONSES,
13771375
"sentry.origin": OpenAIIntegration.origin,
1376+
SPANDATA.GEN_AI_SYSTEM: "openai",
1377+
SPANDATA.GEN_AI_RESPONSE_STREAMING: is_streaming_response,
13781378
},
13791379
)
1380-
1381-
set_on_span = span.set_attribute
13821380
else:
13831381
span = get_start_span_function()(
13841382
op=consts.OP.GEN_AI_RESPONSES,
13851383
name=f"responses {model}",
13861384
origin=OpenAIIntegration.origin,
13871385
)
1386+
span.__enter__()
13881387

1389-
set_on_span = span.set_data
1390-
1391-
span.__enter__()
1392-
1393-
set_on_span(SPANDATA.GEN_AI_SYSTEM, "openai")
1394-
1395-
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/responses/responses.py#L940
1396-
is_streaming_response = kwargs.get("stream", False) or False
1397-
set_on_span(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
1388+
span.set_data(SPANDATA.GEN_AI_SYSTEM, "openai")
1389+
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
13981390

13991391
_set_responses_api_input_data(span, kwargs, integration)
14001392

@@ -1442,32 +1434,29 @@ async def _new_async_responses_create(f: "Any", *args: "Any", **kwargs: "Any") -
14421434

14431435
model = kwargs.get("model")
14441436

1437+
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/responses/responses.py#L940
1438+
is_streaming_response = kwargs.get("stream", False) or False
1439+
14451440
if has_span_streaming_enabled(client.options):
14461441
span = sentry_sdk.traces.start_span(
14471442
name=f"responses {model}",
14481443
attributes={
14491444
"sentry.op": consts.OP.GEN_AI_RESPONSES,
14501445
"sentry.origin": OpenAIIntegration.origin,
1446+
SPANDATA.GEN_AI_SYSTEM: "openai",
1447+
SPANDATA.GEN_AI_RESPONSE_STREAMING: is_streaming_response,
14511448
},
14521449
)
1453-
1454-
set_on_span = span.set_attribute
14551450
else:
14561451
span = get_start_span_function()(
14571452
op=consts.OP.GEN_AI_RESPONSES,
14581453
name=f"responses {model}",
14591454
origin=OpenAIIntegration.origin,
14601455
)
1456+
span.__enter__()
14611457

1462-
set_on_span = span.set_data
1463-
1464-
span.__enter__()
1465-
1466-
set_on_span(SPANDATA.GEN_AI_SYSTEM, "openai")
1467-
1468-
# Same bool handling as in https://github.com/openai/openai-python/blob/acd0c54d8a68efeedde0e5b4e6c310eef1ce7867/src/openai/resources/responses/responses.py#L940
1469-
is_streaming_response = kwargs.get("stream", False) or False
1470-
set_on_span(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
1458+
span.set_data(SPANDATA.GEN_AI_SYSTEM, "openai")
1459+
span.set_data(SPANDATA.GEN_AI_RESPONSE_STREAMING, is_streaming_response)
14711460

14721461
_set_responses_api_input_data(span, kwargs, integration)
14731462

0 commit comments

Comments
 (0)