Events¶
List of all the events the dialogue system is able to handle and supports.
Most of the time, you will set or receive events in their json representation. E.g. if you are modifying a conversation over the HTTP API, or if you are implementing your own action server.
General purpose events¶
Event Base Class¶
Short: | Base class for all of Rasa Core’s events. Can not directly be used! |
---|---|
Description: | Contains common functionality for all events. E.g. it ensures, that
every event has a timestamp and a |
Class: |
|
Set a Slot¶
Short: | Event to set a slot on a tracker |
---|---|
JSON: | {
'event': 'slot',
'name': 'departure_airport',
'value': 'BER',
}
|
Class: |
|
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker):
tracker._set_slot(self.key, self.value)
|
Restart a conversation¶
Short: | Resets anything logged on the tracker. |
---|---|
JSON: | {
'event': 'restart'
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker):
from rasa_core.actions.action import ACTION_LISTEN_NAME
tracker._reset()
tracker.trigger_followup_action(ACTION_LISTEN_NAME)
|
Reset all Slots¶
Short: | Resets all the slots of a conversation. |
---|---|
JSON: | {
'event': 'reset_slots'
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker):
tracker._reset_slots()
|
Schedule a reminder¶
Short: | Schedule an action to be executed in the future. |
---|---|
JSON: | {
'event': 'reminder',
'action': 'my_action',
'date_time': '2018-09-03T11:41:10.128172',
'name': 'my_reminder',
'kill_on_user_msg': True
}
|
Class: | |
Effect: | When added to a tracker, core will schedule the action to be run in the future. |
Pause a conversation¶
Short: | Stops the bot from responding to messages. Action prediction will be halted until resumed. |
---|---|
JSON: | {
'event': 'pause',
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker):
tracker._paused = True
|
Resume a conversation¶
Short: | Resumes a previously paused conversation. The bot will start predicting actions again. |
---|---|
JSON: | {
'event': 'resume',
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker):
tracker._paused = False
|
Force a followup action¶
Short: | Instead of predicting the next action, force the next action to be a fixed one. |
---|---|
JSON: | {
'event': 'followup',
'name': 'my_action'
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker.trigger_followup_action(self.action_name)
|
Automatically tracked events¶
User sent message¶
Short: | Message a user sent to the bot. |
---|---|
JSON: | {
'event': 'user',
'text': 'Hey',
'parse_data': {
'intent': {'name': 'greet', 'confidence': 0.9},
'entities': []
}
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker.latest_message = self
tracker.clear_followup_action()
|
Bot responded message¶
Short: | Message a bot sent to the user. |
---|---|
JSON: | {
'event': 'bot',
'text': 'Hey there!',
'data': {}
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker.latest_bot_utterance = self
|
Undo a user message¶
Short: | Undoes all side effects that happened after the last user message
(including the |
---|---|
JSON: | {
'event': 'rewind'
}
|
Class: |
|
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker._reset()
tracker.replay_events()
|
Undo an action¶
Short: | Undoes all side effects that happened after the last action
(including the |
---|---|
JSON: | {
'event': 'undo',
}
|
Class: |
|
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker._reset()
tracker.replay_events()
|
Log an executed action¶
Short: | Logs an action the bot executed to the conversation. Events that action created are logged separately. |
---|---|
JSON: | {
'event': 'action',
'name': 'my_action'
}
|
Class: | |
Effect: | When added to a tracker, this is the code used to update the tracker: def apply_to(self, tracker: 'DialogueStateTracker') -> None:
tracker.set_latest_action_name(self.action_name)
tracker.clear_followup_action()
|
Have questions or feedback?¶
We have a very active support community on Rasa Community Forum that is happy to help you with your questions. If you have any feedback for us or a specific suggestion for improving the docs, feel free to share it by creating an issue on Rasa Core GitHub repository.