From 66434942959d009cd3868d3d3ec05da0a73999ca Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期四, 16 一月 2025 13:40:51 +0800 Subject: [PATCH] 查询排序异常优化 --- app/api/chat.py | 26 +++++++++++++++++--------- 1 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/api/chat.py b/app/api/chat.py index 84fd2f9..2241161 100644 --- a/app/api/chat.py +++ b/app/api/chat.py @@ -685,7 +685,7 @@ complete_response = "" async for rag_response in dify_service.chat(token, current_user.id, question, files, conversation_id, {}): - # print(rag_response) + print(rag_response) try: if rag_response[:5] == "data:": # 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界 @@ -712,19 +712,24 @@ elif isinstance(answer, dict): message = answer.get("title", "") + if answer.get("status") == "failed": + message = answer.get("error") result = {"message": message, "type": "system"} - continue + # continue elif data.get("event") == "message": # "event": "message_end" # 姝e父杈撳嚭 answer = data.get("answer", "") result = {"message": answer, "type": "stream"} + elif data.get("event") == "error": + answer = data.get("message", "") + result = {"message": answer, "type": "system"} elif data.get("event") == "workflow_finished": answer = data.get("data", "") if isinstance(answer, str): logger.error("----------------鏈煡鏁版嵁--------------------") logger.error(data) - result = {"message": "", "type": "close", "download_url": ""} + # result = {"message": "", "type": "close", "download_url": ""} elif isinstance(answer, dict): download_url = "" outputs = answer.get("outputs", {}) @@ -734,8 +739,8 @@ else: message = answer.get("error", "") - # result = {"message": message, "type": "message", - # "download_url": download_url} + result = {"message": message, "type": "system", + "download_url": download_url} try: SessionService(db).update_session(chat_id, message={"role": "assistant", @@ -748,7 +753,7 @@ logger.error("淇濆瓨dify鐨勪細璇濆紓甯革紒") logger.error(e) # await websocket.send_json(result) - continue + # continue elif data.get("event") == "message_end": result = {"message": "", "type": "close"} @@ -871,6 +876,9 @@ # 姝e父杈撳嚭 answer = data.get("answer", "") result = {"message": answer, "type": "stream"} + elif data.get("event") == "error": + answer = data.get("message", "") + result = {"message": answer, "type": "system"} elif data.get("event") == "workflow_finished": answer = data.get("data", "") if isinstance(answer, str): @@ -886,8 +894,8 @@ else: message = answer.get("error", "") - # result = {"message": message, "type": "message", - # "download_url": download_url} + result = {"message": message, "type": "system", + "download_url": download_url} try: SessionService(db).update_session(chat_id, message={"role": "assistant", @@ -900,7 +908,7 @@ logger.error("淇濆瓨dify鐨勪細璇濆紓甯革紒") logger.error(e) # await websocket.send_json(result) - continue + # continue elif data.get("event") == "message_end": result = {"message": "", "type": "close"} -- Gitblit v1.8.0