|
@@ -297,7 +297,7 @@ async def handle_client(websocket: WebSocket,
|
|
|
conversation_id = ""
|
|
conversation_id = ""
|
|
|
receive_message = await websocket.receive_json()
|
|
receive_message = await websocket.receive_json()
|
|
|
print(f"Received from client {chat_id}: {receive_message}")
|
|
print(f"Received from client {chat_id}: {receive_message}")
|
|
|
- upload_file_id = receive_message.get('upload_file_id', [])
|
|
|
|
|
|
|
+ upload_file_id = receive_message.get('upload_file_id', "")
|
|
|
question = receive_message.get('message', "")
|
|
question = receive_message.get('message', "")
|
|
|
if not question and not image_url:
|
|
if not question and not image_url:
|
|
|
await websocket.send_json({"message": "Invalid request", "type": "error"})
|
|
await websocket.send_json({"message": "Invalid request", "type": "error"})
|
|
@@ -316,8 +316,8 @@ async def handle_client(websocket: WebSocket,
|
|
|
# complete_response = ""
|
|
# complete_response = ""
|
|
|
answer_str = ""
|
|
answer_str = ""
|
|
|
async for rag_response in dify_service.chat(token, current_user.id, question, upload_file_id, conversation_id):
|
|
async for rag_response in dify_service.chat(token, current_user.id, question, upload_file_id, conversation_id):
|
|
|
- print("=============================================")
|
|
|
|
|
- print(rag_response)
|
|
|
|
|
|
|
+ # print("=============================================")
|
|
|
|
|
+ # print(rag_response)
|
|
|
try:
|
|
try:
|
|
|
if rag_response[:5] == "data:":
|
|
if rag_response[:5] == "data:":
|
|
|
# 如果是,则截取掉前5个字符,并去除首尾空白符
|
|
# 如果是,则截取掉前5个字符,并去除首尾空白符
|
|
@@ -333,7 +333,7 @@ async def handle_client(websocket: WebSocket,
|
|
|
if data.get("event") == "agent_message":# "event": "message_end"
|
|
if data.get("event") == "agent_message":# "event": "message_end"
|
|
|
if "answer" not in data or not data["answer"]: # 信息过滤
|
|
if "answer" not in data or not data["answer"]: # 信息过滤
|
|
|
logger.error("非法数据--------------------")
|
|
logger.error("非法数据--------------------")
|
|
|
- logger.error(data)
|
|
|
|
|
|
|
+ # logger.error(data)
|
|
|
|
|
|
|
|
continue
|
|
continue
|
|
|
else: # 正常输出
|
|
else: # 正常输出
|
|
@@ -345,8 +345,8 @@ async def handle_client(websocket: WebSocket,
|
|
|
logger.error("未知数据体:0---------------------------------")
|
|
logger.error("未知数据体:0---------------------------------")
|
|
|
logger.error(answer)
|
|
logger.error(answer)
|
|
|
answer_str += answer.get("action_input", "")
|
|
answer_str += answer.get("action_input", "")
|
|
|
- continue
|
|
|
|
|
|
|
|
|
|
|
|
+ result = {"message": answer_str, "type": "message"}
|
|
|
elif data.get("event") == "message_end":
|
|
elif data.get("event") == "message_end":
|
|
|
result = {"message": answer_str, "type": "close"}
|
|
result = {"message": answer_str, "type": "close"}
|
|
|
try:
|
|
try:
|
|
@@ -355,6 +355,9 @@ async def handle_client(websocket: WebSocket,
|
|
|
except Exception as e:
|
|
except Exception as e:
|
|
|
logger.error("保存dify的会话异常!")
|
|
logger.error("保存dify的会话异常!")
|
|
|
logger.error(e)
|
|
logger.error(e)
|
|
|
|
|
+ elif data.get("event") == "message_file":
|
|
|
|
|
+ url = data.get("url", "")
|
|
|
|
|
+ result = {"message": url, "type": "image"}
|
|
|
else:
|
|
else:
|
|
|
continue
|
|
continue
|
|
|
await websocket.send_json(result)
|
|
await websocket.send_json(result)
|