Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
File: forms.py Project: attgua/Geco
    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
Example #6
0
    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,
        )
Example #7
0
    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