These docs are for version 1.x of Rasa Open Source. 
Docs for the new version 2.0 can be found here.

# User Guide

- [Installation](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/installation/)
- [Tutorial: Rasa Basics](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/rasa-tutorial/)
- [Tutorial: Building Assistants](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/building-assistants/)
- [Command Line Interface](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/command-line-interface/)
- [Architecture](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/architecture/)
- [Messaging and Voice Channels](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/messaging-and-voice-channels/)
- [Testing Your Assistant](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/testing-your-assistant/)
- [Setting up CI/CD](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/setting-up-ci-cd/)
- [Validate Data](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/validate-files/)
- [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/configuring-http-api/)
- [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/how-to-deploy/)
- [Cloud Storage](https://legacy-docs-v1.rasa.com/1.10.11/user-guide/cloud-storage/)

# NLU

- [About](https://legacy-docs-v1.rasa.com/1.10.11/nlu/about/)
- [Using NLU Only](https://legacy-docs-v1.rasa.com/1.10.11/nlu/using-nlu-only/)
- [Training Data Format](https://legacy-docs-v1.rasa.com/1.10.11/nlu/training-data-format/)
- [Language Support](https://legacy-docs-v1.rasa.com/1.10.11/nlu/language-support/)
- [Choosing a Pipeline](https://legacy-docs-v1.rasa.com/1.10.11/nlu/choosing-a-pipeline/)
- [Components](https://legacy-docs-v1.rasa.com/1.10.11/nlu/components/)
- [Entity Extraction](https://legacy-docs-v1.rasa.com/1.10.11/nlu/entity-extraction/)

# Core

- [About](https://legacy-docs-v1.rasa.com/1.10.11/core/about/)
- [Stories](https://legacy-docs-v1.rasa.com/1.10.11/core/stories/)
- [Domains](https://legacy-docs-v1.rasa.com/1.10.11/core/domains/)
- [Responses](https://legacy-docs-v1.rasa.com/1.10.11/core/responses/)
- [Actions](https://legacy-docs-v1.rasa.com/1.10.11/core/actions/)
- [Reminders and External Events](https://legacy-docs-v1.rasa.com/1.10.11/core/reminders-and-external-events/)
- [Policies](https://legacy-docs-v1.rasa.com/1.10.11/core/policies/)
- [Slots](https://legacy-docs-v1.rasa.com/1.10.11/core/slots/)
- [Forms](https://legacy-docs-v1.rasa.com/1.10.11/core/forms/)
- [Retrieval Actions](https://legacy-docs-v1.rasa.com/1.10.11/core/retrieval-actions/)
- [Interactive Learning](https://legacy-docs-v1.rasa.com/1.10.11/core/interactive-learning/)
- [Fallback Actions](https://legacy-docs-v1.rasa.com/1.10.11/core/fallback-actions/)
- [Knowledge Base Actions](https://legacy-docs-v1.rasa.com/1.10.11/core/knowledge-bases/)

# Conversation Design

- [Dialogue Elements](https://legacy-docs-v1.rasa.com/1.10.11/dialogue-elements/dialogue-elements/)
- [Small Talk](https://legacy-docs-v1.rasa.com/1.10.11/dialogue-elements/small-talk/#)
- [Completing Tasks](https://legacy-docs-v1.rasa.com/1.10.11/dialogue-elements/completing-tasks/)
- [Guiding Users](https://legacy-docs-v1.rasa.com/1.10.11/dialogue-elements/guiding-users/)

# API Reference

- [Action Server](https://legacy-docs-v1.rasa.com/1.10.11/api/action-server/)
- [HTTP API](https://legacy-docs-v1.rasa.com/1.10.11/api/http-api/)
- [Jupyter Notebooks](https://legacy-docs-v1.rasa.com/1.10.11/api/jupyter-notebooks/)
- [Agent](https://legacy-docs-v1.rasa.com/1.10.11/api/agent/)
- [Custom NLU Components](https://legacy-docs-v1.rasa.com/1.10.11/api/custom-nlu-components/)
- [Rasa SDK](https://legacy-docs-v1.rasa.com/1.10.11/api/rasa-sdk/)
- [Events](https://legacy-docs-v1.rasa.com/1.10.11/api/events/)
- [Tracker](https://legacy-docs-v1.rasa.com/1.10.11/api/tracker/)
- [Tracker Stores](https://legacy-docs-v1.rasa.com/1.10.11/api/tracker-stores/)
- [Event Brokers](https://legacy-docs-v1.rasa.com/1.10.11/api/event-brokers/)
- [Lock Stores](https://legacy-docs-v1.rasa.com/1.10.11/api/lock-stores/)
- [Training Data Importers](https://legacy-docs-v1.rasa.com/1.10.11/api/training-data-importers/)
- [Featurization of Conversations](https://legacy-docs-v1.rasa.com/1.10.11/api/core-featurization/)
- [TensorFlow Configuration](https://legacy-docs-v1.rasa.com/1.10.11/api/tensorflow_usage/)
- [Migration Guide](https://legacy-docs-v1.rasa.com/1.10.11/migration-guide/)
- [Rasa Open Source Change Log](https://legacy-docs-v1.rasa.com/1.10.11/changelog/)

# Migrate from (beta)

- [Dialogflow](https://legacy-docs-v1.rasa.com/1.10.11/migrate-from/google-dialogflow-to-rasa/)
- [Wit.ai](https://legacy-docs-v1.rasa.com/1.10.11/migrate-from/facebook-wit-ai-to-rasa/)
- [LUIS](https://legacy-docs-v1.rasa.com/1.10.11/migrate-from/microsoft-luis-to-rasa/)
- [IBM Watson](https://legacy-docs-v1.rasa.com/1.10.11/migrate-from/ibm-watson-to-rasa/)

# Reference

- [Glossary](https://legacy-docs-v1.rasa.com/1.10.11/glossary/)

# Versions  
viewing: 1.10.11

# Small Talk

Small talk includes the back-and-forth that makes conversations natural, but doesn’t directly relate to the user’s goal. This includes greetings, acknowledgements, reactions, and off-topic chitchat.

## Greetings

Greetings and goodbyes are some of the simplest interactions. Just about every system needs them.

- hello
- hi, how are you?
- how are you?
- I am well, and you?
- goodbye
- bye bye!

To respond correctly to greetings and goodbyes, you need to define responses for each of these. If you always want the same responses, you can use the `MappingPolicy` to trigger these responses when the corresponding intent is predicted.

In your domain file, add the `triggers` metadata to the relevant intents:

```yaml
intents:
  - greet: {triggers: utter_greet}
  - goodbye: {triggers: utter_goodbye}
```

And make sure the mapping policy is present in your `config.yml`:

```yaml
policies:
  - name: "MappingPolicy"
  ...
```

If you want to implement less rigid behavior, use regular stories instead of the mapping policy. For example, if you want to send a special response if the user says goodbye immediately after saying hello, remove the `triggers` metadata from the domain file, and include relevant stories in your training data:

```yaml
* greet
  - utter_greet
* goodbye
  - utter_ask_why_leaving
```

## Acknowledgements

Your users will often react to the things your assistant says, and will expect an acknowledgement. Acknowledgements can be as simple as a thumbs up. They reassure the user that their message has been received. For the most common reactions, it is worth implementing specific responses.

- woah that's expensive!
- we offer good value.
- would you like to continue getting a quote?
- that's awesome!
- glad you think so :)

First, you need NLU data for reactions and acknowledgements:

```yaml
## intent:acknowledge
- ok
- got it
- understood
- k

## intent:opinion+positive
- nice!
- excellent
- that's awesome

## intent:opinion+negative
- ugh
- that sucks
- woah! that's [expensive](price)
```

And then you need training stories to teach Rasa how to respond:

```yaml
## price reaction
* opinion+negative{"price": "expensive"}
  - utter_good_value
  - utter_ask_continue

## simple acknowledgement
* opinion+positive
  - utter_positive_feedback_reaction
```

## Chitchat

Your assistant will often receive unexpected or unprompted input. We call this chitchat. While it’s not possible to coherently respond to everything a user might say, you can at least acknowledge that the message was received. One strategy is to collect training data from your users and define intents and responses for some of the more common topics.

- will you marry me?
- no
- I can juggle 7 oranges
- wow!
- aahhh
- I feel you

## Insults

Unfortunately users will often abuse your assistant. You should acknowledge the nature of their comment and respond in a way that reflects your assistant’s persona. Responding with a joke can encourage users to continue sending abuse, so consider your responses carefully. You can read more about this topic in [this paper](https://www.aclweb.org/anthology/W18-0802).

- stupid bot
- that's not very nice

The simplest approach is to create a single `insult` intent and use the mapping policy to respond to it:

In your domain file:

```yaml
intents:
  - insult: {triggers: utter_respond_insult}
```

And in your configuration file:

```yaml
policies:
  - name: "MappingPolicy"
  ...
```
