<<<<<<< HEAD
An intelligent price comparison platform that uses web scraping, vector search, and generative AI to find you the best deals across multiple e-commerce sites.
- AI-Powered Search: Natural language product search across multiple retailers
- Smart Recommendations: Gemini AI generates personalized shopping recommendations
- Vector Search: FAISS-based semantic similarity for finding truly comparable products
- Multi-Source Comparison: Scrapes and compares prices from Amazon, eBay, and more
- Instant Savings: Shows estimated savings and quality ratings for alternatives
- Frontend: Next.js 16, React 19, Tailwind CSS
- Backend: Next.js API Routes, Node.js
- AI: Google Gemini API for recommendations and embeddings
- Vector Search: FAISS for semantic product matching
- Web Scraping: Cheerio for HTML parsing (with planned integration of ScrapingBee/ZenRows for production)
- Deployment: Vercel
```bash git clone cd priceai npm install ```
Create a .env.local file with your API keys:
```env GEMINI_API_KEY=your_gemini_api_key ```
Get your Gemini API key from Google AI Studio
```bash npm run dev ```
Visit http://localhost:3000 to see the app.
``` app/ ├── api/ │ ├── search/ # Product search endpoint │ ├── vectorize/ # Vector store management │ ├── similar/ # Semantic search │ ├── recommend/ # AI recommendations │ └── insights/ # AI-generated insights ├── results/ # Results page └── page.tsx # Home page
components/ ├── product-card.tsx # Product display component └── recommendation-card.tsx
lib/ ├── scraper.ts # Web scraping utilities ├── vector-store.ts # FAISS vector database ├── gemini.ts # Gemini API integration └── types.ts # TypeScript types ```
POST /api/search- Search for productsPOST /api/vectorize- Add products to vector storePOST /api/similar- Semantic searchPOST /api/recommend- Generate AI recommendationsPOST /api/insights- Get AI insights about productsGET /api/products/index- View indexed vectorsPOST /api/products/clear- Clear vector store
```bash npm run build vercel deploy ```
- Go to your Vercel project settings
- Add
GEMINI_API_KEYenvironment variable - Redeploy
For production, consider:
-
Use a proxy service for scraping:
- ScrapingBee
- ZenRows
- Handles anti-bot measures and rate limiting
-
Use persistent vector storage:
- Supabase for vector storage
- Pinecone for managed vector DB
- Self-hosted Qdrant
-
Add caching:
- Use Redis for caching search results
- Implement ISR (Incremental Static Regeneration)
-
Monitor and rate limit:
- Add request rate limiting
- Monitor API usage and costs
MIT
Product recommendation system
3aa010f443030d2f9fc59d124b7481dedb5b15f7