Setup Use Python 3.8 and refer https://learning.rasa.com/installation/ for installation.
Refer Installation Manual attached in this git repo for detailed steps.
Run below commands in separate windows after setup
$ rasa shell ( to open Rasa bot for conversations)
$ rasa run actions (to run Rasa custom actions)
This project presents the development and implementation of a hotel booking chatbot leveraging the open-source framework Rasa NLU https://learning.rasa.com/conversational-ai-with-rasa/introduction-to-rasa/. The chatbot is directed towards users who are seeking assistance and information related to hotel bookings. This includes individuals looking to book hotel stays, inquire about existing reservations, or gather general information about the hotel's services and facilities.
Scope of Chatbot
We are going to build a chatbot named GrandGuideBot for booking hotel stays. This bot will assist users in booking, cancelling reservations, and providing basic information about our hotel. Let's outline what our chatbot will do:
- The GrandGuideBot should be able to understand greetings and reply with a greeting.
- The bot should be able to understand if the user is asking about booking a room, requesting cancellation or seeking general hotel information like location, check-in and check-out times, restaurant hours, nearby tourist spots, and available facilities.
- The bot should be able to prompt users for details such as their name, contact number for authorization, the number of guests, check-in/check-out dates, and the preferred payment method.
- After obtaining user details, the bot must offer choices for room types—single, deluxe, or suite. Additionally, it should allow users to decide if they want to include breakfast in their package.
- The bot should let users cancel their bookings by asking for their name and booking ID.
- It should also furnish users with general information about the hotel, such as the availability of various cuisine restaurants, spas, swimming pools, gaming zones, and their operating hours, upon user inquiry.
- Upon successful booking or cancellation, it should prompt user by asking if there is anything else it can help with.
Intents
Some of the possible intents are -
- Greeting Intent: User initiates the conversation with a greeting.
- BookRoom Intent: User expresses an intent to book a hotel room.
- ProvideDetails Intent: User shares personal details like name, contact number, and booking preferences.
- SelectRoomType Intent: User indicates a preference for a specific type of room (single, deluxe, or suite).
- SelectBreakfastOption Intent: User decides whether to include breakfast in the booking.
- CancelBooking Intent: User expresses an intent to cancel an existing booking.
- SelectPaymentMethod Intent: User decides the mode of payment.
- GeneralInformation Intent: User seeks general details about the hotel, such as location, check-in/out times, and available facilities.
- EnquireAboutServices Intent: User asks about various services offered by the hotel, such as restaurants, spas, swimming pools, and gaming zones.
- ThankYou Intent: User expresses gratitude or thanks after receiving assistance.
- BotIdentity Intent: User asks the bot if it is a human or a bot, or inquires about the bot's identity
Bot Screenhots
Case 1: USER INTENTS TO BOOK A ROOM
Case 2: USER INTENTS TO CANCEL THEIR EXISTING BOOKING
Case 3: USER SEEKS HOTEL INFORMATION
.
├── README.md # Project documentation
├── actions/ # Directory for custom actions
│ ├── __init__.py
│ ├── actions.py # custom python logic
│ └── utils.py
├── data/ # Directory for training data
│ ├── nlu.yml # Defines intent & entitites
│ ├── rules.yml # Specifies rules
│ └── stories.yml # Storyline- Describes sequences of user messages and bot responses,
│
├── config.yml # Configuration file for Rasa
├── domain.yml # Defines intents, entities, slots, and responses
├── endpoints.yml # Specifies endpoints for custom actions
├── models/ # Directory to store trained Rasa models
├── graph.html # Graphical representation of overall conversation flow (Generated by **rasa visualize** command)
├── story_graph.dot # source code for the graph.html visualization.
└── requirements.txt # List of required Python packages
├── Installation Manual.pdf # Detailed steps for setup of Rasa Bot