gorse  by gorse-io

Universal recommendation engine for online services

Created 7 years ago
9,290 stars

Top 5.5% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

Gorse is an open-source, Go-based recommender system engine designed for seamless integration into diverse online services. It automates model training using user, item, and interaction data to generate personalized recommendations, offering a universal solution to enhance user engagement and content discovery.

How It Works

Gorse employs a hybrid architecture featuring single-node training and distributed prediction. It leverages external databases like MySQL, MongoDB, Postgres, or ClickHouse for data storage, with Redis for caching. The cluster comprises master nodes (training, management), server nodes (API, real-time recommendations), and worker nodes (offline recommendations), enabling horizontal scaling during the prediction phase. This design balances training efficiency with scalable inference.

Quick Start & Requirements

  • Primary Install/Run: A playground mode is available via Docker:
    docker run -p 8088:8088 zhenghaoz/gorse-in-one --playground
    
  • Prerequisites: Docker.
  • Access: The GUI dashboard is accessible at http://localhost:8088.
  • Demo: Example curl commands demonstrate adding user feedback and fetching recommendations.
  • Links: Official documents, demo, Discord, and GitHub Discussions are linked for further information.

Highlighted Details

  • Supports multiple recommendation strategies: latest, user-to-user, item-to-item, collaborative filtering.
  • Features AutoML for automatic best model selection.
  • Enables distributed prediction for horizontal scaling.
  • Exposes RESTful APIs for data CRUD operations and recommendation requests.
  • Includes online evaluation metrics for recommendation performance analysis.
  • Provides a GUI dashboard for data management and system monitoring.

Maintenance & Community

Contributions are actively encouraged through bug reports, advice, and pull requests, with guidance provided in CONTRIBUTING.md. Community support and discussion are available via Discord and GitHub Discussions.

Licensing & Compatibility

The provided README does not specify a software license. Consequently, licensing terms for commercial use or integration with closed-source projects remain unclear.

Limitations & Caveats

Model training is confined to a single node, potentially posing a scalability challenge for extremely large datasets. The system's functionality is dependent on the availability and configuration of external database and caching services.

Health Check
Last Commit

1 day ago

Responsiveness

Inactive

Pull Requests (30d)
10
Issues (30d)
3
Star History
58 stars in the last 30 days

Explore Similar Projects

Starred by Chip Huyen Chip Huyen(Author of "AI Engineering", "Designing Machine Learning Systems"), Eric Jang Eric Jang(VP AI at 1X), and
2 more.

civitai by civitai

0.2%
7k
Platform for sharing AI models
Created 3 years ago
Updated 15 hours ago
Feedback? Help us improve.