Skip to content

Commit 301b9c8

Browse files
remove indirection
1 parent 1a24a66 commit 301b9c8

File tree

1 file changed

+60
-77
lines changed

1 file changed

+60
-77
lines changed

sentry_sdk/integrations/openai.py

Lines changed: 60 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -577,9 +577,36 @@ def _new_chat_completion_common(f: "Any", *args: "Any", **kwargs: "Any") -> "Any
577577
start_time = time.perf_counter()
578578
response = yield f, args, kwargs
579579

580-
if is_streaming_response:
581-
_set_streaming_completions_api_output_data(
582-
span, response, kwargs, integration, start_time, finish_span=True
580+
if isinstance(response, Stream):
581+
messages = kwargs.get("messages")
582+
583+
if messages is not None and isinstance(messages, str):
584+
messages = [messages]
585+
586+
if isinstance(response, Stream):
587+
response._iterator = _wrap_synchronous_completions_chunk_iterator(
588+
span=span,
589+
integration=integration,
590+
start_time=start_time,
591+
messages=messages,
592+
response=response,
593+
old_iterator=response._iterator,
594+
finish_span=True,
595+
)
596+
elif isinstance(response, AsyncStream):
597+
messages = kwargs.get("messages")
598+
599+
if messages is not None and isinstance(messages, str):
600+
messages = [messages]
601+
602+
response._iterator = _wrap_asynchronous_completions_chunk_iterator(
603+
span=span,
604+
integration=integration,
605+
start_time=start_time,
606+
messages=messages,
607+
response=response,
608+
old_iterator=response._iterator,
609+
finish_span=True,
583610
)
584611
else:
585612
_set_completions_api_output_data(
@@ -847,41 +874,6 @@ async def _wrap_asynchronous_responses_event_iterator(
847874
span.__exit__(None, None, None)
848875

849876

850-
def _set_streaming_completions_api_output_data(
851-
span: "Span",
852-
response: "Any",
853-
kwargs: "dict[str, Any]",
854-
integration: "OpenAIIntegration",
855-
start_time: "Optional[float]" = None,
856-
finish_span: bool = True,
857-
) -> None:
858-
messages = kwargs.get("messages")
859-
860-
if messages is not None and isinstance(messages, str):
861-
messages = [messages]
862-
863-
if isinstance(response, Stream):
864-
response._iterator = _wrap_synchronous_completions_chunk_iterator(
865-
span=span,
866-
integration=integration,
867-
start_time=start_time,
868-
messages=messages,
869-
response=response,
870-
old_iterator=response._iterator,
871-
finish_span=finish_span,
872-
)
873-
elif isinstance(response, AsyncStream):
874-
response._iterator = _wrap_asynchronous_completions_chunk_iterator(
875-
span=span,
876-
integration=integration,
877-
start_time=start_time,
878-
messages=messages,
879-
response=response,
880-
old_iterator=response._iterator,
881-
finish_span=finish_span,
882-
)
883-
884-
885877
def _set_responses_api_output_data(
886878
span: "Span",
887879
response: "Any",
@@ -903,42 +895,6 @@ def _set_responses_api_output_data(
903895
)
904896

905897

906-
def _set_streaming_responses_api_output_data(
907-
span: "Span",
908-
response: "Any",
909-
kwargs: "dict[str, Any]",
910-
integration: "OpenAIIntegration",
911-
start_time: "Optional[float]" = None,
912-
finish_span: bool = True,
913-
) -> None:
914-
input = kwargs.get("input")
915-
916-
if input is not None and isinstance(input, str):
917-
input = [input]
918-
919-
if isinstance(response, Stream):
920-
response._iterator = _wrap_synchronous_responses_event_iterator(
921-
span=span,
922-
integration=integration,
923-
start_time=start_time,
924-
input=input,
925-
response=response,
926-
old_iterator=response._iterator,
927-
finish_span=finish_span,
928-
)
929-
930-
elif isinstance(response, AsyncStream):
931-
response._iterator = _wrap_asynchronous_responses_event_iterator(
932-
span=span,
933-
integration=integration,
934-
start_time=start_time,
935-
input=input,
936-
response=response,
937-
old_iterator=response._iterator,
938-
finish_span=finish_span,
939-
)
940-
941-
942898
def _set_embeddings_output_data(
943899
span: "Span",
944900
response: "Any",
@@ -1143,9 +1099,36 @@ def _new_responses_create_common(f: "Any", *args: "Any", **kwargs: "Any") -> "An
11431099
start_time = time.perf_counter()
11441100
response = yield f, args, kwargs
11451101

1146-
if is_streaming_response:
1147-
_set_streaming_responses_api_output_data(
1148-
span, response, kwargs, integration, start_time, finish_span=True
1102+
if isinstance(response, Stream):
1103+
input = kwargs.get("input")
1104+
1105+
if input is not None and isinstance(input, str):
1106+
input = [input]
1107+
1108+
response._iterator = _wrap_synchronous_responses_event_iterator(
1109+
span=span,
1110+
integration=integration,
1111+
start_time=start_time,
1112+
input=input,
1113+
response=response,
1114+
old_iterator=response._iterator,
1115+
finish_span=True,
1116+
)
1117+
1118+
elif isinstance(response, AsyncStream):
1119+
input = kwargs.get("input")
1120+
1121+
if input is not None and isinstance(input, str):
1122+
input = [input]
1123+
1124+
response._iterator = _wrap_asynchronous_responses_event_iterator(
1125+
span=span,
1126+
integration=integration,
1127+
start_time=start_time,
1128+
input=input,
1129+
response=response,
1130+
old_iterator=response._iterator,
1131+
finish_span=True,
11491132
)
11501133
else:
11511134
_set_responses_api_output_data(

0 commit comments

Comments
 (0)