def action_for_name( self, action_name: Text, action_endpoint: Optional[EndpointConfig]) -> Optional[Action]: """Looks up which action corresponds to this action name.""" if action_name not in self.action_names: self._raise_action_not_found_exception(action_name) return action.action_from_name(action_name, action_endpoint, self.user_actions_and_forms)
async def _ask_rephrase( self, output_channel: OutputChannel, nlg: NaturalLanguageGenerator, tracker: DialogueStateTracker, domain: Domain, ) -> List[Event]: rephrase = action.action_from_name(ACTION_DEFAULT_ASK_REPHRASE_NAME, domain, self._action_endpoint) return await rephrase.run(output_channel, nlg, tracker, domain)
async def _ask_affirm( self, output_channel: OutputChannel, nlg: NaturalLanguageGenerator, tracker: DialogueStateTracker, domain: Domain, ) -> List[Event]: affirm_action = action.action_from_name( ACTION_DEFAULT_ASK_AFFIRMATION_NAME, domain, self._action_endpoint) return await affirm_action.run(output_channel, nlg, tracker, domain)
async def _give_up( self, output_channel: OutputChannel, nlg: NaturalLanguageGenerator, tracker: DialogueStateTracker, domain: Domain, ) -> List[Event]: fallback = action.action_from_name(ACTION_DEFAULT_FALLBACK_NAME, domain, self._action_endpoint) return await fallback.run(output_channel, nlg, tracker, domain)
async def _ask_for_slot( self, domain: Domain, nlg: NaturalLanguageGenerator, output_channel: OutputChannel, slot_name: Text, tracker: DialogueStateTracker, ) -> List[Event]: logger.debug(f"Request next slot '{slot_name}'") action_to_ask_for_next_slot = action.action_from_name( self._name_of_utterance(domain, slot_name), domain, self.action_endpoint) events_to_ask_for_next_slot = await action_to_ask_for_next_slot.run( output_channel, nlg, tracker, domain) return events_to_ask_for_next_slot
def action_for_name( self, action_name: Text, action_endpoint: Optional[EndpointConfig]) -> Optional[Action]: """Look up which action corresponds to this action name.""" if action_name not in self.action_names: self._raise_action_not_found_exception(action_name) should_use_form_action = (action_name in self.form_names and self.slot_mapping_for_form(action_name)) return action.action_from_name( action_name, action_endpoint, self.user_actions_and_forms, should_use_form_action, )
async def _ask_for_slot( self, domain: Domain, nlg: NaturalLanguageGenerator, output_channel: OutputChannel, slot_name: Text, tracker: DialogueStateTracker, ) -> List[Event]: logger.debug(f"Request next slot '{slot_name}'") # TODO: Make it possible to use a custom action to ask for the next slot action_to_ask_for_next_slot = action.action_from_name( self._name_of_utterance(domain, slot_name), None, domain.user_actions) events_to_ask_for_next_slot = await action_to_ask_for_next_slot.run( output_channel, nlg, tracker, domain) return events_to_ask_for_next_slot