@@ -33,6 +33,8 @@ type FormValues = {
3333 w_comment : number ;
3434 w_pixels : number ;
3535 w_bookmark_rate : number ;
36+ w_freshness : number ;
37+ w_bookmark_velocity : number ;
3638
3739 m_ai : number ;
3840 m_non_ai : number ;
@@ -50,14 +52,16 @@ const PICK_MODE_VALUES = new Set<FormValues["pick_mode"]>(["weighted", "best"]);
5052
5153const DEFAULTS : Omit < FormValues , "preview_seed" > = {
5254 random_strategy : "quality" ,
53- random_quality_samples : 5 ,
55+ random_quality_samples : 12 ,
5456 pick_mode : "weighted" ,
5557 temperature : 1.0 ,
5658 w_bookmark : 4.0 ,
5759 w_view : 0.5 ,
5860 w_comment : 2.0 ,
5961 w_pixels : 1.0 ,
6062 w_bookmark_rate : 3.0 ,
63+ w_freshness : 1.0 ,
64+ w_bookmark_velocity : 1.2 ,
6165 m_ai : 1.0 ,
6266 m_non_ai : 1.0 ,
6367 m_unknown_ai : 1.0 ,
@@ -147,6 +151,8 @@ export function RecommendationPage() {
147151 w_comment : asFloat ( scoreWeights . comment , DEFAULTS . w_comment ) ,
148152 w_pixels : asFloat ( scoreWeights . pixels , DEFAULTS . w_pixels ) ,
149153 w_bookmark_rate : asFloat ( scoreWeights . bookmark_rate , DEFAULTS . w_bookmark_rate ) ,
154+ w_freshness : asFloat ( scoreWeights . freshness , DEFAULTS . w_freshness ) ,
155+ w_bookmark_velocity : asFloat ( scoreWeights . bookmark_velocity , DEFAULTS . w_bookmark_velocity ) ,
150156 m_ai : asFloat ( multipliers . ai , DEFAULTS . m_ai ) ,
151157 m_non_ai : asFloat ( multipliers . non_ai , DEFAULTS . m_non_ai ) ,
152158 m_unknown_ai : asFloat ( multipliers . unknown_ai , DEFAULTS . m_unknown_ai ) ,
@@ -166,7 +172,10 @@ export function RecommendationPage() {
166172 "+ w_comment * ln(1 + comment_count)" ,
167173 "+ w_pixels * ln(1 + (width*height)/1_000_000)" ,
168174 "+ w_bookmark_rate * ln(1 + (bookmark_count/view_count)*1000)" ,
175+ "+ w_freshness * exp(-age_days / 21)" ,
176+ "+ w_bookmark_velocity * ln(1 + bookmark_count / (age_days + 2))" ,
169177 "" ,
178+ "说明:有 seed 时,为保证可复现,会自动关闭 freshness/bookmark_velocity 两项。" ,
170179 "最终得分会再乘以“类别倍率”(AI/插画/漫画/动图等)。" ,
171180 "倍率=0 表示彻底不返回该类别。" ,
172181 ] . join ( "\n" ) ;
@@ -190,6 +199,8 @@ export function RecommendationPage() {
190199 comment : values . w_comment ,
191200 pixels : values . w_pixels ,
192201 bookmark_rate : values . w_bookmark_rate ,
202+ freshness : values . w_freshness ,
203+ bookmark_velocity : values . w_bookmark_velocity ,
193204 } ,
194205 multipliers : {
195206 ai : values . m_ai ,
@@ -385,6 +396,16 @@ export function RecommendationPage() {
385396 < Form . Item label = "收藏率权重(bookmark_rate)" name = "w_bookmark_rate" >
386397 < InputNumber min = { - 100 } max = { 100 } step = { 0.1 } style = { { width : 240 } } />
387398 </ Form . Item >
399+ < Form . Item label = "新鲜度权重(freshness)" name = "w_freshness" extra = "指数衰减:exp(-age_days/21),越新越加分。" >
400+ < InputNumber min = { - 100 } max = { 100 } step = { 0.1 } style = { { width : 240 } } />
401+ </ Form . Item >
402+ < Form . Item
403+ label = "收藏增长率权重(bookmark_velocity)"
404+ name = "w_bookmark_velocity"
405+ extra = "ln(1 + bookmark_count/(age_days+2)),帮助“好看的新图”被选中。"
406+ >
407+ < InputNumber min = { - 100 } max = { 100 } step = { 0.1 } style = { { width : 240 } } />
408+ </ Form . Item >
388409 </ Space >
389410
390411 < Typography . Title level = { 5 } style = { { marginTop : 12 } } >
0 commit comments