An intelligent AI-powered meeting room booking system built with LangGraph and advanced natural language processing capabilities. The system provides seamless room reservation through conversational interfaces, featuring automated availability checking, smart scheduling, and comprehensive booking management.
The Meeting Room Booking Agent leverages state-of-the-art language models to transform natural language requests into structured booking operations. Built on the LangGraph framework, it provides enterprise-grade workflow orchestration with intelligent fallback mechanisms and user clarification loops.
- Advanced request parsing with context understanding
- Multi-turn conversation support with memory retention
- Automatic extraction of booking parameters (time, capacity, equipment)
- Real-time room availability checking
- Conflict detection and resolution
- Alternative suggestion engine for optimal scheduling
- Dynamic clarification loops for incomplete requests
- State-aware conversation handling
- Robust error recovery mechanisms
- Responsive design optimized for all devices
- Real-time chat interface with typing indicators
- Intuitive booking confirmation flows
- Modular design supporting multiple LLM providers
- JSON-based data layer for rapid prototyping
- Extensible plugin system for custom integrations
Component | Technology | Purpose |
---|---|---|
AI Agent Engine | LangGraph + Groq API | Orchestrates booking workflows and natural language understanding |
Web Interface | Flask + HTML/CSS | Provides user interaction layer with responsive design |
Data Layer | JSON Database | Manages room inventory and booking records |
Booking Service | Mock API | Handles reservation logic and calendar integration |
- Python: 3.11.0 or higher
- Conda: Miniconda or Anaconda distribution
- API Access: Groq API key (or compatible LLM service)
-
Environment Setup
conda create -n meeting_room_agent python=3.11 -y
conda activate meeting_room_agent
-
Dependency Installation
pip install -r requirements.txt
-
Configuration
Create a
.env
file in the project root:GROQ_API_KEY=your_groq_api_key_here FLASK_ENV=development FLASK_DEBUG=True
-
Launch Application
flask run
Access the application at
http://localhost:5000
meeting-room-booking-agent/
βββ app.py # Flask application entry point
βββ config.py # Application configuration
βββ helper.py # Utility functions and helpers
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables template
β
βββ booking_agent/ # Core AI agent components
β βββ __init__.py
β βββ conditions.py # Workflow transition conditions
β βββ nodes.py # LangGraph node definitions
β βββ prompt_config.py # System prompts and templates
β βββ schemas.py # Pydantic data models
β βββ workflow.py # LangGraph workflow orchestration
β
βββ mock_apis/ # Mock service layer
β βββ __init__.py
β βββ booking_services.py # Booking API simulation
β βββ room_services.py # Room data management
β
βββ static/ # Frontend assets
β βββ style.css # Application styles
β βββ js/ # JavaScript modules
β
βββ templates/ # Jinja2 templates
β βββ index.html # Main application interface
β
βββ data/ # Data storage (JSON files)
β βββ rooms.json # Room definitions and metadata
β βββ bookings.json # Active booking records
β βββ clarification_messages.json # Fallback clarification templates
β
βββ docs/ # Documentation and diagrams
βββ Project_Documentation.md
βββ system_architecture.svg
βββ flowchart.svg
βββ chatbot.jpg
- Groq API (Default): LLaMA3-8b-8192 with optimized inference
- Temperature: 0.5 for balanced creativity and consistency
- Ollama: Local model deployment for privacy-sensitive environments
- OpenAI GPT: Enterprise-grade language understanding
- Anthropic Claude: Advanced reasoning capabilities
- Custom LLMs: Via LangChain integration layer
State | Description | Transitions |
---|---|---|
Parse Request | Extract booking parameters from natural language | β Find Rooms / Request Clarification |
Find Rooms | Filter rooms by capacity and equipment requirements | β Check Availability / End |
Check Availability | Verify time slot availability | β Show Options / Suggest Alternatives |
Get Confirmation | Present options and await user decision | β Reserve Room / End |
Reserve Room | Execute booking transaction | β Send Confirmation |
{
"id": 1,
"name": "Conference Room Alpha",
"capacity": 12,
"equipments": ["Projector", "Whiteboard", "Video Conference"],
"location": "Floor 2, East Wing",
"amenities": ["WiFi", "Power Outlets", "Climate Control"]
}
{
"room_id": 1,
"start_time": "2025-01-15T14:00:00Z",
"end_time": "2025-01-15T15:30:00Z",
"booked_by": "John Doe",
"purpose": "Team Standup",
"attendees": 8
}
Endpoint | Method | Description |
---|---|---|
/ |
GET | Main application interface |
/chat |
POST | Process booking requests |
/api/rooms |
GET | Retrieve available rooms |
/api/bookings |
GET/POST | Manage booking records |
export FLASK_ENV=development
export FLASK_DEBUG=True
flask run --host=0.0.0.0 --port=5000
- Replace JSON storage with production database (PostgreSQL, MongoDB)
- Implement proper authentication and authorization
- Add rate limiting and request validation
- Configure HTTPS and security headers
- Set up monitoring and logging infrastructure
We welcome contributions! Please see our Contributing Guidelines for details on:
- Code style and standards
- Testing requirements
- Pull request process
- Issue reporting
This project is licensed under the MIT License - see the LICENSE file for details.
- Full Documentation: docs/Project_Documentation.md
- API Reference: Available in the
/docs
directory - Issue Tracking: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ using LangGraph, Flask, and modern AI technologies