refactoring, fixes and laniakea v0.8
This commit is contained in:
@@ -4,14 +4,15 @@ import (
|
||||
"database/sql"
|
||||
"errors"
|
||||
"fmt"
|
||||
"kurumibot/database/mdb"
|
||||
"kurumibot/database/psql"
|
||||
"kurumibot/database/red"
|
||||
"kurumibot/utils"
|
||||
"kurumibot/utils/ai"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
"ymgb/database"
|
||||
"ymgb/database/mdb"
|
||||
"ymgb/database/psql"
|
||||
"ymgb/database/red"
|
||||
"ymgb/utils"
|
||||
"ymgb/utils/ai"
|
||||
|
||||
"git.nix13.pw/scuroneko/extypes"
|
||||
"git.nix13.pw/scuroneko/laniakea"
|
||||
@@ -19,8 +20,8 @@ import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func RegisterRP(bot *laniakea.Bot) {
|
||||
rp := laniakea.NewPlugin("RP")
|
||||
func RegisterRP() *laniakea.Plugin[database.Context] {
|
||||
rp := laniakea.NewPlugin[database.Context]("RP")
|
||||
rp.AddCommand(rp.NewCommand(rpUserPromptSet, "rpuserpset"))
|
||||
rp.AddCommand(rp.NewCommand(rpInfo, "rp").SetDescription("РП профиль пользователя"))
|
||||
rp.AddCommand(rp.NewCommand(rpInfo, "рп").SkipCommandAutoGen())
|
||||
@@ -50,10 +51,10 @@ func RegisterRP(bot *laniakea.Bot) {
|
||||
rp.AddPayload(rp.NewCommand(compressSettingStage2, "rp.compress_setting_s2"))
|
||||
rp.AddPayload(rp.NewCommand(compressSetting, "rp.compress_setting"))
|
||||
|
||||
bot.AddPlugins(rp)
|
||||
return rp
|
||||
}
|
||||
|
||||
func rpInfo(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpInfo(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
userRep := psql.NewUserRepository(db)
|
||||
_, err := userRep.GetOrCreate(ctx.FromID, ctx.From.FirstName)
|
||||
if err != nil {
|
||||
@@ -135,7 +136,7 @@ func rpInfo(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
}
|
||||
}
|
||||
|
||||
func rpWaifuList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpWaifuList(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
waifuRep := psql.NewWaifuRepository(db)
|
||||
var waifus extypes.Slice[*psql.Waifu]
|
||||
|
||||
@@ -176,7 +177,7 @@ func rpWaifuList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func rpWaifuSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpWaifuSet(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
waifuId, err := strconv.Atoi(ctx.Args[0])
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -201,7 +202,7 @@ func rpWaifuSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func rpPresetsList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpPresetsList(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
presets, err := rep.GetAllPresets()
|
||||
if err != nil {
|
||||
@@ -222,7 +223,7 @@ func rpPresetsList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func rpPresetSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpPresetSet(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
if len(ctx.Args) == 0 || ctx.Args[0] == "" {
|
||||
return
|
||||
}
|
||||
@@ -249,7 +250,7 @@ func rpPresetSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func rpModelList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpModelList(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewAIRepository(db)
|
||||
models, err := rep.GetAllModels()
|
||||
if err != nil {
|
||||
@@ -268,7 +269,7 @@ func rpModelList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func rpModelSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpModelSet(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
user, err := rep.GetOrCreateUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
@@ -293,7 +294,7 @@ func rpModelSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func rpScenarioList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpScenarioList(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
scenarios, err := rep.GetAllScenarios()
|
||||
if err != nil {
|
||||
@@ -309,7 +310,7 @@ func rpScenarioList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallback("Список сценариев\n"+strings.Join(out, "\n"), kb)
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func rpSettingList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpSettingList(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
settings, err := rep.GetAllSettings()
|
||||
if err != nil {
|
||||
@@ -327,7 +328,7 @@ func rpSettingList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func chatStat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func chatStat(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
redisRpRep := red.NewRPRepository(db)
|
||||
chat, err := redisRpRep.GetChat(ctx.FromID)
|
||||
if err != nil {
|
||||
@@ -368,7 +369,7 @@ func chatStat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func newChatStage1(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func newChatStage1(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
// Выбор сеттинга
|
||||
rep := psql.NewRPRepository(db)
|
||||
settings, err := rep.GetAllSettings()
|
||||
@@ -391,7 +392,7 @@ func newChatStage1(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func newChatStage2(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func newChatStage2(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
// Выбор сценария
|
||||
if len(ctx.Args) == 0 {
|
||||
ctx.Error(fmt.Errorf("zero args len"))
|
||||
@@ -455,7 +456,7 @@ func newChatStage2(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
//ctx.AnswerCbQueryText(fmt.Sprintf("Ты выбрал сеттинг %s", setting.Name))
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
func newChat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func newChat(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
redisRpRep := red.NewRPRepository(db)
|
||||
psqlRpRep := psql.NewRPRepository(db)
|
||||
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
|
||||
@@ -536,7 +537,7 @@ func newChat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.AnswerCbQuery()
|
||||
}
|
||||
|
||||
func rpUserPromptSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func rpUserPromptSet(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
if len(ctx.Args) == 0 || ctx.Args[0] == "" {
|
||||
return
|
||||
}
|
||||
@@ -556,7 +557,7 @@ func rpUserPromptSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.Answer("Описание пользователя было обновлено")
|
||||
}
|
||||
|
||||
func _getChatHistory(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) ([]ai.Message, error) {
|
||||
func _getChatHistory(ctx *laniakea.MsgContext, db *database.Context) ([]ai.Message, error) {
|
||||
redRep := red.NewRPRepository(db)
|
||||
psqlRep := psql.NewRPRepository(db)
|
||||
waifuRep := psql.NewWaifuRepository(db)
|
||||
@@ -620,7 +621,7 @@ func _getChatHistory(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) ([]
|
||||
return messages, nil
|
||||
}
|
||||
|
||||
func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func generate(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
redisRpRep := red.NewRPRepository(db)
|
||||
rpRep := psql.NewRPRepository(db)
|
||||
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
|
||||
@@ -717,7 +718,7 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
}
|
||||
}
|
||||
|
||||
func regenerateResponse(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func regenerateResponse(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
ctx.AnswerCbQueryText("Запущена повторная генерация…")
|
||||
|
||||
redRep := red.NewRPRepository(db)
|
||||
@@ -789,7 +790,7 @@ func regenerateResponse(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext)
|
||||
ctx.EditCallback(laniakea.EscapeMarkdown(res.Choices[0].Message.Content), kb)
|
||||
}
|
||||
|
||||
func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func compress(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
ctx.AnswerCbQueryText("Запущено сжатие чата…")
|
||||
_compress(ctx, db)
|
||||
kb := laniakea.NewInlineKeyboard(1)
|
||||
@@ -797,7 +798,7 @@ func compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleDanger, "rp.info")
|
||||
}
|
||||
|
||||
func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func _compress(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
redisRpRep := red.NewRPRepository(db)
|
||||
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
|
||||
if waifuId == 0 {
|
||||
@@ -902,7 +903,7 @@ var tokenMethodCount = []int{
|
||||
16, 32, 64, 128, 256,
|
||||
}
|
||||
|
||||
func compressSettingStage1(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
func compressSettingStage1(ctx *laniakea.MsgContext, _ *database.Context) {
|
||||
kb := laniakea.NewInlineKeyboard(2)
|
||||
kb.AddCallbackButton("По сообщениям", "rp.compress_setting_s2", "messages")
|
||||
kb.AddCallbackButton("По токенам", "rp.compress_setting_s2", "tokens")
|
||||
@@ -917,7 +918,7 @@ func compressSettingStage1(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext
|
||||
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
}
|
||||
func compressSettingStage2(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext) {
|
||||
func compressSettingStage2(ctx *laniakea.MsgContext, _ *database.Context) {
|
||||
if len(ctx.Args) == 0 {
|
||||
return
|
||||
}
|
||||
@@ -942,7 +943,7 @@ func compressSettingStage2(ctx *laniakea.MsgContext, _ *laniakea.DatabaseContext
|
||||
kb.AddCallbackButtonStyle("На главную", laniakea.ButtonStyleDanger, "rp.info")
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
}
|
||||
func compressSetting(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
func compressSetting(ctx *laniakea.MsgContext, db *database.Context) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
user, err := rep.GetUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user