Skip to content

Concierge is a comprehensive AI assistant that serves as your personal guide to Dubai's activities, dining, entertainment, and lifestyle experiences. Built with cutting-edge AI technologies, it provides both text and voice-based interactions to help users find the perfect experiences in Dubai.

Notifications You must be signed in to change notification settings

EtoYaMak/ai-concierge-dxb

Repository files navigation

Dubai Concierge AI

DxB

A sophisticated AI-powered concierge application designed to help users discover and explore Dubai's finest experiences. This project demonstrates advanced AI integration, real-time voice capabilities, and intelligent data retrieval systems.

🎯 Project Overview

Concierge is a comprehensive AI assistant that serves as your personal guide to Dubai's activities, dining, entertainment, and lifestyle experiences. Built with cutting-edge AI technologies, it provides both text and voice-based interactions to help users find the perfect experiences in Dubai.

What I Learned

This project was an excellent learning experience that taught me:

  • Real-time AI Voice Integration: Implementing OpenAI's Realtime API for natural voice conversations
  • Vector Search & Embeddings: Building intelligent search systems using vector similarity
  • Advanced Database Design: Working with PostgreSQL, Drizzle ORM, and vector extensions
  • Streaming Responses: Creating real-time, chunked responses for better UX
  • Category Detection: Building intelligent mapping systems for user intent recognition
  • Modern React Patterns: Using React 19, TypeScript, and advanced component patterns
  • Edge Runtime Optimization: Leveraging Next.js Edge Runtime for performance
  • AI Function Calling: Implementing custom functions for enhanced AI capabilities

✨ Key Features

πŸ€– AI-Powered Intelligence

  • GPT-4o Integration: Advanced language model for natural conversations
  • Vector Search: Semantic search using OpenAI embeddings for relevant results
  • Category Detection: Intelligent mapping of user queries to specific categories
  • Entity Recognition: Extracting and matching specific venue names and locations

🎀 Real-time Voice Assistant

  • OpenAI Realtime API: Natural voice conversations with minimal latency
  • Voice-to-Text: Real-time transcription using Whisper
  • Text-to-Speech: Natural AI voice responses
  • Interactive Voice UI: Beautiful audio visualization and state management
  • Function Calling: Voice assistant can trigger database searches and time queries

πŸ’¬ Dual Interface

  • Text Chat: Traditional chat interface with streaming responses
  • Voice Chat: Full voice conversation capabilities
  • Seamless Switching: Users can switch between text and voice modes

πŸ—„οΈ Intelligent Data Management

  • Comprehensive Database: 1000+ activities, restaurants, and venues
  • Structured Categories: Organized by activities, dining, hotels, places, and trending spots
  • Rich Metadata: Detailed information including pricing, timing, and booking details
  • Vector Embeddings: Fast semantic search across all content

🎨 Modern UI/UX

  • Responsive Design: Works perfectly on desktop and mobile
  • Dark/Light Mode: Theme switching with system preference detection
  • Real-time Updates: Live streaming responses and typing indicators
  • Beautiful Animations: Smooth transitions and audio visualizations

πŸ—οΈ Technical Architecture

Frontend Stack

  • Next.js 15: App Router with Edge Runtime
  • React 19: Latest React features and patterns
  • TypeScript: Full type safety throughout
  • Tailwind CSS: Utility-first styling
  • Radix UI: Accessible component primitives
  • Lucide React: Beautiful icons

Backend & AI

  • OpenAI API: GPT-4o for text generation and embeddings
  • OpenAI Realtime API: Voice conversation capabilities
  • PostgreSQL: Primary database with vector extensions
  • Drizzle ORM: Type-safe database operations
  • Neon Database: Serverless PostgreSQL hosting

Key Libraries

  • @tanstack/react-query: Data fetching and caching
  • node-cache: Server-side caching for embeddings
  • zod: Runtime type validation
  • ws: WebSocket connections for real-time features

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database with vector extension
  • OpenAI API key with Realtime API access

Environment Variables

DATABASE_URL=your_postgresql_connection_string
OPENAI_API_KEY=your_openai_api_key

Installation

npm install
npm run dev

πŸ“Š Database Schema

Core Tables

  • messages: Chat history with user_id, content, role, timestamp
  • activities: Venue data with embeddings, categories, and metadata

Vector Search

  • Uses PostgreSQL's vector extension for similarity search
  • Embeddings generated using OpenAI's text-embedding-ada-002
  • Cached embeddings for performance optimization

🎯 Category System

The app organizes Dubai experiences into comprehensive categories:

Activities

  • Adventure, City tours, Desert experiences, Sea activities
  • Events & shows, Family activities, VIP experiences
  • Gift categories for different occasions

Dining

  • All-you-can-eat options, Beachfront dining, Brunch deals
  • International cuisines (Arabic, Chinese, Indian, Italian, etc.)
  • Casual to upscale dining experiences

Places

  • Beach clubs, Pool clubs, Rooftop bars & lounges
  • Shisha spots, Indoor bars & lounges

Hotels

  • 3-star to 7-star accommodations
  • Beach resorts, Luxury city hotels, Party hotels

Trending Hot Spots

  • Ladies nights, Nightlife spots, Live entertainment

πŸ”§ Custom Features

Intelligent Category Mapping

  • Maps natural language queries to specific categories
  • Handles synonyms and variations (e.g., "beach clubs" β†’ "beach clubs to chill")
  • Fuzzy matching for subcategories

Voice Function Integration

  • get_current_time: Provides real-time time and date information
  • send_transcription: Processes voice queries through the database

Streaming Response System

  • Real-time chunked responses for better user experience
  • Progressive loading of search results
  • Optimized for both text and voice interactions

Advanced Search Algorithms

  • Vector Similarity: Semantic search using embeddings
  • Entity Detection: Direct name matching for venues
  • Category Filtering: Intelligent filtering based on user intent
  • Combined Results: Merges multiple search strategies for best results

🎨 UI Components

Custom Components

  • VoiceAssistant: Real-time voice interaction component
  • VoiceChatModal: Beautiful modal with audio visualization
  • ChatMessages: Streaming message display
  • UserIdentifier: Session management
  • ThemeToggle: Dark/light mode switching

Audio Visualization

  • Real-time audio waveform display
  • State-based color coding (listening/speaking/idle)
  • Smooth animations and transitions

πŸ”’ Security & Performance

Security Features

  • User session management
  • API key protection
  • Input validation with Zod
  • SQL injection prevention

Performance Optimizations

  • Embedding caching (24-hour TTL)
  • Vector search result caching
  • Edge runtime for faster responses
  • Parallel processing of embeddings and message history

πŸ“ˆ Learning Outcomes

AI & Machine Learning

  • Understanding of vector embeddings and similarity search
  • Real-time AI voice integration patterns
  • Function calling and tool integration
  • Prompt engineering for specific use cases

Full-Stack Development

  • Modern React patterns and hooks
  • TypeScript best practices
  • Database design with vector extensions
  • Real-time communication protocols

System Design

  • Caching strategies for AI operations
  • Streaming response architectures
  • Category detection algorithms
  • Voice-first user experience design

πŸš€ Future Enhancements

  • Multi-language Support: Arabic language integration
  • Booking Integration: Direct booking capabilities
  • Personalization: User preference learning
  • Image Recognition: Visual search capabilities
  • Social Features: User reviews and ratings
  • Mobile App: Native iOS/Android applications

πŸ“ License

This project is for educational and demonstration purposes.


Built with ❀️ using Next.js, OpenAI, and modern web technologies

About

Concierge is a comprehensive AI assistant that serves as your personal guide to Dubai's activities, dining, entertainment, and lifestyle experiences. Built with cutting-edge AI technologies, it provides both text and voice-based interactions to help users find the perfect experiences in Dubai.

Topics

Resources

Stars

Watchers

Forks