| | |
| | | if not question: |
| | | await websocket.send_json({"message": "Invalid request", "type": "error"}) |
| | | continue |
| | | if agent.agent_type == "questionTalk": |
| | | async for result in service.questions_talk(question, chat_id): |
| | | try: |
| | | if result[:5] == "data:": |
| | | # 如果是,则截取掉前5个字符,并去除首尾空白符 |
| | | text = result[5:].strip() |
| | | else: |
| | | # 否则,保持原样 |
| | | text = result |
| | | try: |
| | | data = json.loads(text) |
| | | output = data.get("output", "") |
| | | file_name = data.get("filename", "") |
| | | logger.error(agent.type) |
| | | if agent.type == "questionTalk": |
| | | |
| | | excel_url = None |
| | | if file_name: |
| | | excel_url = f"/api/files/download/?agent_id=basic_question_talk&file_id={file_name}&file_type=word" |
| | | result = {"message": output, "type": "message", "file_url": excel_url} |
| | | try: |
| | | SessionService(db).update_session(session_id=chat_id, is_incr=1, |
| | | message={"role": "assistant", "content": result}) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | await websocket.send_json(result | data) |
| | | except json.JSONDecodeError as e: |
| | | print(f"Error decoding JSON: {e}") |
| | | # print(f"Response text: {text}") |
| | | except Exception as e2: |
| | | result = {"message": f"内部错误: {e2}", "type": "close"} |
| | | await websocket.send_json(result) |
| | | print(f"Error process message of basic agent: {e2}") |
| | | try: |
| | | data = await service.questions_talk(question, chat_id) |
| | | output = data.get("output", "") |
| | | file_name = data.get("filename", "") |
| | | |
| | | excel_url = None |
| | | if file_name: |
| | | excel_url = f"/api/files/download/?agent_id=basic_question_talk&file_id={file_name}&file_type=word" |
| | | result = {"message": output, "type": "message", "file_url": excel_url} |
| | | try: |
| | | SessionService(db).update_session(chat_id, |
| | | message={"role": "assistant", "content": result}) |
| | | except Exception as e: |
| | | logger.error(e) |
| | | logger.error("-----------------11111111--------------------") |
| | | await websocket.send_json(result | data) |
| | | except Exception as e2: |
| | | |
| | | result = {"message": f"内部错误: {e2}", "type": "close"} |
| | | logger.error(str(e2)) |
| | | logger.error(f"Error process message of basic chuti agent: {e2}") |
| | | await websocket.send_json(result) |
| | | |
| | | else: |
| | | async for result in service.excel_talk(question, chat_id): |
| | | try: |
| | |
| | | image_url = f"/api/files/download/?agent_id=basic_excel_talk&file_id={image_name}&file_type=image" |
| | | result = {"message": output, "type": "message", "excel_url": excel_url, "image_url": image_url} |
| | | try: |
| | | SessionService(db).update_session(session_id=chat_id, is_incr=1, |
| | | SessionService(db).update_session(chat_id, |
| | | message={"role": "assistant", "content": result}) |
| | | except Exception as e: |
| | | logger.error(e) |
| | |
| | | await websocket.send_json(result) |
| | | print(f"Error process message of basic agent: {e2}") |
| | | except Exception as e: |
| | | await websocket.send_json({"message": str(e), "type": "error"}) |
| | | logger.error("----------------------------------------------fffffff") |
| | | logger.error(e) |
| | | print(e) |
| | | await websocket.send_json({"message": "出现错误!", "type": "error"}) |
| | | finally: |
| | | await websocket.close() |
| | | print(f"Client {agent_id} disconnected") |