A restaurant bot made with help of Python's Rasa Library, which uses the Zomato API to find the restaurants from a given location.
User is giving input to what type of food he/she would like to have with the input of their location and using the Zomato API, The results whill be showed on the screen.
If you don't have rasa installed then follow this link for easy installation Youtube link
- Clone the repo
- add the Zomato API key to zomatopy.py file
- open the terminal in the project directory and run the below commands
Once the bot has been trained, run the bot using the below commands:-
Rasa is a framework for developing AI powered, industrial grade chatbots. It's incredibly powerful, and is used by developers worldwide to create chatbots and contextual assistants.
Rasa NLU is primarily used to build chatbots and voice apps, where this is called intent classification and entity extraction. To use Rasa, you have to provide some training data. That is, a set of messages which you've already labelled with their intents and entities. Rasa then uses machine learning to pick up patterns and generalise to unseen sentences.
Rasa Core is a dialogue management solution tries to build a probability model which decides the set of actions to perform based on the previous set of user inputs.
Rasa NLU’s job is to interpret messages, and Rasa Core’s job is to decide what should happen next. Rasa NLU: It's the interpreter who understands the input. Basically figures out entities and labels the intent. Rasa Core: It does the rest of the work you want your bot to do. The flow of conversation is the most important thing.
- Intent - It refers to what a person is trying to say. For eg:'I want to order chinese food', here the intent is to order some food
- Entity- An entity in a chatbot is used to add values to search the intent. For eg: The intent is to order some food, but the entity is chinese which is of the type cuisine
- Actions - Declarations of functions that will be called when the intents, entities and entity types in a sentence are identified.
- Stories - The flow of conversation is defined by a story. For eg: how will the chat communicate after greeting
- Slots- Slots are the variables you give your program to let your bot categorize and interpret users' input.
- Responses - Definition of some not all actions.
- domain.yml- defines chatbot domain like entities, actions, templates, slots
- config.yml- contains model configuration and custom policy
- credentials.yml- contains authentication token to connect with channels
- endpoints.yml- contains the webhook configuration for custom action
- nlu.md - contains training examples for the NLU model
- stories.md - ontains training stories for the Core model
- actions.py : contains the following custom actions (insert ZOMATO API key in this script file before starting RASA server):-
- searches a restaurant with some specific cuisine in a location
- Displays the top 5 restaurant details to the users