ソースを参照

Update agent_service: add whitelist tags for voice active greeting

StrayWarrior 2 週間 前
コミット
9b083052de
1 ファイル変更7 行追加2 行削除
  1. 7 2
      agent_service.py

+ 7 - 2
agent_service.py

@@ -233,7 +233,8 @@ class AgentService:
             agent = self._get_agent_instance(staff_id, user_id)
             should_initiate = agent.should_initiate_conversation()
             user_tags = self.user_relation_manager.get_user_tags(user_id)
-            white_list_tags = apollo_config.get_json_value('agent_initiate_whitelist_tags')
+            white_list_tags = set(apollo_config.get_json_value('agent_initiate_whitelist_tags'))
+            voice_tags = set(apollo_config.get_json_value('agent_initiate_by_voice_tags'))
             if configs.get_env() != 'dev' and not set(user_tags).intersection(white_list_tags):
                 should_initiate = False
 
@@ -250,7 +251,11 @@ class AgentService:
                     else:
                         resp = self._get_chat_response(user_id, agent, None)
                     if resp:
-                        self._send_response(staff_id, user_id, resp, MessageType.TEXT)
+                        if set(user_tags).intersection(voice_tags):
+                            message_type = MessageType.VOICE
+                        else:
+                            message_type = MessageType.TEXT
+                        self._send_response(staff_id, user_id, resp, message_type)
                         if self.limit_initiative_conversation_rate:
                             time.sleep(random.randint(10,20))
                     agent.persist_state()