compress wip

This commit is contained in:
2026-01-29 23:05:19 +03:00
parent c3b7192516
commit 685cd12713

View File

@@ -7,7 +7,6 @@ import (
"kurumibot/database/mdb"
"kurumibot/database/psql"
"kurumibot/database/red"
"kurumibot/utils"
"kurumibot/utils/ai"
"strconv"
"strings"
@@ -602,17 +601,49 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
compressMethod := rpUser.CompressMethod
if compressMethod == "messages" {
if counter+2 >= rpUser.CompressLimit {
compress(ctx, db)
m := ctx.EditCallback("Запущено сжатие чата…", nil)
_compress(ctx, db)
m.Delete()
}
} else if compressMethod == "token" {
} else if compressMethod == "tokens" {
if tokens >= rpUser.CompressLimit*1000 {
compress(ctx, db)
m := ctx.EditCallback("Запущено сжатие чата…", nil)
_compress(ctx, db)
m.Delete()
}
}
}
func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
m := ctx.EditCallback("Запущено сжатие чата…", nil)
_compress(ctx, db)
m.Delete()
return
//chatId = uuid.New().String()
//err = redisRpRep.SetChatId(ctx.FromID, waifuId, chatId)
//if err != nil {
// ctx.Error(err)
// return
//}
//
//err = mdb.UpdateChatHistory(db, chatId, "assistant", compressedHistory)
//if err != nil {
// ctx.Error(err)
//}
//offset := utils.Min(len(history), 20)
//for _, m := range history[len(history)-offset:] {
// err = mdb.UpdateChatHistory(db, chatId, m.Role, m.Message)
// if err != nil {
// ctx.Error(err)
// }
//}
//kb := laniakea.NewInlineKeyboard(1)
//kb = kb.AddCallbackButton("Назад", "rp.chat_stat")
//kb = kb.AddCallbackButton("На главную", "rp.info")
//ctx.EditCallback("Сжатие завершено", kb)
}
func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
redisRpRep := red.NewRPRepository(db)
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
if waifuId == 0 {
@@ -648,36 +679,13 @@ func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
ctx.Error(err)
}
if len(res.Choices) == 0 {
m.Edit("Не удалось сжать чат")
ctx.Answer("Не удалось сжать чат")
return
}
compressedHistory := strings.TrimSpace(res.Choices[0].Message.Content)
compressedHistory = strings.ReplaceAll(compressedHistory, "*", "")
m.Edit(compressedHistory)
return
chatId = uuid.New().String()
err = redisRpRep.SetChatId(ctx.FromID, waifuId, chatId)
if err != nil {
ctx.Error(err)
return
}
err = mdb.UpdateChatHistory(db, chatId, "assistant", compressedHistory)
if err != nil {
ctx.Error(err)
}
offset := utils.Min(len(history), 20)
for _, m := range history[len(history)-offset:] {
err = mdb.UpdateChatHistory(db, chatId, m.Role, m.Message)
if err != nil {
ctx.Error(err)
}
}
kb := laniakea.NewInlineKeyboard(1)
kb = kb.AddCallbackButton("Назад", "rp.chat_stat")
kb = kb.AddCallbackButton("На главную", "rp.info")
ctx.EditCallback("Сжатие завершено", kb)
ctx.Answer(compressedHistory)
}
var messagesMethodCount = []int{