This commit is contained in:
Timothy Jaeryang Baek 2025-09-07 02:02:21 +04:00
parent 3d6d050ad8
commit c9282135c4

View file

@ -411,25 +411,28 @@ async def get_file_process_status(
MAX_FILE_PROCESSING_DURATION = 3600 * 2 MAX_FILE_PROCESSING_DURATION = 3600 * 2
async def event_stream(file_item): async def event_stream(file_item):
for _ in range(MAX_FILE_PROCESSING_DURATION): if file_item:
file_item = Files.get_file_by_id(file_item.id) for _ in range(MAX_FILE_PROCESSING_DURATION):
if file_item: file_item = Files.get_file_by_id(file_item.id)
data = file_item.model_dump().get("data", {}) if file_item:
status = data.get("status") data = file_item.model_dump().get("data", {})
status = data.get("status")
if status: if status:
event = {"status": status} event = {"status": status}
if status == "failed": if status == "failed":
event["error"] = data.get("error") event["error"] = data.get("error")
yield f"data: {json.dumps(event)}\n\n" yield f"data: {json.dumps(event)}\n\n"
if status in ("completed", "failed"): if status in ("completed", "failed"):
break
else:
# Legacy
break break
else:
# Legacy
break
await asyncio.sleep(0.5) await asyncio.sleep(0.5)
else:
yield f"data: {json.dumps({'status': 'not_found'})}\n\n"
return StreamingResponse( return StreamingResponse(
event_stream(file), event_stream(file),