Stories

These docs are for version 1.x of Rasa Open Source.

User Guide

NLU

Core

Conversation Design

API Reference

Migrate from (beta)

Reference

Versions

viewing: 1.10.4

Stories

Rasa stories are a form of training data used to train Rasa’s dialogue management models.

A story is a representation of a conversation between a user and an AI assistant, converted into a specific format where user inputs are expressed as corresponding intents (and entities where necessary) while the responses of an assistant are expressed as corresponding action names.

This is a guide to the story data format.

Note: You can also spread your stories across multiple files and specify the folder containing the files for most of the scripts (e.g. training, visualization). The stories will be treated as if they would have been part of one large file.

Format

Here’s an example of a dialogue in the Rasa story format:

## greet + location/price + cuisine + num people    <!-- name of the story - just for debugging -->
* greet
   - action_ask_howcanhelp
* inform{"location": "rome", "price": "cheap"}  <!-- user utterance, in format intent{entities} -->
   - action_on_it
   - action_ask_cuisine
* inform{"cuisine": "spanish"}
   - action_ask_numpeople        <!-- action that the bot should execute -->
* inform{"people": "six"}
   - action_ack_dosearch

What makes up a story?

User Messages

While writing stories, you do not have to deal with the specific contents of the messages that the users send. Instead, you can take advantage of the output from the NLU pipeline, which lets you use just the combination of an intent and entities to refer to all the possible messages the users can send to mean the same thing.

It is important to include the entities here as well because the policies learn to predict the next action based on a combination of both the intent and entities (you can, however, change this behavior using the use_entities attribute).

Actions

While writing stories, you will encounter two types of actions: utterance actions and custom actions. Utterance actions are hardcoded messages that a bot can respond with. Custom actions, on the other hand, involve custom code being executed.

All actions (both utterance actions and custom actions) executed by the bot are shown as lines starting with - followed by the name of the action.

Events

Events such as setting a slot or activating/deactivating a form have to be explicitly written out as part of the stories. Having to include the events returned by a custom action separately, when that custom action is already part of a story might seem redundant. However, since Rasa cannot determine this fact during training, this step is necessary.

Slot Events

Slot events are written as - slot{"slot_name": "value"}. If this slot is set inside a custom action, it is written on the line immediately following the custom action event. If your custom action resets a slot value to None, the corresponding event for that would be -slot{"slot_name": null}.

Checkpoints and OR statements

Checkpoints and OR statements should both be used with caution, if at all. There is usually a better way to achieve what you want by using forms and/or retrieval actions.

End-to-End Story Evaluation Format

The end-to-end story format is a format that combines both NLU and Core training data into a single file for evaluation. Warning: This format is only used for end-to-end evaluation and cannot be used for training.

👋 I can help you get started with Rasa and answer your technical questions.