This project is a Recommendation System that allows users to:
- Insert product data into MongoDB and Qdrant vector database.
- Search for similar products using vector-based similarity search.
- Filter results based on attributes like color and price.
- Analyze Transactions to suggest related products based on purchasing behavior.
- Search Online for related items from Amazon using Tavily API.
- MongoDB Integration: Stores product and transaction data.
- Vector Search with Qdrant: Embeds product descriptions and enables similarity-based retrieval.
- User Transactions Analysis: Identifies frequently bought-together items.
- Tavily Web Search: Fetches related product listings from Amazon.
- FastAPI Backend: Provides endpoints for inserting data, searching, and recommendations.
- FastAPI - Backend framework
- MongoDB - NoSQL database for storing products & transactions
- Qdrant - Vector database for similarity search
- Tavily API - Online search integration
- Python 3.12 - Programming language
git clone https://github.com/yourusername/recommendation-system.git
cd recommendation-systempython -m venv venv
source venv/bin/activate # On Windows, use: venv\Scripts\activatepip install -r requirements.txtCreate a .env file in the root directory:
QDRANT_URI="https://"
QDRANT_API_KEY="euJhbGc**************"
MONGO_URI="mongodb://"
COHERE_API_KEY="vrx0*****************"
VECTOR_DB_PORT=6***
VECTOR_DB_URI="http:/"
TAVILYAPI_KEY="tvly-dev-*************"
MONGO_DB_NAME=""Make sure MongoDB and Qdrant are running locally or on your cloud provider.
uvicorn app.main:app --reloadPOST /insert_item{
"name": "Yale Forklift",
"description": "رافعات شوكية لنقل المواد الثقيلة",
"material": "Metal",
"color": "Yellow",
"price": 250000.0,
"related_items": ["Pallet Jack", "Digital Scale"],
"category": "Heavy Machinery"
}GET /search?query=Forklift&filter_color=Yellow&filter_price_max=300000GET /related_items/{item_id}GET /web_search?query=Forklift site:amazon.com-
🔹 Enhance Recommendation Algorithms: Implement collaborative filtering techniques to offer more personalized product suggestions based on user behavior.
-
🔹 ML-Powered Product Prediction: Develop a machine learning model to predict and recommend products to users based on their preferences and historical data.
-
🔹 Front-End Integration: Build and integrate a user-friendly interface to display recommendations and interact with the system seamlessly.
-
🔹 Support Multiple Languages: Add multi-language support to broaden accessibility and make the platform user-friendly across different regions.