2026-03-13 09:38:18 +08:00
|
|
|
|
package config
|
|
|
|
|
|
|
2026-03-24 05:18:30 +08:00
|
|
|
|
// HotRankConfig 热门榜定时重算(仅 Redis ZSET + 分层缓存中的 Top ID 列表,不写库)
|
|
|
|
|
|
type HotRankConfig struct {
|
|
|
|
|
|
Enabled bool `mapstructure:"enabled"`
|
|
|
|
|
|
RefreshIntervalSeconds int `mapstructure:"refresh_interval_seconds"`
|
|
|
|
|
|
// TopN 写入缓存的热门条数(ZSET 与 top_ids 列表长度上限)
|
|
|
|
|
|
TopN int `mapstructure:"top_n"`
|
|
|
|
|
|
// RecentWindowHours 候选池:该时间窗内新发的帖子 ID 会参与本轮重算
|
|
|
|
|
|
RecentWindowHours int `mapstructure:"recent_window_hours"`
|
|
|
|
|
|
// RecentFetchLimit 时间窗内最多拉取的帖子 ID 数(按 created_at 倒序)
|
|
|
|
|
|
RecentFetchLimit int `mapstructure:"recent_fetch_limit"`
|
|
|
|
|
|
// CandidateCap 候选 ID 合并后的上限(上届 Top + 新帖去重后截断)
|
|
|
|
|
|
CandidateCap int `mapstructure:"candidate_cap"`
|
2026-03-13 09:38:18 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// OpenAIConfig OpenAI 配置
|
|
|
|
|
|
type OpenAIConfig struct {
|
|
|
|
|
|
Enabled bool `mapstructure:"enabled"`
|
|
|
|
|
|
BaseURL string `mapstructure:"base_url"`
|
|
|
|
|
|
APIKey string `mapstructure:"api_key"`
|
|
|
|
|
|
ModerationModel string `mapstructure:"moderation_model"`
|
|
|
|
|
|
ModerationMaxImagesPerRequest int `mapstructure:"moderation_max_images_per_request"`
|
|
|
|
|
|
RequestTimeout int `mapstructure:"request_timeout"`
|
|
|
|
|
|
StrictModeration bool `mapstructure:"strict_moderation"`
|
|
|
|
|
|
}
|
2026-04-21 22:31:30 +08:00
|
|
|
|
|
|
|
|
|
|
// TencentTMSConfig 腾讯云文本内容安全配置(作为 OpenAI 审核的备用)
|
|
|
|
|
|
type TencentTMSConfig struct {
|
|
|
|
|
|
Enabled bool `mapstructure:"enabled"`
|
|
|
|
|
|
SecretID string `mapstructure:"secret_id"`
|
|
|
|
|
|
SecretKey string `mapstructure:"secret_key"`
|
|
|
|
|
|
Region string `mapstructure:"region"`
|
|
|
|
|
|
BizType string `mapstructure:"biz_type"`
|
|
|
|
|
|
Timeout int `mapstructure:"timeout"`
|
|
|
|
|
|
}
|