Преглед изворни кода

Update agent_service: do not check active conversation if time is not suitable

StrayWarrior пре 4 дана
родитељ
комит
de9428e134
2 измењених фајлова са 12 додато и 0 уклоњено
  1. 3 0
      agent_service.py
  2. 9 0
      dialogue_manager.py

+ 3 - 0
agent_service.py

@@ -226,6 +226,9 @@ class AgentService:
 
     def _check_initiative_conversations(self):
         logger.info("start to check initiative conversations")
+        if not DialogueManager.is_time_suitable_for_active_conversation():
+            logger.info("time is not suitable for active conversation")
+            return
         white_list_tags = set(apollo_config.get_json_value('agent_initiate_whitelist_tags'))
         first_initiate_tags = set(apollo_config.get_json_value('agent_first_initiate_whitelist_tags', []))
         # 合并白名单,减少配置成本

+ 9 - 0
dialogue_manager.py

@@ -436,11 +436,20 @@ class DialogueManager:
         if hours_passed < threshold:
             return False
             # 根据时间上下文决定主动交互的状态
+        if self.is_time_suitable_for_active_conversation(time_context):
+            return True
+        return False
+
+    @staticmethod
+    def is_time_suitable_for_active_conversation(time_context=None) -> bool:
+        if not time_context:
+            time_context = DialogueManager.get_time_context()
         if time_context in [TimeContext.MORNING,
                             TimeContext.NOON, TimeContext.AFTERNOON]:
             return True
         return False
 
+
     def is_in_human_intervention(self) -> bool:
         """检查是否处于人工介入状态"""
         return self.current_state == DialogueState.HUMAN_INTERVENTION