A single step that a bot takes in a conversation (e.g. calling an API or sending a response back to the user).
The server that runs custom action code, separate from Rasa Open Source. Rasa maintains the Rasa SDK in Python for implementing custom actions, although it's also possible to write custom actions in other languages.
Adding labels to messages and conversations so that they can be used to train a model.
Conditions that need to be fulfilled due to business requirements. For example: requiring a first and last name, an address, and a password before an account can be created. In a Rasa assistant, business logic is implemented using rule-based actions like forms.
A conversation pattern where the user says something that isn't directly related to their goal. This can include things like greetings, asking how you are etc. Read about handling Chitchat and FAQs to learn how to implement this with Rasa Open Source.
A way to store bot responses externally instead of including them directly in the domain. Content Management Systems decouple response text from training data. For more information, see NLG Servers.
The process of using user messages and conversation data to influence the design of an assistant and train the model, combined with engineering best practices. There are 6 steps that make up CDD: Share, Review, Annotate, Fix, Track, and Test.
Modified story format that includes the full text of the user message in addition to the intent label. Test conversations are saved to a test set file (conversation_tests.md), which is used to evaluate the model’s predictions across an entire conversation.
Incoming messages are processed by a sequence of components called a pipeline. A component can perform tasks ranging from entity extraction to intent classification to pre-processing.
Response variation that can only be used when the current dialogue state satisfies some constraints as defined in the domain or responses files. If there's a match between the constraints and the dialogue state, Rasa can use this variation.
An action written by a bot developer that can run arbitrary code, mainly to interact with external systems and APIs.
A built-in action that comes with predefined functionality.
Dual Intent and Entity Transformer. The default NLU architecture used by Rasa Open Source, which performs both intent classification and entity extraction.
Defines the inputs and outputs of an assistant.
It includes a list of all the intents, entities, slots, actions, and forms that the assistant knows about.
Keywords that can be extracted from a user message. For example: a telephone number, a person's name, a location, the name of a product
Something that happens in a conversation. For instance, a
UserUttered event represents a user entering a message, and an
ActionExecuted event represents the assistant executing an action. All conversations in Rasa are represented as a sequence of events.
Frequently asked questions (FAQs) are common questions that your users ask. In the context of building an assistant, this typically means the user sends a message and the assistant send a response without needing to consider the context of the conversation. Read about handling Chitchat and FAQs to learn how to implement this with Rasa Open Source.
A type of custom action that asks the user for multiple pieces of information.
For example, if you need a city, a cuisine, and a price range to recommend a restaurant, you can create a restaurant form to collect the information. You can describe business logic inside a form, like offering the customer a different set of menu options if they mention a food allergy.
Happy / Unhappy Paths
Terms used to describe whether the user’s input is expected or unexpected. If your assistant asks a user for some information and the user provides it, we call that a happy path. Unhappy paths are all possible edge cases. For example, the user refusing to give the requested input, changing the topic of conversation, or correcting something they said earlier.
In a given user message, the thing that a user is trying to convey or accomplish (e,g., greeting, specifying a location).
In the Rasa CLI, a training mode where the developer corrects and validates the assistant’s predictions at every step of the conversation. The conversation can be saved to the story format and added to the assistant’s training data.
A queryable database that represents complex relationships and hierarchies between objects. Knowledge Base Actions allow Rasa Open Source to fetch information from a knowledge base and use it in responses.
An assistant that can handle conversations more complex than simple back-and-forth exchanges. Level 3 assistants are capable of using the context of previous conversation turns to choose the appropriate next action.
Connectors that integrate Rasa Open Source with external messaging platforms, where end-users can send and receive messages. Rasa Open Source includes built-in messaging channels like Slack, Facebook Messenger, and web chat, as well as the ability to create custom connectors.
A basic assistant that can handle the most important happy path stories.
Natural Language Generation (NLG) is the process of generating natural language messages to send to a user.
Rasa uses a simple template-based approach for NLG. Data-driven approaches (such as neural NLG) can be implemented by creating a custom NLG component.
Natural Language Understanding (NLU) deals with parsing and understanding human language into a structured format.
The list of NLU components (see NLU Component) that defines a Rasa assistant’s NLU system. A user message is processed by each component one by one, before returning the final structured output.
Rasa Open Source components that predict the dialogue system’s next actionPolicies make decisions about how the conversation flow should proceed. A typical configuration includes multiple policies, and the policy with the highest confidence decides the next action to be taken in the conversation.
(Outdated - Rasa Core and Rasa NLU were merged into one package in 1.x. The functionality of Core is now referred to as dialogue management)
The dialogue engine that decides what to do next in a conversation based on the context. Part of the Rasa Open Source library.
(Outdated - Rasa Core and Rasa NLU were merged into one package in 1.x. The functionality of Rasa NLU is now referred to as NLU)
Rasa NLU is the part of Rasa Open Source that performs Natural Language Understanding (NLU), including intent classification and entity extraction.
An element in the Rasa NLU pipeline (see Pipeline) that processes incoming messages. Components perform tasks ranging from entity extraction to intent classification to pre-processing.
A tool for conversation-driven development. Rasa Enterprise helps teams share and test an assistant built with Rasa Open Source, annotate user messages, and view conversations.
A special type of intent that can be divided into smaller sub-intents. For example, an FAQ retrieval intent has sub-intents that represent each individual question the assistant knows how to answer.
A messaging channel used to build custom connectors. Includes an input channel, where user messages can be posted to Rasa Open Source, and the ability to specify a callback URL, where the bot’s response actions will be sent.
A message that an assistant sends to a user. This can include text, buttons, images, and other content.
A key-value store that Rasa uses to track information over the course of a conversation.
Training data format for the dialogue model, consisting of a conversation between a user and a bot. The user's messages are represented as annotated intents and entities, and the bot’s responses are represented as a sequence of actions.
Transformer Embedding Dialogue Policy. TED is the default machine learning-based dialogue policy used by Rasa Open Source. TED complements rule-based policies by handling previously unseen situations, where no rule exists to determine the next action.
A message template used to respond to a user. Can include text, buttons, images, and other attachments.
Rasa Open Source component that maintains the state of the dialogue, which is represented as a JSON object listing the events from the current session.
The overall goal that a user wants to achieve, e.g. looking up the answer to a question, booking an appointment, or purchasing an insurance policy.
Some tools refer to the user goal as the “intent,” but in Rasa terminology, an intent is associated with each individual user message.
Word embedding / Word vector
A vector of floating point numbers that represent the meaning of a word. Words that have similar meanings tend to have similar vectors. Word embeddings are often used as an input to machine learning algorithms.