Spaces:
Running
Running
Update gen.py
Browse files
gen.py
CHANGED
|
@@ -1200,29 +1200,29 @@ async def create_response(
|
|
| 1200 |
sent_created = False
|
| 1201 |
completed = False
|
| 1202 |
buffer = ""
|
| 1203 |
-
|
| 1204 |
async for chunk in response.body_iterator:
|
| 1205 |
if isinstance(chunk, bytes):
|
| 1206 |
chunk = chunk.decode("utf-8", errors="replace")
|
| 1207 |
buffer += chunk
|
| 1208 |
-
|
| 1209 |
while "\n" in buffer:
|
| 1210 |
line, buffer = buffer.split("\n", 1)
|
| 1211 |
line = line.rstrip("\r")
|
| 1212 |
if not line:
|
| 1213 |
continue
|
| 1214 |
-
|
| 1215 |
translated, new_sent, is_done = _wrap_responses_stream_chunk(
|
| 1216 |
line, response_id, model_label, sent_created
|
| 1217 |
)
|
| 1218 |
sent_created = new_sent
|
| 1219 |
-
|
| 1220 |
if is_done:
|
| 1221 |
completed = True
|
| 1222 |
-
|
| 1223 |
if translated:
|
| 1224 |
yield translated
|
| 1225 |
-
|
| 1226 |
if buffer.strip():
|
| 1227 |
translated, new_sent, is_done = _wrap_responses_stream_chunk(
|
| 1228 |
buffer.strip(), response_id, model_label, sent_created
|
|
@@ -1232,19 +1232,12 @@ async def create_response(
|
|
| 1232 |
completed = True
|
| 1233 |
if translated:
|
| 1234 |
yield translated
|
| 1235 |
-
|
|
|
|
|
|
|
| 1236 |
if sent_created and not completed:
|
| 1237 |
-
|
| 1238 |
-
|
| 1239 |
-
"response": {
|
| 1240 |
-
"id": response_id,
|
| 1241 |
-
"object": "response",
|
| 1242 |
-
"model": model_label,
|
| 1243 |
-
"status": "completed",
|
| 1244 |
-
"output": [],
|
| 1245 |
-
"usage": None,
|
| 1246 |
-
},
|
| 1247 |
-
})
|
| 1248 |
yield f"data: {done_event}\n\n"
|
| 1249 |
|
| 1250 |
return StreamingResponse(
|
|
|
|
| 1200 |
sent_created = False
|
| 1201 |
completed = False
|
| 1202 |
buffer = ""
|
| 1203 |
+
|
| 1204 |
async for chunk in response.body_iterator:
|
| 1205 |
if isinstance(chunk, bytes):
|
| 1206 |
chunk = chunk.decode("utf-8", errors="replace")
|
| 1207 |
buffer += chunk
|
| 1208 |
+
|
| 1209 |
while "\n" in buffer:
|
| 1210 |
line, buffer = buffer.split("\n", 1)
|
| 1211 |
line = line.rstrip("\r")
|
| 1212 |
if not line:
|
| 1213 |
continue
|
| 1214 |
+
|
| 1215 |
translated, new_sent, is_done = _wrap_responses_stream_chunk(
|
| 1216 |
line, response_id, model_label, sent_created
|
| 1217 |
)
|
| 1218 |
sent_created = new_sent
|
| 1219 |
+
|
| 1220 |
if is_done:
|
| 1221 |
completed = True
|
| 1222 |
+
|
| 1223 |
if translated:
|
| 1224 |
yield translated
|
| 1225 |
+
|
| 1226 |
if buffer.strip():
|
| 1227 |
translated, new_sent, is_done = _wrap_responses_stream_chunk(
|
| 1228 |
buffer.strip(), response_id, model_label, sent_created
|
|
|
|
| 1232 |
completed = True
|
| 1233 |
if translated:
|
| 1234 |
yield translated
|
| 1235 |
+
|
| 1236 |
+
print(f"[RESPONSES STREAM] generator exhausted. sent_created={sent_created} completed={completed}")
|
| 1237 |
+
|
| 1238 |
if sent_created and not completed:
|
| 1239 |
+
print("[RESPONSES STREAM] guard firing — upstream closed without [DONE]")
|
| 1240 |
+
done_event = json.dumps({...})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1241 |
yield f"data: {done_event}\n\n"
|
| 1242 |
|
| 1243 |
return StreamingResponse(
|