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: