fix(prompt_optim): allow streaming output to raise exceptions (#34)

This commit is contained in:
Eternity
2026-01-06 14:27:51 +08:00
committed by GitHub
parent a0f19ace92
commit 79d035ac02

View File

@@ -108,6 +108,8 @@ async def get_prompt_opt(
service = PromptOptimizerService(db) service = PromptOptimizerService(db)
async def event_generator(): async def event_generator():
yield "event:start\ndata: {}\n\n"
try:
async for chunk in service.optimize_prompt( async for chunk in service.optimize_prompt(
tenant_id=current_user.tenant_id, tenant_id=current_user.tenant_id,
model_id=data.model_id, model_id=data.model_id,
@@ -118,6 +120,11 @@ async def get_prompt_opt(
): ):
# chunk 是 prompt 的增量内容 # chunk 是 prompt 的增量内容
yield f"event:message\ndata: {json.dumps(chunk)}\n\n" yield f"event:message\ndata: {json.dumps(chunk)}\n\n"
except Exception as e:
yield f"event:error\ndata: {json.dumps(
{"error": str(e)}
)}\n\n"
yield "event:end\ndata: {}\n\n"
return StreamingResponse( return StreamingResponse(
event_generator(), event_generator(),