From dd5f7ed3ceb1618c7bf0005f42adfe13d7b04758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E6=9D=B0=20Jie=20Zhao=20=EF=BC=88=E9=9B=84?= =?UTF-8?q?=E7=8B=AE=E6=B1=BD=E8=BD=A6=E7=A7=91=E6=8A=80=EF=BC=89?= <00061074@chery.local> Date: Fri, 19 Sep 2025 20:09:33 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=87=AA=E5=8A=A8=E6=8F=90=E4=BA=A4=20?= =?UTF-8?q?-=20=E5=91=A8=E4=BA=94=202025/09/19=2020:09:33.44?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/web/app.py | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/web/app.py b/src/web/app.py index 3040855..912ad57 100644 --- a/src/web/app.py +++ b/src/web/app.py @@ -373,12 +373,15 @@ def end_chat_session(session_id): def get_active_sessions(): """获取活跃会话列表""" try: - sessions = chat_manager.get_active_sessions() + # 确保chat_manager已初始化 + manager = get_chat_manager() + sessions = manager.get_active_sessions() return jsonify({ "success": True, "sessions": sessions }) except Exception as e: + logger.error(f"获取活跃会话失败: {e}") return jsonify({"error": str(e)}), 500 # Agent相关API @@ -592,9 +595,29 @@ def get_analytics(): # 支持多种参数 time_range = request.args.get('timeRange', request.args.get('days', '30')) dimension = request.args.get('dimension', 'workorders') - analytics = generate_db_analytics(int(time_range), dimension) + + # 参数验证 + try: + days = int(time_range) + if days <= 0 or days > 365: + days = 30 + except (ValueError, TypeError): + days = 30 + + analytics = generate_db_analytics(days, dimension) + + # 确保返回的数据结构完整 + if not analytics: + analytics = { + "workorders": {"total": 0, "open": 0, "resolved": 0, "trend": []}, + "alerts": {"total": 0, "critical": 0, "warning": 0, "trend": []}, + "conversations": {"total": 0, "avg_confidence": 0, "trend": []}, + "performance": {"avg_response_time": 0, "success_rate": 0} + } + return jsonify(analytics) except Exception as e: + logger.error(f"获取分析数据失败: {e}") return jsonify({"error": str(e)}), 500 def generate_db_analytics(days: int, dimension: str) -> dict: