From 95bfccca0260a6ff3e994ebbbbfafb61b7dab442 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期五, 22 十一月 2024 10:11:51 +0800 Subject: [PATCH] merge --- app/api/chat.py | 55 +++++++++++++++++++++---------------------------------- 1 files changed, 21 insertions(+), 34 deletions(-) diff --git a/app/api/chat.py b/app/api/chat.py index ee57744..e4a439d 100644 --- a/app/api/chat.py +++ b/app/api/chat.py @@ -247,43 +247,30 @@ await websocket.send_json(result) else: - async for result in service.excel_talk(question, chat_id): + async for data in service.excel_talk(question, chat_id): + output = data.get("output", "") + excel_name = data.get("excel_name", "") + image_name = data.get("image_name", "") + + def build_file_url(name, file_type): + if not name: + return None + return (f"/api/files/download/?agent_id={agent_id}&file_id={name}" + f"&file_type={file_type}") + excel_url = build_file_url(excel_name, 'excel') + image_url = build_file_url(image_name, 'image') try: - if result[:5] == "data:": - # 濡傛灉鏄紝鍒欐埅鍙栨帀鍓�5涓瓧绗︼紝骞跺幓闄ら灏剧┖鐧界 - text = result[5:].strip() - else: - # 鍚﹀垯锛屼繚鎸佸師鏍� - text = result - try: - data = json.loads(text) - output = data.get("output", "") - excel_name = data.get("excel_name", "") - image_name = data.get("image_name", "") - excel_url = None - image_url = None - if excel_name: - excel_url = f"/api/files/download/?agent_id=basic_excel_talk&file_id={excel_name}&file_type=excel" - if image_name: - 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(chat_id, - 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}") + SessionService(db).update_session(chat_id, message={"content": output, "role": "assistant"}) + except Exception as e: + logger.error(f"Unexpected error when update_session: {e}") + # 鍙戦�佺粨鏋滅粰瀹㈡埛绔� + data["type"] = "message" + data["message"] = output + data["excel_url"] = excel_url + data["image_url"] = image_url + await websocket.send_json(data) except Exception as e: - logger.error("----------------------------------------------fffffff") logger.error(e) - print(e) await websocket.send_json({"message": "鍑虹幇閿欒锛�", "type": "error"}) finally: await websocket.close() -- Gitblit v1.8.0