-
Notifications
You must be signed in to change notification settings - Fork 26
/
gorse-config.docker.compose.toml
252 lines (176 loc) · 9.28 KB
/
gorse-config.docker.compose.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
[database]
# The database for caching, support Redis, MySQL, Postgres and MongoDB:
# redis://<user>:<password>@<host>:<port>/<db_number>
# rediss://<user>:<password>@<host>:<port>/<db_number>
# redis+cluster://<user>:<password>@<host1>:<port1>,<host2>:<port2>,...,<hostN>:<portN>
# postgres://bob:[email protected]:5432/mydb?sslmode=verify-full
# postgresql://bob:[email protected]:5432/mydb?sslmode=verify-full
# mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
# mongodb+srv://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
cache_store = "redis://localhost:6379/0"
# The database for persist data, support MySQL, Postgres, ClickHouse and MongoDB:
# mysql://[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
# postgres://bob:[email protected]:5432/mydb?sslmode=verify-full
# postgresql://bob:[email protected]:5432/mydb?sslmode=verify-full
# clickhouse://user:password@host[:port]/database?param1=value1&...¶mN=valueN
# chhttp://user:password@host[:port]/database?param1=value1&...¶mN=valueN
# chhttps://user:password@host[:port]/database?param1=value1&...¶mN=valueN
# mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
# mongodb+srv://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
data_store = "mysql://gorse:gorse_pass@tcp(localhost:3306)/gorse"
# The naming prefix for tables (collections, keys) in databases. The default value is empty.
table_prefix = "gorse_"
# The naming prefix for tables (collections, keys) in cache storage databases. The default value is `table_prefix`.
cache_table_prefix = "gorse_"
# The naming prefix for tables (collections, keys) in data storage databases. The default value is `table_prefix`.
data_table_prefix = "gorse_"
[master]
# GRPC port of the master node. The default value is 8086.
port = 8086
# gRPC host of the master node. The default values is "0.0.0.0".
host = "0.0.0.0"
# HTTP port of the master node. The default values is 8088.
http_port = 8088
# HTTP host of the master node. The default values is "0.0.0.0".
http_host = "0.0.0.0"
# AllowedDomains is a list of allowed values for Http Origin.
# The list may contain the special wildcard string ".*" ; all is allowed
# If empty all are allowed.
http_cors_domains = []
# AllowedMethods is either empty or has a list of http methods names. Checking is case-insensitive.
http_cors_methods = []
# Number of working jobs in the master node. The default value is 1.
n_jobs = 3
# Meta information timeout. The default value is 10s.
meta_timeout = "10s"
# Username for the master node dashboard.
dashboard_user_name = ""
# Password for the master node dashboard.
dashboard_password = ""
# Secret key for admin APIs (SSL required).
admin_api_key = ""
[server]
# Default number of returned items. The default value is 10.
default_n = 3
# Secret key for RESTful APIs (SSL required).
api_key = "5105502fc46a411c896aa5b50c31e951"
# Clock error in the cluster. The default value is 5s.
clock_error = "5s"
# Insert new users while inserting feedback. The default value is true.
auto_insert_user = true
# Insert new items while inserting feedback. The default value is true.
auto_insert_item = true
# Server-side cache expire time. The default value is 10s.
cache_expire = "5s"
[recommend]
# The cache size for recommended/popular/latest items. The default value is 10.
cache_size = 100
# Recommended cache expire time. The default value is 72h.
cache_expire = "12h"
[recommend.data_source]
# The feedback types for positive events.
positive_feedback_types = ["favorite","comment"]
# The feedback types for read events.
read_feedback_types = ["read"]
# The time-to-live (days) of positive feedback, 0 means disabled. The default value is 0.
positive_feedback_ttl = 0
# The time-to-live (days) of items, 0 means disabled. The default value is 0.
item_ttl = 0
[recommend.popular]
# The time window of popular items. The default values is 4320h.
popular_window = "24h"
[recommend.user_neighbors]
# The type of neighbors for users. There are three types:
# similar: Neighbors are found by number of common labels.
# related: Neighbors are found by number of common liked items.
# auto: If a user have labels, neighbors are found by number of common labels.
# If this user have no labels, neighbors are found by number of common liked items.
# The default value is "auto".
neighbor_type = "similar"
# Enable approximate user neighbor searching using vector index. The default value is true.
enable_index = true
# Minimal recall for approximate user neighbor searching. The default value is 0.8.
index_recall = 0.8
# Maximal number of fit epochs for approximate user neighbor searching vector index. The default value is 3.
index_fit_epoch = 3
[recommend.item_neighbors]
# The type of neighbors for items. There are three types:
# similar: Neighbors are found by number of common labels.
# related: Neighbors are found by number of common users.
# auto: If a item have labels, neighbors are found by number of common labels.
# If this item have no labels, neighbors are found by number of common users.
# The default value is "auto".
neighbor_type = "similar"
# Enable approximate item neighbor searching using vector index. The default value is true.
enable_index = true
# Minimal recall for approximate item neighbor searching. The default value is 0.8.
index_recall = 0.8
# Maximal number of fit epochs for approximate item neighbor searching vector index. The default value is 3.
index_fit_epoch = 3
[recommend.collaborative]
# Enable approximate collaborative filtering recommend using vector index. The default value is true.
enable_index = true
# Minimal recall for approximate collaborative filtering recommend. The default value is 0.9.
index_recall = 0.9
# Maximal number of fit epochs for approximate collaborative filtering recommend vector index. The default value is 3.
index_fit_epoch = 3
# The time period for model fitting. The default value is "60m".
model_fit_period = "10m"
# The time period for model searching. The default value is "360m".
model_search_period = "60m"
# The number of epochs for model searching. The default value is 100.
model_search_epoch = 100
# The number of trials for model searching. The default value is 10.
model_search_trials = 10
# Enable searching models of different sizes, which consume more memory. The default value is false.
enable_model_size_search = false
[recommend.replacement]
# Replace historical items back to recommendations. The default value is false.
enable_replacement = false
# Decay the weights of replaced items from positive feedbacks. The default value is 0.8.
positive_replacement_decay = 0.8
# Decay the weights of replaced items from read feedbacks. The default value is 0.6.
read_replacement_decay = 0.6
[recommend.offline]
# The time period to check recommendation for users. The default values is 1m.
check_recommend_period = "20s"
# The time period to refresh recommendation for inactive users. The default values is 120h.
refresh_recommend_period = "1h"
# Enable latest recommendation during offline recommendation. The default value is false.
enable_latest_recommend = true
# Enable popular recommendation during offline recommendation. The default value is false.
enable_popular_recommend = false
# Enable user-based similarity recommendation during offline recommendation. The default value is false.
enable_user_based_recommend = true
# Enable item-based similarity recommendation during offline recommendation. The default value is false.
enable_item_based_recommend = false
# Enable collaborative filtering recommendation during offline recommendation. The default value is true.
enable_collaborative_recommend = true
# Enable click-though rate prediction during offline recommendation. Otherwise, results from multi-way recommendation
# would be merged randomly. The default value is false.
enable_click_through_prediction = true
# The explore recommendation method is used to inject popular items or latest items into recommended result:
# popular: Recommend popular items to cold-start users.
# latest: Recommend latest items to cold-start users.
# The default values is { popular = 0.0, latest = 0.0 }.
explore_recommend = { popular = 0.1, latest = 0.2 }
[recommend.online]
# The fallback recommendation method is used when cached recommendation drained out:
# item_based: Recommend similar items to cold-start users.
# popular: Recommend popular items to cold-start users.
# latest: Recommend latest items to cold-start users.
# Recommenders are used in order. The default values is ["latest"].
fallback_recommend = ["item_based", "latest"]
# The number of feedback used in fallback item-based similar recommendation. The default values is 10.
num_feedback_fallback_item_based = 10
[tracing]
# Enable tracing for REST APIs. The default value is false.
enable_tracing = true
# The type of tracing exporters should be one of "jaeger", "zipkin", "otlp" and "otlphttp". The default value is "jaeger".
exporter = "jaeger"
# The endpoint of tracing collector.
collector_endpoint = "http://jaeger:14268/api/traces"
# The type of tracing sampler should be one of "always", "never" and "ratio". The default value is "always".
sampler = "always"
# The ratio of ratio based sampler. The default value is 1.
ratio = 1