Action class is the base class for any custom action. To
define a custom action, create a subclass of the Action class
and overwrite the two required methods, name and run. The
action server will call an action according to the return value
of its name method when it receives a request to run an action.
A skeleton custom action looks like this:
Methods
Action.name
Defines the action’s name. The name returned by this method is the one used in your bot’s domain.- Returns: Name of action
-
Return type:
str
Action.run
run method executes the side effects of the action.
Parameters
- dispatcher – the dispatcher which is used to
send messages back to the user. Use
dispatcher.utter_message()for complete responses, or the streaming methodsdispatcher.stream_start(),dispatcher.stream_chunk(), anddispatcher.stream_end()to emit responses incrementally. See the documentation for the dispatcher, including streaming responses and transport support. - tracker – the state tracker for the current
user. You can access slot values using
tracker.get_slot(slot_name), the most recent user message istracker.latest_message.textand any otherrasa_sdk.Trackerproperty. See the documentation for the tracker. - domain – the bot’s domain
Returns
A list ofrasa_sdk.events.Event instances. See the documentation for events.
Return type
List[Dict[str, Any]]
Example
In a restaurant bot, if the user says “show me a Mexican restaurant”, your bot could execute the actionActionCheckRestaurants,
which might look like this:
matches slot.