refactor: remove Gorse integration and implement HotRank feature
Some checks failed
Build Backend / build-docker (push) Has been cancelled
Build Backend / build (push) Has been cancelled

- Removed Gorse-related configurations, handlers, and dependencies from the codebase.
- Introduced HotRank feature with configuration options for ranking posts based on recent activity.
- Updated application structure to support HotRank processing, including new caching mechanisms and database interactions.
- Cleaned up related DTOs and repository methods to reflect the removal of Gorse and the addition of HotRank functionality.
This commit is contained in:
lafay
2026-03-24 05:18:30 +08:00
parent b41567a39a
commit 176cd20847
32 changed files with 735 additions and 1128 deletions

View File

@@ -1,15 +1,17 @@
package config
// GorseConfig Gorse 推荐系统配置
type GorseConfig struct {
Address string `mapstructure:"address"`
APIKey string `mapstructure:"api_key"`
Enabled bool `mapstructure:"enabled"`
Dashboard string `mapstructure:"dashboard"`
ImportPassword string `mapstructure:"import_password"`
EmbeddingAPIKey string `mapstructure:"embedding_api_key"`
EmbeddingURL string `mapstructure:"embedding_url"`
EmbeddingModel string `mapstructure:"embedding_model"`
// 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"`
}
// OpenAIConfig OpenAI 配置