diff --git a/src/agent/agent_core.py b/src/agent/agent_core.py index f9042bc..6951032 100644 --- a/src/agent/agent_core.py +++ b/src/agent/agent_core.py @@ -36,8 +36,7 @@ class AgentCore: def __init__(self): self.state = AgentState.IDLE - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() + self.llm_client = QwenClient() self.planner = TaskPlanner() self.executor = TaskExecutor() self.tool_manager = ToolManager() @@ -252,8 +251,7 @@ class AgentCore: """检查预警""" # 这里可以调用现有的预警系统 from ..analytics.alert_system import AlertSystem - from ..core.component_singletons import component_singletons - alert_system = component_singletons.get_alert_system() + alert_system = AlertSystem() return alert_system.get_active_alerts() def _calculate_alert_priority(self, alert: Dict[str, Any]) -> float: diff --git a/src/agent/goal_manager.py b/src/agent/goal_manager.py index 45fbecb..085bf23 100644 --- a/src/agent/goal_manager.py +++ b/src/agent/goal_manager.py @@ -18,8 +18,7 @@ class GoalManager: """目标管理器""" def __init__(self): - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() + self.llm_client = QwenClient() self.active_goals = {} self.goal_history = [] self.goal_templates = { diff --git a/src/agent/planner.py b/src/agent/planner.py index fcced94..66fa553 100644 --- a/src/agent/planner.py +++ b/src/agent/planner.py @@ -18,8 +18,7 @@ class TaskPlanner: """任务规划器""" def __init__(self): - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() + self.llm_client = QwenClient() self.planning_strategies = { "sequential": self._create_sequential_plan, "parallel": self._create_parallel_plan, diff --git a/src/agent/reasoning_engine.py b/src/agent/reasoning_engine.py index f0e40b4..6512eb0 100644 --- a/src/agent/reasoning_engine.py +++ b/src/agent/reasoning_engine.py @@ -18,8 +18,7 @@ class ReasoningEngine: """推理引擎""" def __init__(self): - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() + self.llm_client = QwenClient() self.reasoning_patterns = { "causal": self._causal_reasoning, "deductive": self._deductive_reasoning, diff --git a/src/agent/tool_manager.py b/src/agent/tool_manager.py index df0c779..9da298b 100644 --- a/src/agent/tool_manager.py +++ b/src/agent/tool_manager.py @@ -235,8 +235,7 @@ class ToolManager: """生成回复工具""" try: from ..core.llm_client import QwenClient - from ..core.component_singletons import component_singletons - llm_client = component_singletons.get_llm_client() + llm_client = QwenClient() result = llm_client.generate_response(message, context) @@ -249,8 +248,7 @@ class ToolManager: """数据分析工具""" try: from ..analytics.analytics_manager import AnalyticsManager - from ..core.component_singletons import component_singletons - analytics_manager = component_singletons.get_analytics_manager() + analytics_manager = AnalyticsManager() if data_type == "daily_analytics": result = analytics_manager.generate_daily_analytics() diff --git a/src/agent_assistant.py b/src/agent_assistant.py index a0e2a53..8502fef 100644 --- a/src/agent_assistant.py +++ b/src/agent_assistant.py @@ -180,8 +180,7 @@ class TSPAgentAssistant(TSPAssistant): # 使用LLM提取关键信息 from src.core.llm_client import QwenClient - from src.core.component_singletons import component_singletons - llm_client = component_singletons.get_llm_client() + llm_client = QwenClient() prompt = f""" 请从以下用户消息中提取工单信息: diff --git a/src/analytics/monitor_service.py b/src/analytics/monitor_service.py index e4eb9bb..1c345a1 100644 --- a/src/analytics/monitor_service.py +++ b/src/analytics/monitor_service.py @@ -19,9 +19,7 @@ class MonitorService: """监控服务""" def __init__(self): - # 使用单例避免重复创建 - from ..core.component_singletons import component_singletons - self.alert_system = component_singletons.get_alert_system() + self.alert_system = AlertSystem() self.is_running = False self.monitor_thread = None self.check_interval = 60 # 检查间隔(秒) diff --git a/src/core/component_singletons.py b/src/core/component_singletons.py deleted file mode 100644 index 37046ae..0000000 --- a/src/core/component_singletons.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- coding: utf-8 -*- -""" -组件单例管理器 -避免重复初始化各种组件 -""" - -import threading -from typing import Optional - -class ComponentSingletons: - """组件单例管理器""" - - _instance = None - _lock = threading.Lock() - - def __new__(cls): - if cls._instance is None: - with cls._lock: - if cls._instance is None: - cls._instance = super().__new__(cls) - cls._instance._initialized = False - return cls._instance - - def __init__(self): - if self._initialized: - return - - self._llm_client = None - self._analytics_manager = None - self._alert_system = None - self._vehicle_manager = None - self._chat_manager = None - self._initialized = True - - def get_llm_client(self): - """获取LLM客户端(懒加载)""" - if self._llm_client is None: - with self._lock: - if self._llm_client is None: - from ..core.llm_client import QwenClient - self._llm_client = QwenClient() - return self._llm_client - - def get_analytics_manager(self): - """获取分析管理器(懒加载)""" - if self._analytics_manager is None: - with self._lock: - if self._analytics_manager is None: - from ..analytics.analytics_manager import AnalyticsManager - self._analytics_manager = AnalyticsManager() - return self._analytics_manager - - def get_alert_system(self): - """获取预警系统(懒加载)""" - if self._alert_system is None: - with self._lock: - if self._alert_system is None: - from ..analytics.alert_system import AlertSystem - self._alert_system = AlertSystem() - return self._alert_system - - def get_vehicle_manager(self): - """获取车辆数据管理器(懒加载)""" - if self._vehicle_manager is None: - with self._lock: - if self._vehicle_manager is None: - from ..vehicle.vehicle_data_manager import VehicleDataManager - self._vehicle_manager = VehicleDataManager() - return self._vehicle_manager - - def get_chat_manager(self): - """获取聊天管理器(懒加载)""" - if self._chat_manager is None: - with self._lock: - if self._chat_manager is None: - from ..dialogue.realtime_chat import RealtimeChatManager - self._chat_manager = RealtimeChatManager() - return self._chat_manager - -# 全局单例实例 -component_singletons = ComponentSingletons() diff --git a/src/dialogue/dialogue_manager.py b/src/dialogue/dialogue_manager.py index b5fc8f3..53c2076 100644 --- a/src/dialogue/dialogue_manager.py +++ b/src/dialogue/dialogue_manager.py @@ -19,10 +19,7 @@ class DialogueManager: """对话管理器""" def __init__(self): - # 使用单例避免重复创建 - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() - + self.llm_client = QwenClient() # 延迟初始化管理器,避免重复创建 self._knowledge_manager = None self._vehicle_manager = None @@ -44,8 +41,8 @@ class DialogueManager: def vehicle_manager(self): """获取车辆数据管理器(懒加载)""" if self._vehicle_manager is None: - from ..core.component_singletons import component_singletons - self._vehicle_manager = component_singletons.get_vehicle_manager() + from ..vehicle.vehicle_data_manager import VehicleDataManager + self._vehicle_manager = VehicleDataManager() return self._vehicle_manager @property diff --git a/src/dialogue/realtime_chat.py b/src/dialogue/realtime_chat.py index 3f79de8..5db1f80 100644 --- a/src/dialogue/realtime_chat.py +++ b/src/dialogue/realtime_chat.py @@ -35,13 +35,9 @@ class RealtimeChatManager: """实时对话管理器""" def __init__(self): - # 使用单例避免重复创建 - from ..core.component_singletons import component_singletons - from ..knowledge_base.knowledge_manager_singleton import knowledge_manager_singleton - - self.llm_client = component_singletons.get_llm_client() - self.knowledge_manager = knowledge_manager_singleton.get_knowledge_manager() - self.vehicle_manager = component_singletons.get_vehicle_manager() + self.llm_client = QwenClient() + self.knowledge_manager = KnowledgeManager() + self.vehicle_manager = VehicleDataManager() self.active_sessions = {} # 存储活跃的对话会话 self.message_history = {} # 存储消息历史 diff --git a/src/knowledge_base/knowledge_manager.py b/src/knowledge_base/knowledge_manager.py index ec27897..66e5a59 100644 --- a/src/knowledge_base/knowledge_manager.py +++ b/src/knowledge_base/knowledge_manager.py @@ -17,10 +17,7 @@ class KnowledgeManager: """知识库管理器""" def __init__(self): - # 使用单例避免重复创建 - from ..core.component_singletons import component_singletons - self.llm_client = component_singletons.get_llm_client() - + self.llm_client = QwenClient() self.vectorizer = TfidfVectorizer( max_features=1000, stop_words=None, # 不使用英文停用词,因为数据是中文 diff --git a/src/main.py b/src/main.py index 0a12fe7..ec66164 100644 --- a/src/main.py +++ b/src/main.py @@ -29,15 +29,14 @@ class TSPAssistant: setup_logging(Config.LOG_LEVEL, Config.LOG_FILE) self.logger = logging.getLogger(__name__) + # 初始化各个管理器 + self.llm_client = QwenClient() # 使用单例避免重复初始化 - from src.core.component_singletons import component_singletons from src.knowledge_base.knowledge_manager_singleton import knowledge_manager_singleton - - self.llm_client = component_singletons.get_llm_client() self.knowledge_manager = knowledge_manager_singleton.get_knowledge_manager() self.dialogue_manager = DialogueManager() - self.analytics_manager = component_singletons.get_analytics_manager() - self.alert_system = component_singletons.get_alert_system() + self.analytics_manager = AnalyticsManager() + self.alert_system = AlertSystem() self.monitor_service = MonitorService() self.token_monitor = TokenMonitor() self.ai_success_monitor = AISuccessMonitor() diff --git a/src/web/app.py b/src/web/app.py index 32eac68..1ad7539 100644 --- a/src/web/app.py +++ b/src/web/app.py @@ -84,16 +84,16 @@ def get_chat_manager(): """获取聊天管理器实例(懒加载)""" global chat_manager if chat_manager is None: - from src.core.component_singletons import component_singletons - chat_manager = component_singletons.get_chat_manager() + from src.dialogue.realtime_chat import RealtimeChatManager + chat_manager = RealtimeChatManager() return chat_manager def get_vehicle_manager(): """获取车辆数据管理器实例(懒加载)""" global vehicle_manager if vehicle_manager is None: - from src.core.component_singletons import component_singletons - vehicle_manager = component_singletons.get_vehicle_manager() + from src.vehicle.vehicle_data_manager import VehicleDataManager + vehicle_manager = VehicleDataManager() return vehicle_manager # 注册蓝图 diff --git a/src/web/blueprints/workorders.py b/src/web/blueprints/workorders.py index 6625aa7..0435687 100644 --- a/src/web/blueprints/workorders.py +++ b/src/web/blueprints/workorders.py @@ -208,8 +208,7 @@ def generate_workorder_ai_suggestion(workorder_id): # 组装提示词 context = "\n".join([f"Q: {k.get('question','')}\nA: {k.get('answer','')}" for k in kb_list]) from src.core.llm_client import QwenClient - from ...core.component_singletons import component_singletons - llm = component_singletons.get_llm_client() + llm = QwenClient() prompt = f"请基于以下工单描述与知识库片段,给出简洁、可执行的处理建议。\n工单描述:\n{w.description}\n\n知识库片段:\n{context}\n\n请直接输出建议文本:" llm_resp = llm.chat_completion(messages=[{"role":"user","content":prompt}], temperature=0.3, max_tokens=800) suggestion = "" diff --git a/src/web/websocket_server.py b/src/web/websocket_server.py index 5b93956..92a7a6a 100644 --- a/src/web/websocket_server.py +++ b/src/web/websocket_server.py @@ -23,9 +23,7 @@ class WebSocketServer: def __init__(self, host: str = "localhost", port: int = 8765): self.host = host self.port = port - # 使用单例避免重复创建 - from ..core.component_singletons import component_singletons - self.chat_manager = component_singletons.get_chat_manager() + self.chat_manager = RealtimeChatManager() self.connected_clients: Set[WebSocketServerProtocol] = set() async def register_client(self, websocket: WebSocketServerProtocol):