@@ -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-
885877def _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-
942898def _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