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/mdb"
"kurumibot/database/psql" "kurumibot/database/psql"
"kurumibot/database/red" "kurumibot/database/red"
"kurumibot/utils"
"kurumibot/utils/ai" "kurumibot/utils/ai"
"strconv" "strconv"
"strings" "strings"
@@ -602,17 +601,49 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
compressMethod := rpUser.CompressMethod compressMethod := rpUser.CompressMethod
if compressMethod == "messages" { if compressMethod == "messages" {
if counter+2 >= rpUser.CompressLimit { 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 { 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) { func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
m := ctx.EditCallback("Запущено сжатие чата…", nil) 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) redisRpRep := red.NewRPRepository(db)
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID) waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
if waifuId == 0 { if waifuId == 0 {
@@ -648,36 +679,13 @@ func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
ctx.Error(err) ctx.Error(err)
} }
if len(res.Choices) == 0 { if len(res.Choices) == 0 {
m.Edit("Не удалось сжать чат") ctx.Answer("Не удалось сжать чат")
return return
} }
compressedHistory := strings.TrimSpace(res.Choices[0].Message.Content) compressedHistory := strings.TrimSpace(res.Choices[0].Message.Content)
compressedHistory = strings.ReplaceAll(compressedHistory, "*", "") compressedHistory = strings.ReplaceAll(compressedHistory, "*", "")
m.Edit(compressedHistory) ctx.Answer(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)
} }
var messagesMethodCount = []int{ var messagesMethodCount = []int{