fix
zhangqian
2024-10-18 3cee1dd5768ae10d3834afd3294850af7d626633
fix
2个文件已修改
18 ■■■■ 已修改文件
app/api/chat.py 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/ragflow.py 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/chat.py
@@ -58,7 +58,11 @@
                                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 @@
                            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 @@
    else:
        ret = {"message": "Agent not found", "type": "close"}
        await websocket.send_json(ret)
app/service/ragflow.py
@@ -66,7 +66,8 @@
            "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 @@
                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 @@
                    "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: