StaySeeker - Hotel Booking Voice Bot
StaySeeker is a voice assistant designed to simplify the hotel booking process. Built using AWS Lex, Lambda, and Google Hotels API, it allows users to interact through natural language for a seamless booking experience. Users can provide location details, check-in/check-out dates, and the number of guests to receive real-time hotel options.
Features
- Voice Interaction: A voice-enabled bot that allows hands-free hotel booking.
- Location-based Search: Fetches user location using latitude and longitude to find nearby hotels.
- Hotel Search: Integrated with Google Hotels API (via Serp API) to provide real-time hotel availability, pricing, and ratings.
- Validation: Input validation for secure and accurate bookings.
- Secure Deployment: Hosted on an HTTPS-enabled static website using AWS S3 and Cloudfront
Components Overview
Lambda Functions:
- Fetch user location details via latitude and longitude provided by user using the geocoder library.
- Search for hotels via the Google Hotels API (Serp API) based on user inputs like check-in date, duration, and guests.
Lex Intents:
- BookRoom: Gathers location, check-in, check-out dates, and guest details.
- SearchNearbyHotels: Provides top 5 hotel options based on user inputs.
- ProvideDetails: Collects user details (name, phone, email) for booking confirmation.
- ConfirmBooking: Confirms the booking details and finalizes the process.
- Fallback Intent: Activated if the bot doesn't recognize user input or hits an error.
.
├──
│ ├── lambda_handler.py # Main Lambda function handling hotel booking logic
│ ├── helpers/
│ │ ├── get_current_location.py # Logic to fetch location based on lat and long using Geocoder & Integration with Google Hotels API for hotel search
│ │ ├── lex_response.py # Lex response functions (close, elicit slot, confirm intent)
│ └── hotel_details.txt # Cached Google search response for hotel data to avoid API rate limits
├── static_website/
│ └── index.html # Hosted on AWS S3 to capture user location details
└── README.md # Project documentation