Skip to content

Commit 4c4a8ee

Browse files
committed
feat: dynamically update step of ai summary
1 parent 9c76079 commit 4c4a8ee

3 files changed

Lines changed: 23 additions & 6 deletions

File tree

apis/hole/apis.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -992,12 +992,12 @@ func GenerateSummary(c *fiber.Ctx) error {
992992
})
993993
}
994994
if forceRefresh {
995-
err := DeleteCache(fmt.Sprintf("AISummary_%d_v%d", id, hole.Reply-hole.Reply%config.Config.SummarySteps))
995+
err := DeleteCache(hole.SummaryCacheName())
996996
if err != nil {
997997
log.Err(err).Msg("AISummary: delete cache err")
998998
}
999999
}
1000-
if GetCache(fmt.Sprintf("AISummary_%d_v%d", id, hole.Reply-hole.Reply%config.Config.SummarySteps), &cachedData) {
1000+
if GetCache(hole.SummaryCacheName(), &cachedData) {
10011001

10021002
switch cachedData.Code {
10031003
case 1000:
@@ -1053,22 +1053,22 @@ func GenerateSummary(c *fiber.Ctx) error {
10531053
Msg("AISummary: hole id error")
10541054
cachedData.Data.HoleID = id
10551055
}
1056-
err = SetCache(fmt.Sprintf("AISummary_%d_v%d", id, hole.Reply-hole.Reply%config.Config.SummarySteps), cachedData, 24*time.Hour)
1056+
err = SetCache(hole.SummaryCacheName(), cachedData, 24*time.Hour)
10571057
if err != nil {
10581058
log.Err(err).Msg("AISummary: set cache err")
10591059
}
10601060
}
10611061
return c.Status(200).JSON(cachedData)
10621062

10631063
} else {
1064-
err := DeleteCache(fmt.Sprintf("AISummary_%d_v%d", id, hole.Reply-hole.Reply%config.Config.SummarySteps))
1064+
err := DeleteCache(hole.SummaryCacheName())
10651065
if err != nil {
10661066
log.Err(err).Msg("AISummary: delete cache err")
10671067
}
10681068
}
10691069

10701070
default:
1071-
err := DeleteCache("AISummary" + strconv.Itoa(id))
1071+
err := DeleteCache(hole.SummaryCacheName())
10721072
if err != nil {
10731073
log.Err(err).Msg("AISummary: delete cache err")
10741074
}
@@ -1185,7 +1185,7 @@ func GenerateSummary(c *fiber.Ctx) error {
11851185
case 1000, 1001:
11861186
var cache Summary
11871187
cache.Code = 1001
1188-
err := SetCache(fmt.Sprintf("AISummary_%d_v%d", id, hole.Reply-hole.Reply%config.Config.SummarySteps), cache, 24*time.Hour)
1188+
err := SetCache(hole.SummaryCacheName(), cache, 24*time.Hour)
11891189
if err != nil {
11901190
log.Err(err).Msg("AISummary: set cache err")
11911191
}

config/config.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ var Config struct {
5959
SummaryFloorLimit int `env:"SUMMARY_FLOOR_LIMIT" envDefault:"15"`
6060
SummaryContentLimit int64 `env:"SUMMARY_CONTENT_LIMIT" envDefault:"500"`
6161
SummarySteps int `env:"SUMMARY_STEPS" envDefault:"5"`
62+
SummaryReplyBoundary1 int `env:"SUMMARY_REPLY_BOUNDARY_1" envDefault:"50"`
63+
SummaryReplyBoundary2 int `env:"SUMMARY_REPLY_BOUNDARY_1" envDefault:"200"`
64+
SummaryReplyBoundary3 int `env:"SUMMARY_REPLY_BOUNDARY_1" envDefault:"1000"`
6265
SummaryLogLimit int `env:"SUMMARY_LOG_LIMIT" envDefault:"1000"`
6366
WhiteListUserIds []int `env:"WHITE_LIST_USER_IDS"`
6467
}

models/hole.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,20 @@ func (hole *Hole) CacheName() string {
9898
return fmt.Sprintf("hole_%d", hole.ID)
9999
}
100100

101+
func (hole *Hole) SummaryCacheName() string {
102+
var step int
103+
if hole.Reply <= config.Config.SummaryReplyBoundary1 {
104+
step = config.Config.SummarySteps
105+
} else if hole.Reply > config.Config.SummaryReplyBoundary1 && hole.Reply <= config.Config.SummaryReplyBoundary2 {
106+
step = config.Config.SummarySteps * 2
107+
} else if hole.Reply > config.Config.SummaryReplyBoundary2 && hole.Reply <= config.Config.SummaryReplyBoundary3 {
108+
step = config.Config.SummarySteps * 4
109+
} else {
110+
step = config.Config.SummarySteps * 10
111+
}
112+
return fmt.Sprintf("AISummary_%d_v%d", hole.ID, hole.Reply-hole.Reply%step)
113+
}
114+
101115
type Holes []*Hole
102116

103117
func IsHolesExist(tx *gorm.DB, holeID []int) bool {

0 commit comments

Comments
 (0)