An end-to-end GenAI assistant built using the LLaMA-3.1 8B Instruct model (via NVIDIA API), capable of handling hotel room reservations, restaurant table bookings, and banquet hall event planning through natural language conversation.
Built without LangChain using a custom tool-calling architecture, the agent interprets user intent, asks smart follow-ups, and returns tailored venue recommendations from synthetic datasets.
GoodFoods is a fictional multi-location restaurant and hospitality chain. This conversational AI assistant enables:
| Use Case | Options Supported |
|---|---|
| ๐๏ธ Room Booking | Single, Double, Suite; AC/Non-AC; food/cuisine; 12/24 hr |
| ๐ฝ๏ธ Table Reservation | 2, 4, or 6 seats; AC/Non-AC; Veg/Non-Veg; cuisine |
| ๐ Banquet Hall Booking | 20โ500 pax; price, food, cuisine, AC, decor (optional) |
The assistant dynamically extracts booking intent, fills required fields through conversation, and presents relevant venue suggestions from curated synthetic datasets.
| Feature | Description |
|---|---|
| ๐ง LLM Intent & Slot Filling | Determines booking type and extracts parameters via structured prompting |
| ๐งฐ Tool Calling Architecture | Uses LLM to decide and update fields in JSON dynamically |
| ๐ข Venue Recommendations | Filters and returns top venue matches based on user preferences |
| ๐ฌ Conversational Agent | Gradio/CLI chatbot interface that mimics natural interaction |
| ๐งพ Synthetic Datasets | 3 JSONs with 100+ records including price, food, capacity, AC, cuisine |
| ๐ซ No LangChain / External Frameworks | Pure Python + OpenRouter/NVIDIA API integration |
graph TD
User -->|Text prompt| UI[Gradio or CLI]
UI --> LLM
LLM -->|Intent + slot filling| ToolCalling[Field Updater]
ToolCalling --> VenueFilter[Venue Recommender]
VenueFilter --> BookingResponse
BookingResponse --> UI
git clone https://github.com/yourusername/goodfoods-genai-reservation.git
cd goodfoods-genai-reservationpip install -r requirements.txt
# or manually
pip install gradio pandas openaiexport OPENAI_API_KEY="your-nvidia-api-key"Place these files in the root directory:
synthetic_room_hotels.jsonsynthetic_restaurant_tables.jsonsynthetic_banquet_halls.json
python app.py
# Or to launch the Gradio UI
python gradio_ui.py- LLM decides venue type (room/table/hall)
- LLM handles slot filling via dynamic JSON-based prompts
- No rigid logic trees, enabling flexible multi-turn dialog
1. Intent Detection
You are an assistant that extracts booking intent from user input.
Return only this JSON:
{
"venue_type": "room" | "table" | "hall"
}2. Slot Filling Prompt
You are helping to fill the field '{field}' in this booking info:
{current_state_json}
Only return updated JSON for that field.โ LLM selects which parameter to ask next โ All fields stored and updated in a centralized JSON object โ Venue matcher uses semantic + rule-based filtering
No LangChain or external orchestration framework is used.
Each JSON file contains structured metadata like:
{
"id": "H001",
"name": "GoodFoods Grand Residency",
"city": "Chennai",
"room_type": "Suite",
"AC": "Yes",
"food": "Veg",
"cuisine": "Indian",
"price": 3500
}synthetic_room_hotels.json: room_type, AC, city, cuisine, pricesynthetic_restaurant_tables.json: table size, cuisine, AC, veg/non-vegsynthetic_banquet_halls.json: pax capacity, AC, price, cuisine, decor
User: I want to book a suite for 2 people โ Bot: Which city are you looking in? โ Bot: Do you want 12hr or 24hr check-in? โ Bot: AC or non-AC? โ Bot: Food preference and cuisine? โ โ Venue options with IDs โ โ Final confirmation with venue ID
User: Can I get a table for 4 in Coimbatore tonight? โ Bot: AC/Non-AC preference โ Bot: Cuisine type โ โ Recommends table options โ โ Booking confirmed
User: I need a hall for 150 people this weekend โ Bot: City and event date โ Bot: Budget and food type โ Bot: Cuisine and decor needs โ โ Venue shortlisting and booking ID
| Business Problem | Opportunity |
|---|---|
| 1. High no-show rates or last-minute cancellations | Introduce automated confirmation/reminder flow via WhatsApp/SMS/email using the LLM agent. |
| 2. Fragmented customer data across multiple branches | Use the centralized reservation bot to unify customer profiles across all locations. Enables targeted marketing. |
| 3. Difficulty in upselling during booking | AI agent can intelligently upsell higher-priced rooms, buffet packages, add-ons (decor, cake, live music) based on intent. |
| 4. Limited insights on user demand trends | All conversation data becomes usable for analytics (e.g. peak time analysis, cuisine demand heatmaps). |
| 5. Manual handling of bulk/banquet inquiries | Automate bulk booking qualification and data capture, reducing load on staff and speeding up lead response. |
| 6. Inconsistent service across locations | LLM standardizes customer experience regardless of outlet. Brand reliability improves. |
| Metric | Target Value (first 3โ6 months) | Purpose |
|---|---|---|
| ๐ข Booking Completion Rate | โฅ 80% | Measures drop-offs; higher means smooth bot UX |
| ๐ข Avg. Booking Time | โค 3 mins | Indicates efficiency of form-filling with LLM |
| ๐ข No-show Reduction | โ by 15โ20% | Through reminders & confirmations |
| ๐ข Manual Ops Load Reduction | โ by 50% | Time saved by AI over phone-based booking |
| ๐ข Avg. Order Value | โ by 10โ15% | Due to upselling from AI |
| ๐ข Conversion Rate of Hall Leads | โฅ 40% | Indicator of lead qualification accuracy |
| Component | ROI Driver | ROI Estimate |
|---|---|---|
| ๐ฐ Staff Cost Reduction | Automate 60โ70% of routine queries | ~$5Kโ$15K/month saved |
| ๐ก Improved Occupancy Rate | Less drop-offs + better matching | 10โ20% occupancy increase |
| ๐ Higher Customer Lifetime Value | Unified profiles + personalized promos | 1.5x revenue per repeat customer |
| ๐ Lead Conversion Boost | Faster banquet response = more bookings | +30โ50 new event leads/month |
| Sector / Vertical | How the AI Agent Adapts |
|---|---|
| ๐๏ธ Hotel Chains | Room, suite booking with check-in types, meal plan upselling |
| ๐ฅ Clinics/Hospitals | Appointment booking based on department, doctor availability, symptoms |
| ๐ Educational Institutions | Scheduling campus visits, event reservations, open house slots |
| ๐ข Corporate Offices / Co-working | Conference room booking, food ordering, space allocation |
| ๐ง Wellness & Spa Centers | Treatment slot booking with therapists, packages, reminders |
-
๐ฏ Intent-first, Tool-based Architecture
- LLM dynamically infers user needs and triggers modular booking logic via tool calling.
- No hardcoding = scalable across different domains or venues with just schema swaps.
-
๐ฌ Multi-turn Memory with JSON State Engine
- Intelligent follow-up flow that remembers context and fills only the missing details.
- Clean UX even for complex flows like hall bookings or filtered cuisine-based preferences.
-
๐ฆ 3-in-1 Booking System (Room, Table, Hall)
- Most competitors only solve for one type. This system handles all with separate logic trees and matching filters โ boosting operational coverage from day one.
- User queries are in English with clear intent
- Venue inventory is static (no live availability or pricing)
- Payment, notification, or loyalty modules are not integrated
- No real-time booking sync with backend systems
- No cancellation/modification workflows
- Not yet mobile-optimized for production deployment
| Feature | Status |
|---|---|
| ๐ณ Payment & invoice integration | ๐ |
| ๐ Multi-language interface | ๐ |
| ๐ฑ Mobile-first UI (React Native) | ๐ |
| ๐ Live backend API connectivity | ๐ |
| ๐ Booking change/cancel support | ๐ |
| Requirement | Status |
|---|---|
| LLM tool-calling (dynamic JSON logic) | โ |
| Venue-type detection | โ |
| Slot-filling with follow-up questions | โ |
| 50โ100+ venue entries with metadata | โ |
| Multi-type booking system | โ |
| Pure Python (no LangChain, clean logic) | โ |
| NVIDIA API (LLaMA-3.1 8B) integration | โ |
| Gradio or CLI interface | โ |
This project is licensed under the MIT License โ free for academic and commercial use with attribution.