Skip to main content

Generic Purpose Open Source Recommender System

Project description

Yodu.ai

PyPI version

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

import yodu
from examples.steem.helpers import load_test_items, load_test_actions
from models.request import Request

recommender = yodu.create_recommender(name="example")

recommender = yodu.get_recommender(name="example")

# Add Items to Recommender
items = load_test_items()
recommender.item.add(items)

# Add Actions to Recommender
actions = load_test_actions()
recommender.action.add(actions)

# Enable Yodu's built-in Providers
recommender.provider.add(name="top_item_by_user_action")
# Add provider from Source (Coming Soon)

algo_spec = {
    "TOP_BY_PREVIOUS_LIKED_SOURCES": {
        "provider": "top_item_by_user_action",
        "duration": "24h",
        "config": {
            "action_type": "LIKE",
            "tag": "source"
        },
        "weight": 1
    },
    "TOP_BY_PREVIOUS_LIKED_CATEGORIES": {
        "provider": "top_item_by_user_action",
        "duration": "30h",
        "config": {
            "action_type": "LIKE",
            "tag": "category"
        },
        "weight": 1
    },
    "TOP_BY_PREVIOUS_READ_CATEGORIES": {
        "provider": "top_item_by_user_action",
        "duration": "30h",
        "config": {
            "action_type": "READ",
            "tag": "category"
        },
        "weight": 1
    }
}
recommender.algo_spec.set(algo_spec=algo_spec)

args = {
    "days_ago": "7"
}
request = Request(user_id="test_user_1", args=args)

items = recommender.get_items(request=request)

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.2.tar.gz (15.4 kB view hashes)

Uploaded Source

Built Distribution

yodu-0.0.2-py3-none-any.whl (20.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page