| | |
| | | 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}") |
| | |
| | | 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()) |
| | |
| | | else: |
| | | ret = {"message": "Agent not found", "type": "close"} |
| | | await websocket.send_json(ret) |
| | | |
| | |
| | | "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 = { |
| | |
| | | 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) |
| | |
| | | "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: |