fix(prompt_optim): allow streaming output to raise exceptions (#34)
This commit is contained in:
@@ -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(),
|
||||||
|
|||||||
Reference in New Issue
Block a user