Browse Source

Update some API

StrayWarrior 4 weeks ago
parent
commit
a4b40b79ab
2 changed files with 9 additions and 7 deletions
  1. 7 5
      agent_service.py
  2. 2 2
      dialogue_manager.py

+ 7 - 5
agent_service.py

@@ -4,7 +4,7 @@
 
 import sys
 import time
-from typing import Dict, List, Tuple, Any
+from typing import Dict, List, Tuple, Any, Optional
 import logging
 from datetime import datetime, timedelta
 
@@ -57,12 +57,13 @@ class AgentService:
         # 定时任务调度器
         self.scheduler = BackgroundScheduler()
         self.scheduler.start()
-        self._setup_initiative_conversations()
 
-    def _setup_initiative_conversations(self):
+    def setup_initiative_conversations(self, schedule_params: Optional[Dict] = None):
+        if not schedule_params:
+            schedule_params = {'hour': '8,16,20'}
         self.scheduler.add_job(
             self._check_initiative_conversations,
-            apscheduler.triggers.cron.CronTrigger(second='5,35')
+            apscheduler.triggers.cron.CronTrigger(**schedule_params)
         )
 
     def _get_agent_instance(self, user_id: str) -> DialogueManager:
@@ -204,7 +205,7 @@ if __name__ == "__main__":
     # 初始化用户管理服务
     user_manager = LocalUserManager()
 
-    global_flags.DISABLE_LLM_API_CALL = False
+    global_flags.DISABLE_LLM_API_CALL = True
 
     # 创建Agent服务
     service = AgentService(
@@ -214,6 +215,7 @@ if __name__ == "__main__":
         user_manager=user_manager,
         chat_service_type=ChatServiceType.COZE_CHAT
     )
+    service.setup_initiative_conversations({'second': '5,35'})
 
     process_thread = threading.Thread(target=service.process_messages)
     process_thread.start()

+ 2 - 2
dialogue_manager.py

@@ -84,7 +84,7 @@ class DialogueManager:
         else:
             return TimeContext.NIGHT
 
-    def update_state(self, message: Message) -> Tuple[DialogueState, str]:
+    def update_state(self, message: Message) -> Tuple[DialogueState, Optional[str]]:
         """根据用户消息更新对话状态,并返回下一条需处理的用户消息"""
         message_text = message.content
         message_ts = message.timestamp
@@ -170,7 +170,7 @@ class DialogueManager:
 
         return self.current_state, message_text
 
-    def _determine_state_from_message(self, message_text: str) -> DialogueState:
+    def _determine_state_from_message(self, message_text: Optional[str]) -> DialogueState:
         """根据消息内容确定对话状态"""
         if not message_text:
             return self.current_state