| 78 | return output |
| 79 | |
| 80 | async def event_generator(): |
| 81 | try: |
| 82 | # 将生成过程包裹在try块中以捕获异常 |
| 83 | for result in llm_engine.generate(request, stream): |
| 84 | yield f"data: {json.dumps(result)}\n\n" |
| 85 | except Exception as e: |
| 86 | # 记录完整的异常堆栈信息 |
| 87 | api_server_logger.error(f"Error during generation: {e!s}", exc_info=True) |
| 88 | # 返回结构化的错误消息并终止流 |
| 89 | error_msg = {"error": str(e), "error_type": e.__class__.__name__} |
| 90 | yield f"data: {json.dumps(error_msg)}\n\n" |
| 91 | |
| 92 | return StreamingResponse(event_generator(), media_type="text/event-stream") |
| 93 | |