|
@@ -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()
|