How do I use Custom Actions without an action server running

Instead of running an action service with rasa_sdk and an action_endpoint I want to use my custom FormAction directly. But I haven’t found any documentation about this approach. Where is the FormAction called and used?

1 Like

I have the same question, cant we directly mention path to action in domain file, example actions. under actions

1 Like

I think I found it. You have to change the rasa.core.actions.action.py file. In the function ‘action_from_name()’ actions will be created. Either it is an utter action or a remote action. Maybe it will work, if you change this function, so you can use your custom actions, without creating remote actions

Can you explain with example.

You need to create a custom Domain, and rewrite the ‘action_for_name’ function. In my example:

        if action_name not in self.action_names:
            self._raise_action_not_found_exception(action_name)

        return self.remoteless_action_from_name(
            action_name,
            self.user_actions_and_forms,
        )

and the remoteness_action_from_name function:

defaults = {a.name(): a for a in action.default_actions()}
        customs = {a.name(): a for a in self.custom_actions.get_custom_actions()}

        if name in defaults and name not in user_actions:
            return defaults.get(name)
        elif name.startswith(action.UTTER_PREFIX):
            return ActionUtterTemplate(name)
        else:
            return customs.get(name)
1 Like