Build Your Customer Order Bot in 6 Easy Steps: Rasa Open Source 3.x


Introduction to Customer Order Bot

In today’s fast-paced world, businesses are constantly seeking innovative ways to streamline their operations and enhance customer experiences. Building a chatbot to handle customer orders can greatly improve efficiency and satisfaction. In this tutorial, also we will guide you through the process of creating a customer order bot using Rasa 3.x, empowering your business to automate order management. Let’s dive in!

Step 1: Installation and Setup

Before we begin, ensure that you have Python 3.7 or higher installed on your machine. Follow these steps to set up your Rasa environment:

  1. Create a virtual environment (recommended but optional):
   python3 -m venv rasa-env
   source rasa-env/bin/activate
  1. Install Rasa:
   pip install rasa==3.x.x
  1. Initialize your Rasa project:
   rasa init --no-prompt

Step 2: Designing the Customer Order Bot’s Domain

The domain file defines the behavior of your order bot, including intents, entities, actions, and responses. Open the domain.yml file in your Rasa project and modify it to reflect your bot’s purpose. Define intents such as “order_food” or “cancel_order” and create corresponding responses and actions.

version: "2.0"

  - order_food
  - cancel_order

  - menu_item

    - text: "What would you like to order from our menu?"

    - text: "Sure! I will place an order for {menu_item}. Please wait a moment."

    - text: "Your order has been canceled."

  - action_place_order

Step 3: Training the NLU Model

The Natural Language Understanding (NLU) model is responsible for understanding user inputs. To train the NLU model, create a file called nlu.yml within the data directory. Also define intents and their associated examples, along with entity annotations. For example:

version: "2.0"

- intent: order_food
  examples: |
    - I want to order a pizza
    - Can I have a burger, please?
    - I'd like to order sushi for delivery

- intent: cancel_order
  examples: |
    - I want to cancel my order
    - Please cancel my food order
    - I changed my mind, don't deliver the food

- intent: inform_menu
  examples: |
    - [pizza]{ "entity":"menu_item","value": "pizza" }
    - [burger]{ "entity":"menu_item","value": "burger" }
    - [sushi]{ "entity":"menu_item","value": "sushi" }

Train the NLU model using the following command:

rasa train nlu

Step 4: Creating Stories and Training the Dialogue Model

Stories define the flow of conversations in your bot. Open the data/stories.yml file and create stories that represent different user interactions. Each story should contain user inputs, corresponding intents, and actions taken by the bot. Here’s an example:

version: "2.0"

- story: place order
  - intent: order_food
  - action: utter_ask_menu
  - intent: inform_menu
    - menu_item: "pizza"
  - action: action_place_order
  - action: utter_confirm_order

- story: cancel order
  - intent: cancel_order
  - action: utter_cancel_confirmation

Train the dialogue model using the following command:

rasa train

Step 5: Implementing Custom Actions for Customer Order Bot

Custom actions allow your bot to perform specific tasks, such as placing an order or canceling an order. Create a new Python file in the actions directory and define custom actions using the Rasa SDK. Here’s an example of an action to place an order:

# for Customer Order Bot
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher

class ActionPlaceOrder(Action):
    def name(self) -> Text:
        return "action_place_order"

    def run(self, dispatcher: CollectingDispatcher,
            tracker: Tracker,

: Dict[Text, Any]) -> List[Dict[Text, Any]]:

        # Perform order placement logic here

        dispatcher.utter_message(text="Your order has been placed successfully!")

        return []

Step 6: Testing and Running the Customer Order Bot

To test your order bot, run the following command:

rasa shell

Engage in conversations with your bot and observe how it responds based on the trained models and custom actions.

Customer Order Bot

Congratulations! You have successfully created a customer order bot using Rasa 3.x, empowering your business to automate order management. With Rasa’s powerful natural language understanding and dialogue management capabilities, you can provide efficient and personalized order-taking experiences to your customers. Remember to continuously refine and expand your bot’s capabilities by adding more intents, actions, and fine-tuning its responses. Start exploring the extensive documentation provided by Rasa to further enhance your chatbot-building skills. Happy bot building and streamlined order management!

Also, check out our other playlist Rasa ChatbotInternet of thingsDockerPython ProgrammingMQTTTech News, etc.
Become a member of our social family on youtube here.

Stay tuned and Happy Learning. ✌🏻😃

Leave a Reply