Actions Flashcards
what are actions?
Actions are the things your bot runs in response to user input.
What are the kinds of actions in rasa?
There are four kinds of actions in Rasa:
- Utterance actions: start with utter_ and send a specific message to the user
- Retrieval actions: start with respond_and send a message selected by the retrieval model
- Custom actions: run arbitrary code and send any number of messages (or none).
- Default actions: e.g.g action_listen, action_restart, action_default_fallback
How do you define an utterance action?
To define an utterance action (ActionUtterTemplate), add an utterance template to the domain file that starts with utter_:
”””
templates:
utter_my_message:
- “this is what I want my action to say!”
“””
Notes:
It is conventional to start the name of an utterance action with utter_. If this prefix is missing, you can still use the template in your custom actions, but the template can not be directly predicted as its own action. See Responses for more details.
If you use an external NLG service, you don’t need to specify the templates in the domain, but you still need to add the utterance names to the actions list of the domain.
what is the benefits of retrieval actions?
Retrieval Actions
Retrieval actions make it easier to work with a large number of similar intents like chitchat and FAQs. See Retrieval Actions to learn moree.
How to setup custom actions?
Custom Actions
An action can run any code you want. Custom actions can turn on the lights, add an event to a calendar, check a user’s bank balance, or anything else you can imagine.
Rasa will call an endpoint you can specify, when a custom action is predicted. This endpoint should be a webserver that reacts to this call, runs the code and optionally returns information to modify the dialogue state.
To specify, your action server use the endpoints.yml:
action_endpoint:
url: “http://localhost:5055/webhook”
And pass it to the scripts using –endpoints endpoints.yml.
How can we write custom actions in python?
The only thing your action server needs to install is rasa-sdk:
pip install rasa-sdk
Note
You do not need to install rasa for your action server. E.g. it is recommended to run Rasa in a docker container and create a separate container for your action server. In this separate container, you only need to install rasa-sdk.
The file that contains your custom actions should be called actions.py. Alternatively, you can use a package directory called actions or else manually specify an actions module or package with the –actions flag.
If you have rasa installed, run this command to start your action server:
rasa run actions
Otherwise, if you do not have rasa installed, run this command:
python -m rasa_sdk --actions actions
How to overwrite default actions?
All the default actions can be overwritten. To do so, add the action name to the list of actions in your domain:
actions:
- action_default_ask_affirmation
Rasa will then call your action endpoint and treat it as every other custom action.
What are the default actions?
There are eight default actions:
action_listen
:
Stop predicting more actions and wait for user input.
action_restart
:
Reset the whole conversation. Can be triggered during a conversation by entering /restart if the Mapping Policy is included in the policy configuration.
action_default_fallback
:
Undo the last user message (as if the user did not send it and the bot did not react) and utter a message that the bot did not understand. See Fallback Actions.
action_deactivate_form
:
Deactivate the active form and reset the requested slot. See also Handling unhappy paths.
action_revert_fallback_events
:
Revert events that occurred during the TwoStageFallbackPolicy. See Fallback Actions.
action_default_ask_affirmation: Ask the user to affirm their intent. It is suggested to overwrite this default action with a custom action to have more meaningful prompts.
action_default_ask_rephrase
:
Ask the user to rephrase their intent.
action_back
:
Undo the last user message (as if the user did not send it and the bot did not react). Can be triggered during a conversation by entering /back if the MappingPolicy is included in the policy configuration.
How to preventing an action from changing the conversation history:
Running an action in a conversation changes the conversation history and affects the assistant’s next predictions.
If you don’t want this to happen, make sure that your action reverts itself by appending a ActionReverted event to the end of the conversation tracker.