Redis-powered restaurant discovery with intelligent dining assistance.
An AI-powered restaurant discovery platform that combines Redis's speed with LangGraph's intelligent workflow orchestration. Get personalized restaurant recommendations, smart dining suggestions, and lightning-fast responses through semantic caching.
- Node.js + Express (Backend API)
- Redis (Restaurant store, agentic AI memory, conversational history, and semantic caching with Redis LangCache)
- OpenAI API (GPT-4 for intelligent responses and embeddings for vector search)
- LangGraph (AI workflow orchestration)
- HTML + CSS + Vanilla JS (Frontend)
- Smart Restaurant Discovery: AI-powered assistant helps you find restaurants, discover cuisines, and manage your reservations. Both text and vector-based search across restaurants
- Dining Intelligence: Get restaurant recommendations with detailed information for any cuisine or occasion using RAG (Retrieval Augmented Generation)
- Demo Reservation System: Reservation management - add, view, and manage restaurant reservations (Simplified demo implementation, not a production-ready reservation system)
- Redis as memory layer: For fast data retrieval
- Vector Search: Find restaurants using AI-powered similarity search
- Semantic Cache: Similar queries return instantly using Redis LangCache
- LangGraph Workflows: AI agent routing, tool selection
- Multi-tool Agent: Restaurant tools, search tools, reservation tools, and knowledge tools
Follow the setup instructions below to get started.
- Redis: Use Redis Cloud (no installation required)
- Redis LangCache API: Get LangCache credentials
- OpenAI API Key: Create an API key
- Node.js (v18 or higher): Download & Install Node.js
-
Clone and setup
git clone <repository-url> cd relish npm install
-
Configure environment
cp .env.example .env # Edit .env with your Redis URL, OpenAI key, and LangCache credentials -
Load restaurant data
npm run load-restaurants
-
Start the server
npm start
-
Open your browser
http://localhost:3000
β
βββ package.json
βββ index.js
βββ config.js
βββ services/
β βββ restaurants/ # Restaurant Business Component
β β βββ api/ # REST API endpoints
β β βββ domain/ # Business logic
β β βββ data/ # Data access layer
β βββ reservations/ # Reservation Business Component
β β βββ api/
β β βββ domain/
β β βββ data/
β βββ chat/ # Chat/Cache Business Component
β β βββ api/
β β βββ domain/
β β βββ data/
β βββ users/ # User Business Component
β β βββ domain/
β β βββ data/
β βββ ai/ # Agentic AI Layer
β βββ routes/
βββ client/ # Frontend assets
βββ views/ # HTML and Handlebars templates
βββ scripts/ # Data loading scripts
βββ README.md # This file
POST /api/chat- Main chat interface for AI restaurant assistantGET /api/restaurants/search- Search restaurants with text/vector similarityPOST /api/reservations/add- Add restaurant reservations (demo implementation)GET /api/reservations- View reservation history (demo implementation)DELETE /api/reservations- Cancel reservations (demo implementation)
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes following Conventional Commits (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Ashwin Hariharan - @booleanhunter
This project is licensed under the MIT License - see the LICENSE file for details.
If you find a bug or have a feature request, please open an issue in the repository.