Generic Purpose Open Source Recommender System
Project description
Yodu.ai
A generic purpose Recommender System that can be configured for any UseCase. ExampleUseCase:
- Social Platforms
- Ecommerce Websites
- Video Portals
- News Aggregator Websitesx
If you want to contribute just email me at shashank[at]yodu.ai . Happy to share DB and other access.
Learn more:
Getting Started:
Creating your first recommendation engine.
pip install yodu
Interacting with Yodu Recommendation Engine
from yodu import load_test_items, load_test_actions
import yodu
yodu.init(HOST="", PORT="")
recommender = yodu.create_recommender(name="getting_started")
recommender = yodu.get_recommender(name="getting_started")
# Add Items to Recommender
items = load_test_items()
recommender.add_items(items)
# Add Actions to Recommender
actions = load_test_actions()
recommender.add_actions(items)
# Enable Yodu's built-in Providers
recommender.enable_provider(name="TopItemsByUserAction")
# Add provider from Source (Coming Soon)
recommender.add_provider(name="CUSTOM_PROVIDER",
source="https://github.com/thegeeklabs/yodu.ai/tree/dev/src/yodu/provider/some_dir")
recommender.enable_provider(name="CUSTOM_PROVIDER")
algo_spec = {
"TOP_BY_PREVIOUS_LIKED_SOURCES": {
"provider": "TopItemsByUserAction",
"duration": "24h",
"config": {
"action_type": "LIKE",
"tag": "source"
},
"weight": 1
},
"TOP_BY_PREVIOUS_LIKED_CATEGORIES": {
"provider": "TopItemsByUserAction",
"duration": "30h",
"config": {
"action_type": "LIKE",
"tag": "category"
},
"weight": 1
},
"TOP_BY_PREVIOUS_READ_CATEGORIES": {
"provider": "TopItemsByUserAction",
"duration": "30h",
"config": {
"action_type": "READ",
"tag": "category"
},
"weight": 1
},
"TOP_BY_PREVIOUS_READ_CATEGORIES": {
"provider": "CUSTOM_PROVIDER",
"duration": "30h",
"config": {
"action_type": "READ",
"tag": "category"
},
"weight": 1
}
}
recommender.add_algo_spec(name="first_algo_spec", config=algo_spec)
items = recommender.get_items(user_id="1", algo_spec="first_algo_spec")
Coming Soon
Deploying the Server
Deploying a Yodu Recommendation Server(With ElasticSearch)
git clone <repo>
cd yodu
kubectl deploy <coming_soon>
Deploying a Yodu Recommendation Server(Using your own ElasticSearch)
git clone <repo>
cd yodu
kubectl deploy <coming_soon>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
yodu-0.0.1.tar.gz
(10.9 kB
view hashes)
Built Distribution
yodu-0.0.1-py3-none-any.whl
(12.4 kB
view hashes)