A sophisticated Retrieval-Augmented Generation (RAG) system that provides intelligent restaurant recommendations using vector search and conversational AI.
- Vector-Powered Search: Semantic similarity search using Google Gemini embeddings
- Intelligent Recommendations: Context-aware restaurant suggestions with explanations
- Multi-Modal Queries: Support for restaurant discovery, detailed reviews, and Q&A
- Real-time Processing: Fast vector search with Elasticsearch backend
- Flexible Architecture: Both direct Elasticsearch and LlamaIndex implementations
The system uses a restaurant reviews dataset with the following structure:
business_name: Restaurant nametext: Customer review textrating: Numerical rating (1-5)rating_category: Review category (taste, menu, atmosphere, etc.)
- Vector Store: Elasticsearch with cosine similarity
- Embedding Pipeline: Text → Gemini embeddings → 768-dimensional vectors
- Retrieval: KNN search for semantically similar reviews
- Generation: Gemini LLM for contextual responses
User Query → Embedding → Vector Search → Context Retrieval → LLM Generation → Response
Returns restaurant recommendations based on semantic search
- Input: Natural language query
- Output: JSON with restaurant names, reviews, and notes
Answers specific questions about a restaurant
- Input: Restaurant name and question
- Output: JSON with restaurant-specific answer
Provides a comprehensive restaurant summary
- Input: Restaurant name
- Output: JSON with highlights, dishes, and overall rating
Handles general food-related questions
- Input: General query
- Output: JSON with informative answer
- Vector Dimensions: 768 (Gemini embedding size)
- Search Latency: Sub-second response times
- Index Size: 1,100 restaurant reviews
- Similarity Method: Cosine similarity for semantic matching
- Multi-language support
- Image-based restaurant recommendations
- Real-time review ingestion
- Advanced filtering (cuisine type, price range, location)
- User preference learning
- Integration with restaurant APIs
- Google AI for Gemini API
- Elasticsearch for vector search capabilities
- LlamaIndex for RAG framework
- Open source community for tools and libraries