---
id: microsoft-luis-to-rasa
sidebar_label: Rasa as open source alternative to Microsoft LUIS - Migration Guide
title: Rasa as open source alternative to Microsoft LUIS - Migration Guide
description: Open source alternative to Microsoft LUIS for conversational bots and NLP
---
import useBaseUrl from '@docusaurus/useBaseUrl';

Let's get started with migrating your application from LUIS to Rasa:

## Step 1: Export your Training Data from LUIS

Go to your list of [LUIS conversation apps](https://www.luis.ai/conversations/applications) and select the application
you want to export.

import luisImage from './luis_export.png';

<Image img={luisImage} caption="Export menu" alt="Opening the menu reveals the 'Export to JSON' option." />

Select 'Export' > 'Export as JSON'. This will download a file with a `.json` extension that can be imported directly into Rasa.

## 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 json file into this directory.

```bash
rm -r data/*
mv /path/to/file.json data/
```

## Step 3: Train your NLU model

To train a model using your LUIS 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
```

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=luis' -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 LUIS.
You can also leave it out to get the result in the usual Rasa format.

## Terminology:

The words `intent`, `entity`, `role`, and `utterance` have the same meaning in Rasa as they do
in LUIS.
LUIS's `patterns` feature is very similar to Rasa NLU's [regex features](./training-data-format.mdx#regular-expressions)
LUIS's `phrase lists` feature does not currently have an equivalent in Rasa NLU.

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