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,16 +108,23 @@ async def get_prompt_opt(
service = PromptOptimizerService(db) service = PromptOptimizerService(db)
async def event_generator(): async def event_generator():
async for chunk in service.optimize_prompt( yield "event:start\ndata: {}\n\n"
tenant_id=current_user.tenant_id, try:
model_id=data.model_id, async for chunk in service.optimize_prompt(
session_id=session_id, tenant_id=current_user.tenant_id,
user_id=current_user.id, model_id=data.model_id,
current_prompt=data.current_prompt, session_id=session_id,
user_require=data.message user_id=current_user.id,
): current_prompt=data.current_prompt,
# chunk 是 prompt 的增量内容 user_require=data.message
yield f"event:message\ndata: {json.dumps(chunk)}\n\n" ):
# chunk 是 prompt 的增量内容
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(),