| | |
| | | async def forward_to_client(): |
| | | is_answer = False |
| | | while True: |
| | | message = await service_websocket.recv() |
| | | print(f"Received from bisheng: {message}") |
| | | data = json.loads(message) |
| | | files = data.get("files", []) |
| | | steps = data.get("intermediate_steps", "") |
| | | msg = data.get("message", "") |
| | | category = data.get("category", "") |
| | | try: |
| | | message = await service_websocket.recv() |
| | | # print(f"Received from bisheng: {message}") |
| | | data = json.loads(message) |
| | | files = data.get("files", []) |
| | | steps = data.get("intermediate_steps", "") |
| | | msg = data.get("message", "") |
| | | category = data.get("category", "") |
| | | process_files(files, agent_id) |
| | | if category == "question" and steps: |
| | | is_answer = False |
| | | if not steps: |
| | | steps = "\n" |
| | | else: |
| | | steps = steps + "\n" |
| | | result = {"message": steps, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | if category == "answer" and not is_answer: |
| | | if not steps.endswith("\n"): |
| | | steps += "\n\n" |
| | | result = {"message": steps, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | if category == "answer" and is_answer: |
| | | # process_files(files, agent_id) |
| | | result = {"message": "\n", "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | elif data["type"] == "close": |
| | | # process_files(files, agent_id) |
| | | result = {"message": "", "type": "close", "files": files} |
| | | await websocket.send_json(result) |
| | | elif category == "processing": |
| | | # process_files(files, agent_id) |
| | | is_answer = True |
| | | result = {"message": msg, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | elif files: |
| | | # process_files(files, agent_id) |
| | | result = {"message": "", "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | |
| | | if category == "question" and steps: |
| | | is_answer = False |
| | | if not steps: |
| | | steps = "\n" |
| | | elif category == "system" and steps: |
| | | result = {"message": steps, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | else: |
| | | steps =steps + "\n" |
| | | |
| | | result = {"message": steps, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | if category == "answer" and not is_answer: |
| | | process_files(files, agent_id) |
| | | if not steps.endswith("\n"): |
| | | steps+= "\n\n" |
| | | result = {"message": steps, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | if category == "answer" and is_answer: |
| | | process_files(files, agent_id) |
| | | result = {"message": "\n", "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | elif category == "processing": |
| | | process_files(files, agent_id) |
| | | is_answer = True |
| | | result = {"message": msg, "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | elif files: |
| | | process_files(files, agent_id) |
| | | result = {"message": "", "type": "stream", "files": files} |
| | | await websocket.send_json(result) |
| | | elif data["type"] == "close": |
| | | process_files(files, agent_id) |
| | | result = {"message": "", "type": "close", "files": files} |
| | | await websocket.send_json(result) |
| | | else: |
| | | logger.error("-------------------11111111111111--------------------------") |
| | | logger.error(data) |
| | | logger.error("-------------------11111111111111--------------------------") |
| | | logger.error(data) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | await websocket.send_json({"message": "连接异常!", "type": "close", "files": []}) |
| | | # if len(files) != 0 or (msg and category != "answer") or data["type"] == "close": |
| | | # if data["type"] == "close": |
| | | # t = "close" |