@@ -59,9 +59,9 @@ def __stream__(self) -> Iterator[_T]:
59
59
if sse .data .startswith ("[DONE]" ):
60
60
break
61
61
62
- data = sse .json ()
63
- if sse . event is not None and sse .event == "error" :
64
- if sse . event == "error" and is_mapping (data ) and data .get ("error" ):
62
+ if sse . event is not None and not sse .event . startswith ( "thread." ):
63
+ data = sse .json ()
64
+ if is_mapping (data ) and data .get ("error" ):
65
65
message = None
66
66
error = data .get ("error" )
67
67
if is_mapping (error ):
@@ -74,11 +74,11 @@ def __stream__(self) -> Iterator[_T]:
74
74
request = self .response .request ,
75
75
body = data ["error" ],
76
76
)
77
- elif sse .event is not None and sse .event .startswith ("thread." ):
78
- # have to manually create part of the event since we don't have a full event
79
- yield process_data (data = {"data" : data , "event" : sse .event }, cast_to = cast_to , response = response )
77
+
78
+ yield process_data (data = data , cast_to = cast_to , response = response )
80
79
else :
81
- if is_mapping (data ) and data .get ("error" ):
80
+ data = sse .json ()
81
+ if sse .event == "error" and is_mapping (data ) and data .get ("error" ):
82
82
message = None
83
83
error = data .get ("error" )
84
84
if is_mapping (error ):
@@ -91,8 +91,8 @@ def __stream__(self) -> Iterator[_T]:
91
91
request = self .response .request ,
92
92
body = data ["error" ],
93
93
)
94
-
95
- yield process_data (data = data , cast_to = cast_to , response = response )
94
+ # have to manually create part of the event since we don't have a full event
95
+ yield process_data (data = { " data" : data , "event" : sse . event } , cast_to = cast_to , response = response )
96
96
97
97
# Ensure the entire stream is consumed
98
98
for _sse in iterator :
0 commit comments