xuyonghao пре 1 година
родитељ
комит
c89fa72d0d
2 измењених фајлова са 7 додато и 6 уклоњено
  1. 7 5
      app/api/chat.py
  2. 0 1
      app/service/ragflow.py

+ 7 - 5
app/api/chat.py

@@ -64,6 +64,7 @@ async def handle_client(websocket: WebSocket,
                                 "doc_ids": message.get("doc_ids", []),
                                 "role": "user"
                             })
+                    complete_response = ""
                     async for rag_response in ragflow_service.chat(token, chat_id, chat_history):
                         try:
                             if rag_response[:5] == "data:":
@@ -72,8 +73,9 @@ async def handle_client(websocket: WebSocket,
                             else:
                                 # 否则,保持原样
                                 text = rag_response
+                            complete_response += text
                             try:
-                                json_data = json.loads(text)
+                                json_data = json.loads(complete_response)
                                 data = json_data.get("data")
                                 if data is True:  # 完成输出
                                     result = {"message": "", "type": "close"}
@@ -85,10 +87,10 @@ async def handle_client(websocket: WebSocket,
                                     reference = data.get("reference", {})
                                     result = {"message": answer, "type": "message", "reference": reference}
                                 await websocket.send_json(result)
-                            except json.JSONDecodeError:
-                                print(f"Error decode ragflow response: {text}")
-                                pass
-
+                                complete_response = ""
+                            except json.JSONDecodeError as e:
+                                print(f"Error decoding JSON: {e}")
+                                print(f"Response text: {text}")
                         except Exception as e2:
                             result = {"message": f"内部错误: {e2}", "type": "close"}
                             await websocket.send_json(result)

+ 0 - 1
app/service/ragflow.py

@@ -1,7 +1,6 @@
 import httpx
 from typing import Union, Dict, List
 
-from Tools.scripts.objgraph import ignore
 from fastapi import HTTPException
 from starlette import status