The way I did it was to create a custom action action_reset_full which resets all slots, restart the conversation and turns off any form.
from rasa_sdk import Action
from rasa_sdk.events import Form, AllSlotsReset, Restarted
class ActionResetFull(Action):
def name(self):
return "action_reset_full"
def run(self, dispatcher, tracker, domain):
dispatcher.utter_template("utter_reset_full", tracker)
return [Form(None), AllSlotsReset(None), Restarted(None)]
I also have an intent reset that triggers this action so that you can just type “Reset” and the whole thing starts over. In our domain, it would look like (in the intents section of domain.yml):
- reset:
name: reset
triggers: action_reset_full
Hope that helps! Nicolas