zhangqian 1 yıl önce
ebeveyn
işleme
3cee1dd576
2 değiştirilmiş dosya ile 14 ekleme ve 4 silme
  1. 6 2
      app/api/chat.py
  2. 8 2
      app/service/ragflow.py

+ 6 - 2
app/api/chat.py

@@ -58,7 +58,11 @@ async def handle_client(websocket: WebSocket,
                                 await websocket.close()
                                 return
                         else:
-                            chat_history.append(message)
+                            chat_history.append({
+                                "content": message["message"],
+                                "doc_ids": message.get("doc_ids", []),
+                                "role": "user"
+                            })
                     async for rag_response in ragflow_service.chat(token, chat_id, chat_history):
                         try:
                             print(f"Received from ragflow: {rag_response}")
@@ -87,6 +91,7 @@ async def handle_client(websocket: WebSocket,
                             result = {"message": f"内部错误: {e}", "type": "close"}
                             await websocket.send_json(result)
                             print(f"Error process message of ragflow: {e}")
+
             # 启动任务处理客户端消息
             tasks = [
                 asyncio.create_task(forward_to_ragflow())
@@ -155,4 +160,3 @@ async def handle_client(websocket: WebSocket,
     else:
         ret = {"message": "Agent not found", "type": "close"}
         await websocket.send_json(ret)
-

+ 8 - 2
app/service/ragflow.py

@@ -66,7 +66,8 @@ class RagflowService:
             "messages": chat_history
         }
 
-        print(data)
+        print(f"send to ragflow chat: {data}")
+
         target_url = f"{self.base_url}/v1/conversation/completion"
         async with httpx.AsyncClient(timeout=300.0) as client:
             headers = {
@@ -77,6 +78,7 @@ class RagflowService:
                 if response.status_code == 200:
                     try:
                         async for answer in response.aiter_text():
+                            print(f"response of ragflow chat: {answer}")
                             yield answer
                     except GeneratorExit as e:
                         print(e)
@@ -117,7 +119,11 @@ class RagflowService:
                     "content": "你好! 我是你的助理,有什么可以帮到你的吗?",
                     "role": "assistant"
                 },
-                message,
+                {
+                    "content": message["message"],
+                    "doc_ids":message.get("doc_ids", []),
+                    "role": "user"
+                }
             ] if data else []
 
     async def get_session_history(self, token: str, chat_id: str) -> list: