Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( UpdateUserRecommendTotal = promauto.NewGauge(prometheus.GaugeOpts{ Namespace: "gorse", Subsystem: "worker", Name: "update_user_recommend_total", }) OfflineRecommendStepSecondsVec = promauto.NewGaugeVec(prometheus.GaugeOpts{ Namespace: "gorse", Subsystem: "worker", Name: "offline_recommend_step_seconds", }, []string{"step"}) CollaborativeFilteringIndexRecall = promauto.NewGauge(prometheus.GaugeOpts{ Namespace: "gorse", Subsystem: "worker", Name: "collaborative_filtering_index_recall", }) )
Functions ¶
This section is empty.
Types ¶
type FeedbackCache ¶ added in v0.3.0
type FeedbackCache struct { Types []string Cache cmap.ConcurrentMap Client data.Database }
FeedbackCache is the cache for user feedbacks.
func NewFeedbackCache ¶ added in v0.3.0
func NewFeedbackCache(client data.Database, feedbackTypes ...string) *FeedbackCache
NewFeedbackCache creates a new FeedbackCache.
func (*FeedbackCache) GetUserFeedback ¶ added in v0.3.0
func (c *FeedbackCache) GetUserFeedback(userId string) ([]string, error)
GetUserFeedback gets user feedback from cache or database.
type ItemCache ¶ added in v0.3.0
ItemCache is alias of map[string]data.Item.
func (ItemCache) IsAvailable ¶ added in v0.3.0
IsAvailable means the item exists in database and is not hidden.
type LocalCache ¶
type LocalCache struct { WorkerName string // contains filtered or unexported fields }
LocalCache for the worker node.
func LoadLocalCache ¶
func LoadLocalCache(path string) (*LocalCache, error)
LoadLocalCache loads cache from a local file.
func (*LocalCache) WriteLocalCache ¶
func (c *LocalCache) WriteLocalCache() error
WriteLocalCache writes cache to a local file.
type Worker ¶
type Worker struct {
// contains filtered or unexported fields
}
Worker manages states of a worker node.
func NewWorker ¶
func NewWorker(masterHost string, masterPort int, httpHost string, httpPort, jobs int, cacheFile string) *Worker
NewWorker creates a new worker node.
func (*Worker) Recommend ¶
Recommend items to users. The workflow of recommendation is: 1. Skip inactive users. 2. Load historical items. 3. Load positive items if KNN used. 4. Generate recommendation. 5. Save result. 6. Insert cold-start items into results. 7. Rank items in results by click-through-rate. 8. Refresh cache.
func (*Worker) ServeMetrics ¶
func (w *Worker) ServeMetrics()
ServeMetrics serves Prometheus metrics.