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