An AI-powered restaurant recommendation chatbot built using Retrieval-Augmented Generation (RAG). Instead of relying solely on an LLM's knowledge, the chatbot retrieves relevant restaurant information from a Pinecone vector database using semantic search and generates context-aware responses with Groq's Llama 3.3 model.
- Semantic restaurant search using vector embeddings
- Retrieval-Augmented Generation (RAG)
- Pinecone Vector Database integration
- Hugging Face embedding generation
- Groq Llama 3.3 for response generation
- REST APIs built with Express.js
- Swiggy API integration for restaurant data
- CORS-free backend proxy
- Environment variable based configuration
- Node.js
- Express.js
- Groq API (Llama 3.3 70B)
- Hugging Face Inference API
- Retrieval-Augmented Generation (RAG)
- Pinecone
- Swiggy Public API
- REST APIs
User Query
│
▼
Express Backend
│
▼
Generate Embedding (Hugging Face)
│
▼
Query Pinecone Vector DB
│
Retrieve Relevant Restaurants
│
▼
Build Prompt with Retrieved Context
│
▼
Groq Llama 3.3 Generates Answer
│
▼
Response to Frontend
src/
│
├── server.js # Express server
├── pineconeClient.js # Pinecone + Embeddings
│
.env
package.json
GET /api/get-restaurants
Fetches restaurant data from the Swiggy API.
POST /api/upsert-restaurants
Stores restaurant vectors inside Pinecone.
POST /api/chatbot
Example Request
{
"message":"Suggest a good pizza restaurant"
}GET /test
Returns restaurants retrieved from Pinecone.
GET /api/menu/:id
Returns the selected restaurant's menu.