model selecting
This commit is contained in:
@@ -23,6 +23,8 @@ func RegisterRP(bot *laniakea.Bot) {
|
||||
rp.Payload(rpWaifuSet, "rp.waifu_set")
|
||||
rp.Payload(rpPresetsList, "rp.preset_list")
|
||||
rp.Payload(rpPresetSet, "rp.preset_set")
|
||||
rp.Payload(rpModelList, "rp.model_list")
|
||||
rp.Payload(rpModelSet, "rp.model_set")
|
||||
rp.Payload(rpScenarioList, "rp.scenario_list")
|
||||
rp.Payload(chatStat, "rp.tokens")
|
||||
rp.Payload(newChat, "rp.new_chat")
|
||||
@@ -40,13 +42,13 @@ func RegisterRP(bot *laniakea.Bot) {
|
||||
func rpInfo(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
rpRepRed := red.NewRPRepository(db)
|
||||
rpRepPsql := psql.NewRPRepository(db)
|
||||
waifuId := rpRepRed.GetSelectedWaifu(ctx.FromID)
|
||||
waifuRep := psql.NewWaifuRepository(db)
|
||||
waifu, err := waifuRep.GetById(waifuId)
|
||||
rpUser, err := rpRepPsql.GetOrCreateUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
rpUser, err := rpRepPsql.GetUser(int64(ctx.FromID))
|
||||
waifuId := rpRepRed.GetSelectedWaifu(ctx.FromID)
|
||||
waifuRep := psql.NewWaifuRepository(db)
|
||||
waifu, err := waifuRep.GetById(waifuId)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
@@ -54,13 +56,15 @@ func rpInfo(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
fmt.Sprintf("Привет, %s!", ctx.From.FirstName),
|
||||
fmt.Sprintf("*Выбранная вайфу*: %s", waifu.Name),
|
||||
fmt.Sprintf("*Выбранный пресет*: %s", laniakea.EscapeMarkdown(rpUser.Preset.Name)),
|
||||
fmt.Sprintf("*Выбранная модель*: %s", rpUser.Model.Name),
|
||||
fmt.Sprintf("*Твое описание персонажа*: %s", rpUser.UserPrompt),
|
||||
}
|
||||
|
||||
kb := laniakea.NewInlineKeyboard(1)
|
||||
kb.AddCallbackButton("Статистика чата", "rp.tokens")
|
||||
kb.AddCallbackButton("Сменить пресет", "rp.preset_list")
|
||||
kb.AddCallbackButton("Сменить вайфу", "rp.waifu_list")
|
||||
kb.AddCallbackButton("Сменить пресет", "rp.preset_list")
|
||||
kb.AddCallbackButton("Сменить модель", "rp.model_list")
|
||||
kb.AddCallbackButton("Новый чат", "rp.scenario_list")
|
||||
if ctx.CallbackMsgId > 0 {
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
@@ -155,6 +159,46 @@ func rpPresetSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.EditCallbackf("Был выбран пресет %s", kb, preset.Name)
|
||||
}
|
||||
|
||||
func rpModelList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
models, err := rep.GetAllModels()
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
out := make([]string, len(models))
|
||||
kb := laniakea.NewInlineKeyboard(2)
|
||||
for i, model := range models {
|
||||
out[i] = fmt.Sprintf("*%s* - размер контекста %dK", model.Name, model.ContextSize)
|
||||
kb.AddCallbackButton(model.Name, "rp.model_set", model.ID)
|
||||
}
|
||||
kb.AddLine()
|
||||
kb.AddCallbackButton("Назад", "rp.info")
|
||||
ctx.EditCallback(strings.Join(out, "\n"), kb)
|
||||
}
|
||||
func rpModelSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
user, err := rep.GetOrCreateUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
model, err := rep.GetModel(ctx.Args[0])
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
user.SelectedModel = model.ID
|
||||
err = rep.UpdateUser(user)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
kb := laniakea.NewInlineKeyboard(1).AddCallbackButton("На главную", "rp.info")
|
||||
ctx.EditCallback(fmt.Sprintf("Была установлена модель %s", model.Name), kb)
|
||||
}
|
||||
|
||||
func rpScenarioList(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
rep := psql.NewRPRepository(db)
|
||||
scenarios, err := rep.GetAllScenarios()
|
||||
@@ -293,6 +337,12 @@ func rpUserPromptSet(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
|
||||
func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
redisRpRep := red.NewRPRepository(db)
|
||||
rpRep := psql.NewRPRepository(db)
|
||||
rpUser, err := rpRep.GetOrCreateUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
waifuId := redisRpRep.GetSelectedWaifu(ctx.FromID)
|
||||
if waifuId == 0 {
|
||||
ctx.Answer("Не выбрана вайфу")
|
||||
@@ -313,12 +363,6 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
rpRep := psql.NewRPRepository(db)
|
||||
rpUser, err := rpRep.GetUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
preset, err := rpRep.GetUserPreset(rpUser)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -369,7 +413,7 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
}
|
||||
|
||||
m := ctx.Answer("Генерация запущена...")
|
||||
api := ai.NewOpenAIAPI(ai.GPTBaseUrl, "", "deepseek-ai/deepseek-v3.1-terminus")
|
||||
api := ai.NewOpenAIAPI(ai.GPTBaseUrl, "", rpUser.Model.Key)
|
||||
res, err := api.CreateCompletion(ai.CreateCompletionReq{
|
||||
Messages: messages,
|
||||
Verbosity: "low",
|
||||
|
||||
Reference in New Issue
Block a user