DEV Community

Cover image for Setting Up Your First Rasa Project
BHARATH M
BHARATH M

Posted on

Setting Up Your First Rasa Project

Rasa is an open source framework for creating conversational AI and chatbots. If you are a looking to configure your first project in Rasa, you’ve come to the right place. In this blog, Iwe will set up a Rasa project from the ground up, step by step.

What Is Rasa?

Before diving in, let’s clarify what Rasa is. Rasa consists of two primary components:

  1. Rasa Open Source: A framework for building natural language understanding (NLU) and dialogue management.

  2. Rasa X: A tool for improving and managing your assistant over time.

Rasa is written in Python and allows for flexible customisation, making it a popular choice among developers.

Prerequisites

To set up Rasa, you need:

  • Python 3.8 or 3.9 (Rasa currently doesn’t support 3.10+)

  • pip (Python package manager)

  • Virtual Environment (Optional but recommended)

Familiarity with Python and basic command-line usage is helpful but not required.

Step 1: Installing Python and Creating Virtual Environment

  1. Download Python:
  1. Create a Virtual Environment: Using a virtual environment keeps your Rasa project dependencies isolated from your global Python setup.

    python -m venv venv
    source venv/bin/activate

Step 2: Install Rasa

  1. Install Rasa via pip:

    pip install rasa

    1. Verify the installation:

    rasa --version

You should see the Rasa version and Python version displayed.

Rasa version

Step 3: Create Your First Rasa Project

Now, let’s create your Rasa project:

  1. Run the following command:

    rasa init

    1. Follow the prompts:

rasa init

  • Rasa will set up a new project directory with the following structure:

    my_project/
    ├── actions/
    ├── data/
    ├── models/
    ├── tests/
    ├── config.yml
    ├── credentials.yml
    ├── domain.yml
    └── endpoints.yml

  • We will be prompted to train a model and test your assistant. Go ahead and try it!

Step 4: Understand the Key Files in Rasa

Here’s a breakdown of the key files in your project:

  • domain.yml: Defines your bot’s personality, intents, responses, and entities.

  • data/nlu.yml: Contains training examples for intent recognition.

  • data/stories.yml: Defines conversation flows to train the dialogue model.

  • config.yml: Specifies the machine learning pipeline for intent classification and entity recognition.

  • endpoints.yml: Configures where to find external services (e.g., action server).

  • credentials.yml: Configures third-party integrations like Slack or Telegram.

Step 5: Train Your Rasa Model

  1. Use the following command to train your assistant if not already trained:

    rasa train

    1. This will generate a model file in the models/ directory, ready to power your chatbot!

Rasa train

Step 6: Test Your Assistant

  1. Test your assistant locally:

    rasa shell

    1. Type in some messages to see how the assistant responds. For example:

rasa shell

> Hi Hello! 
Hey! How are you?
Enter fullscreen mode Exit fullscreen mode




Step 7: Add Custom Actions

Want your bot to perform actions like fetching data from an API? Add custom actions!

  1. Open the actions/ directory and create a Python file (e.g., actions.py).

  2. Write your custom action:

    from rasa_sdk import Action
    from rasa_sdk.executor import CollectingDispatcher

    class ActionHelloWorld(Action):
    def name(self):
    return "action_hello_world"

    def run(self, dispatcher, tracker, domain):
        dispatcher.utter_message(text="Hello, world!")
        return []
    
    1. Update domain.yml to include your action:

    actions:

    • action_hello_world
      1. Start the action server:

    rasa run actions

References 🔗

Happy coding

Top comments (0)