From b9c7727dc6fbb3789f063c0616ef9392311fecb2 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期四, 06 二月 2025 10:58:14 +0800 Subject: [PATCH] merge master --- app/api/chat.py | 31 +++++++++++++++++++++---------- 1 files changed, 21 insertions(+), 10 deletions(-) diff --git a/app/api/chat.py b/app/api/chat.py index e782c1e..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"} @@ -799,7 +804,10 @@ inputs["key_words"] = receive_message["key_words"] upload_files = receive_message.get('upload_files', []) question = receive_message.get('message', "") - + session_log = SessionService(db).get_session_by_id(chat_id) + if not session_log and not upload_files: + await websocket.send_json({"message": "闇�瑕佷笂浼犳枃妗o紒", "type": "error"}) + continue try: session = SessionService(db).create_session( chat_id, @@ -868,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): @@ -883,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", @@ -897,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