Version: 3.x

Events

Internally, Rasa conversations are represented as a list of events. Rasa SDK provides classes for each event, and takes care of turning instances of event classes into properly formatted event payloads.

This page is about the event classes in rasa_sdk. The side effects of events and their underlying payloads are identical regardless of whether you use rasa_sdk or another action server. For details about the side effects of an event, its underlying payload and the class in Rasa it is translated to see the documentation for events for all action servers (also linked to in each section).

Importing events

All events written in a Rasa SDK action server need to be imported from rasa_sdk.events.

Event Classes

SlotSet

rasa_sdk.events.SlotSet(
key: Text,
value: Any = None,
timestamp: Optional[float] = None
)

Underlying event: slot

Parameters:

  • key: Name of the slot to set
  • value: Value to set the slot to. The datatype must match the type of the slot
  • timestamp: Optional timestamp of the event

Example

evt = SlotSet(key = "name", value = "Mary")

AllSlotsReset

rasa_sdk.events.AllSlotsReset(timestamp: Optional[float] = None)

Underlying event: reset_slots

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = AllSlotsReset()

ReminderScheduled

rasa_sdk.events.ReminderScheduled(
intent_name: Text,
trigger_date_time: datetime.datetime,
entities: Optional[Union[List[Dict[Text, Any]], Dict[Text, Text]]] = None,
name: Optional[Text] = None,
kill_on_user_message: bool = True,
timestamp: Optional[float] = None,
)

Underlying event: reminder

Parameters:

  • intent_name: Intent which the reminder will trigger
  • trigger_date_time: Datetime at which the execution of the action should be triggered.
  • entities: Entities to send with the intent
  • name: ID of the reminder. If there are multiple reminders with the same id only the last will be run.
  • kill_on_user_message: Whether a user message before the trigger time will abort the reminder
  • timestamp: Optional timestamp of the event

Example:

from datetime import datetime
evt = ReminderScheduled(
intent_name = "EXTERNAL_dry_plant",
trigger_date_time = datetime(2020, 9, 15, 0, 36, 0, 851609),
entities = [{"name": "plant","value":"orchid"}],
name = "remind_water_plants",
)

ReminderCancelled

ReminderCancelled(
name: Optional[Text] = None,
intent_name: Optional[Text] = None,
entities: Optional[Union[List[Dict[Text, Any]], Dict[Text, Text]]] = None,
timestamp: Optional[float] = None,
)

Underlying event: cancel_reminder

Parameters:

  • name: ID of the reminder.
  • intent_name: Intent which the reminder triggers
  • entities: Entities sent with the intent
  • timestamp: Optional timestamp of the event

Example:

evt = ReminderCancelled(name = "remind_water_plants")

ConversationPaused

ConversationPaused(timestamp: Optional[float] = None)

Underlying event: pause

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = ConversationPaused()

ConversationResumed

ConversationResumed(timestamp: Optional[float] = None)

Underlying event: resume

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = ConversationResumed()

FollowupAction

FollowupAction(
name: Text,
timestamp: Optional[float] = None
)

Underlying event: followup

Parameters:

  • name: The name of the follow up action that will be executed.
  • timestamp: Optional timestamp of the event

Example:

evt = FollowupAction(name = "action_say_goodbye")

UserUtteranceReverted

UserUtteranceReverted(timestamp: Optional[float] = None)

Underlying event: rewind

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = UserUtteranceReverted()

ActionReverted

ActionReverted(timestamp: Optional[float] = None)

Underlying event: undo

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = ActionReverted()

Restarted

Restarted(timestamp: Optional[float] = None)

Underlying event: restart

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = Restarted()

SessionStarted

SessionStarted(timestamp: Optional[float] = None)

Underlying event: session_started

Parameters:

  • timestamp: Optional timestamp of the event

Example:

evt = SessionStarted()

UserUttered

UserUttered(
text: Optional[Text],
parse_data: Optional[Dict[Text, Any]] = None,
timestamp: Optional[float] = None,
input_channel: Optional[Text] = None,
)

Underlying event: user

Parameters:

  • text: Text of the user message
  • parse_data: Parsed data of user message. This is ordinarily filled by NLU.
  • input_channel: The channel on which the message was received
  • timestamp: Optional timestamp of the event

Example:

evt = UserUttered(text = "Hallo bot")

BotUttered

BotUttered(
text: Optional[Text] = None,
data: Optional[Dict[Text, Any]] = None,
metadata: Optional[Dict[Text, Any]] = None,
timestamp: Optional[float] = None,
)

Underlying event: bot

Parameters:

  • text: The text the bot sends to the user
  • data: Any non-text elements of the bot response. The structure of data matches that of responses given in the API spec.
  • metadata: Arbitrary key-value metadata
  • timestamp: Optional timestamp of the event

Example:

evt = BotUttered(text = "Hallo user")

ActionExecuted

ActionExecuted(
action_name,
policy=None,
confidence: Optional[float] = None,
timestamp: Optional[float] = None,
)

Underlying event: action

Parameters:

  • action_name: Name of the action that was called
  • policy: The policy used to predict the action
  • confidence: The confidence with which the action was predicted
  • timestamp: Optional timestamp of the event

Example:

evt = ActionExecuted("action_greet_user")