How to build a chatbot using RASA, Conversational AI?
Chatbots are classified into 5 types based on increasing levels of complexity. The fifth one is complex enough to provide output with great precision even without input from the user. RASA falls under level 3.
Level 3 can detect changes in user behavior, and handle unexpected queries.
The main components of the chatbot are listed below:
Intent - Inputs are put into different categories as per the intent of the input from the user. e.g., If the user says hello, hey, or good morning, it falls under the ‘greet’ intent.
Entities - Entities are critical information provided by the user- name, phone no, etc.,. The bot will be able to extract the entities from the dialogue. The efficiency of the extraction depends on the training data.
Slots - Bot’s memory - things that the bot needs to remember throughout the conversation to perform tasks. Entities are stored as slots by default.
Story- Possible ways for the flow of the conversation
Response/Action - Bot’s response to the user input
User needs to execute a couple of steps to initiate a conversation with the bot in terminal
Step1:
To create the intent in the nlu.yml
Mention intents and their category. No duplicates.
Step2:
To create actions in actions.py
Create a child class of the action with two functions- Name( name of the action) and Run( action to be performed)
Step3:
To create domain.yml
It holds the domain knowledge of the chatbot. Information from intent and actions are also stored here. Additionally, we will have to inbuilt the responses of the bot.
Step4:
Create stories.yml
Various ways the conversation can go. The previous step builds to this step.
After all information from the previous steps is provided, the user has to train RASA using the command - rasa train
Later, the user can work will the chatbot through the shell in the RASA folder - rasa shell. Now the bot is ready to make interesting conversations with the user.

