Skip to content

Latest commit

 

History

32 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Restaurant Assistant

A modern, full-stack restaurant discovery assistant powered by AI. Built with React, TypeScript, FastAPI, and OpenAI's GPT-4o, this application helps users find and explore restaurants through an intuitive chat interface.

📸 Images

Chat Interface

Main chat interface with Chef Ava


Restaurant Cards

Multiple restaurant recommendations with detailed information


Conversation Management

Multi-conversation management

🌟 Key Features

Intelligent Restaurant Discovery

  • Personal AI-powered restaurant assistant (Chef Ava) that understands natural language queries
  • Detailed restaurant information including photos, ratings, reviews, hours, and pricing
  • Integration with Yelp's API for comprehensive and up-to-date restaurant data
  • Visual restaurant cards with multiple photos and interactive navigation

Multi-Conversation Management

  • Support for creation of different conversations
  • Conversation sidebar for easy navigation between chats
  • Auto-saving conversations
  • Ability to delete or switch between conversations
  • Conversation persistence across sessions

User Authentication & Personalization

  • Google account integration for secure authentication
  • Personal conversation history tied to user accounts
  • Separate conversation spaces for different users
  • Profile picture and name integration from Google account

Chat Features

  • Real-time streaming responses
  • Message editing and deletion capabilities
  • Fullscreen mode for better visibility
  • Minimizable chat widget
  • Markdown support in responses

🛠️ Tech Stack

Frontend

  • React 18 with TypeScript
  • TailwindCSS
  • Google OAuth

Backend

  • Python 3.11+
  • FastAPI
  • SQLite
  • OpenAI API
  • Yelp Fusion API

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • Python 3.11+
  • pip
  • OpenAI API key
  • Google OAuth credentials
  • Yelp API key

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/restaurant-assistant.git
cd restaurant-assistant
  1. Create and Activate New Virtual Env
python3.12 -m venv venv

source venv/bin/activate  # On Unix/MacOS
# or
.\venv\Scripts\activate  # On Windows
  1. Setup Backend:
cd backend
pip install -r requirements.txt
  1. Create your .env file in the backend directory:
# backend/.env
touch .env
  1. Add API keys inside .env file:
OPENAI_API_KEY=your_openai_key
GOOGLE_CLIENT_ID=your_google_client_id
YELP_API_KEY=your_yelp_api_key
  1. Start Backend Server
uvicorn app.main:app --reload
  1. In a new termial - Setup Frontend:
source venv/bin/activate  # On Unix/MacOS
# or
.\venv\Scripts\activate  # On Windows

cd frontend
npm install
npm run dev

The application will be available at:

🔒 Security Features

  • Google OAuth2 authentication
  • CORS protection

📚 API Documentation

Key Endpoints

Authentication

  • POST /api/auth/google-login: Google OAuth login

Messages

  • POST /api/messages/stream: Stream chat messages
  • PUT /api/messages/{message_id}: Update message
  • DELETE /api/messages/{message_id}: Delete message

Conversations

  • GET /api/messages/conversations: Get user conversations
  • POST /api/messages/new-conversation: Create new conversation
  • DELETE /api/messages/conversations/{conversation_id}: Delete conversation

Restaurant Search

  • GET /api/yelp/businesses/search: Search restaurants
  • GET /api/yelp/businesses/{business_id}: Get business details

Full API documentation is available at /docs when running the backend server.

👨‍💻 Contributors

About

A restaurant discovery AI assistant powered by GPT-4o, function calling, and the Yelp API. LLM powered search and web data retrieval.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages