浏览代码

feat: function exception handler

Timothy J. Baek 10 月之前
父节点
当前提交
cf6447eb2a
共有 1 个文件被更改,包括 19 次插入4 次删除
  1. 19 4
      backend/main.py

+ 19 - 4
backend/main.py

@@ -913,10 +913,15 @@ async def generate_chat_completions(form_data: dict, user=Depends(get_verified_u
             if form_data["stream"]:
 
                 async def stream_content():
-                    if inspect.iscoroutinefunction(pipe):
-                        res = await pipe(**param)
-                    else:
-                        res = pipe(**param)
+                    try:
+                        if inspect.iscoroutinefunction(pipe):
+                            res = await pipe(**param)
+                        else:
+                            res = pipe(**param)
+                    except Exception as e:
+                        print(f"Error: {e}")
+                        yield f"data: {json.dumps({'error': {'detail':str(e)}})}\n\n"
+                        return
 
                     if isinstance(res, str):
                         message = stream_message_template(form_data["model"], res)
@@ -961,6 +966,16 @@ async def generate_chat_completions(form_data: dict, user=Depends(get_verified_u
                     stream_content(), media_type="text/event-stream"
                 )
             else:
+
+                try:
+                    if inspect.iscoroutinefunction(pipe):
+                        res = await pipe(**param)
+                    else:
+                        res = pipe(**param)
+                except Exception as e:
+                    print(f"Error: {e}")
+                    return {"error": {"detail":str(e)}}
+
                 if inspect.iscoroutinefunction(pipe):
                     res = await pipe(**param)
                 else: