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

- [Rasa logo](/content/docs/index.html)

## User Guide

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

## NLU

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

## Core

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

## Conversation Design

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

## API Reference

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

## Migrate from (beta)

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

## Reference

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

---

# Rasa as open source alternative to Google Dialogflow - Migration Guide

This guide shows you how to migrate your application built with Google Dialogflow to Rasa. Here are a few reasons why we see developers switching:

- **Faster**: Runs locally - no http requests and server round trips required
- **Customizable**: Tune models and get higher accuracy with your data set
- **Open source**: No risk of vendor lock-in - Rasa is under the Apache 2.0 licence and you can use it in commercial projects

In addition, our open source tools allow developers to build contextual AI assistants and manage dialogues with machine learning instead of rules - learn more in [this blog post](http://blog.rasa.com/a-new-approach-to-conversational-software/).

Let's get started with migrating your application from Dialogflow to Rasa (you can find a more detailed tutorial [here](http://blog.rasa.com/how-to-migrate-your-existing-google-dialogflow-assistant-to-rasa/)):

## Step 1: Export your data from Dialogflow

Navigate to your agent’s settings by clicking the gear icon.

Click on the ‘Export and Import’ tab and click on the ‘Export as ZIP’ button.

This will download a file with a `.zip` extension. Unzip this file to create a folder.

## Step 2: Create a Rasa Project

To create a Rasa project, run:

```bash
rasa init
```

This will create a directory called `data`.
Remove the files in this directory, and
move your unzipped folder into this directory.

```bash
rm -r data/*
mv testagent data/
```

## Step 3: Train your NLU model

To train a model using your dialogflow data, run:

```bash
rasa train nlu
```

## Step 4: Test your NLU model

Let’s see how your NLU model will interpret some test messages.
To start a testing session, run:

```bash
rasa shell nlu
```

This will prompt your for input.
Type a test message and press ‘Enter’.
The output of your NLU model will be printed to the screen.
You can keep entering messages and test as many as you like.
Press ‘control + C’ to quit.

## Step 5: Start a Server with your NLU Model

To start a server with your NLU model, run:

```bash
rasa run nlu
```

This will start a server listening on port 5005.

To send a request to the server, run:

```bash
curl 'localhost:5005/model/parse?emulation_mode=dialogflow' -d '{"text": "hello"}'
```

The `emulation_mode` parameter tells Rasa that you want your json
response to have the same format as you would get from dialogflow.
You can also leave it out to get the result in the usual Rasa format.

## Terminology:

The words `intent`, `entity`, and `utterance` have the same meaning in Rasa as they do in Dialogflow.
In Dialogflow, there is a concept called `Fulfillment`. In Rasa we call this a [Custom Action](https://legacy-docs-v1.rasa.com/docs/rasa/core/actions/#custom-actions).

Join the [Rasa Community Forum](https://forum.rasa.com/) and let us know how your migration went!
