some testing ang enchancments
This commit is contained in:
@@ -507,7 +507,7 @@ func newChat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
scenariosPrompt = append(scenariosPrompt, scenario.Prompt)
|
||||
}
|
||||
|
||||
chatPrompt += "Вот дополнительная информация - " + strings.Join(scenariosPrompt, ".")
|
||||
chatPrompt += "Вот дополнительная информация: " + strings.Join(scenariosPrompt, ".")
|
||||
}
|
||||
|
||||
if chatPrompt != "" {
|
||||
@@ -526,7 +526,6 @@ func newChat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
|
||||
err = redisRpRep.SetCounter(ctx.FromID, waifuId, 0)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
@@ -535,6 +534,7 @@ func newChat(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
|
||||
kb := laniakea.NewInlineKeyboard(2)
|
||||
kb.AddCallbackButton("На главную", "rp.info").AddCallbackButton("Закрыть", "general.close")
|
||||
ctx.EditCallback("Был создан новый чат. Для общения используй `/г промпт`.", kb)
|
||||
@@ -724,7 +724,8 @@ func regenerateResponse(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext)
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
messages, err := _getChatHistory(ctx, db)
|
||||
var messages extypes.Slice[ai.Message]
|
||||
messages, err = _getChatHistory(ctx, db)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
@@ -741,7 +742,7 @@ func regenerateResponse(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext)
|
||||
return
|
||||
}
|
||||
|
||||
if len(messages) == count {
|
||||
if messages.Len() == count {
|
||||
ctx.Bot.Logger().Errorln("len(messages) == count. ")
|
||||
return
|
||||
}
|
||||
@@ -760,8 +761,8 @@ func regenerateResponse(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext)
|
||||
api := ai.NewOpenAIAPI(ai.GPTBaseUrl, "", rpUser.Model.Key)
|
||||
defer api.Close()
|
||||
|
||||
messages = utils.PopSlice(messages, count-1)
|
||||
messages = utils.PopSlice(messages, count-2)
|
||||
messages = messages.Pop(count - 1)
|
||||
messages = messages.Pop(count - 2)
|
||||
|
||||
res, err := api.CreateCompletion(messages, userReq.Content, 1.0)
|
||||
if err != nil {
|
||||
@@ -814,10 +815,14 @@ func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
})
|
||||
}
|
||||
|
||||
//compressModel := "anthropic/claude-sonnet-4"
|
||||
//compressModel := "gpt-5.1"
|
||||
compressModel := "deepseek-ai/deepseek-v3.1-terminus"
|
||||
api := ai.NewOpenAIAPI(ai.GPTBaseUrl, "", compressModel)
|
||||
psqlRpRep := psql.NewRPRepository(db)
|
||||
user, err := psqlRpRep.GetUser(int64(ctx.FromID))
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
return
|
||||
}
|
||||
|
||||
api := ai.NewOpenAIAPI(ai.GPTBaseUrl, "", user.Model.Key)
|
||||
defer api.Close()
|
||||
res, err := api.CompressChat(messages)
|
||||
if err != nil {
|
||||
@@ -831,7 +836,7 @@ func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
compressedHistory = strings.ReplaceAll(compressedHistory, "*", "")
|
||||
|
||||
ctx.Answer(compressedHistory)
|
||||
tokens := len(compressModel)
|
||||
tokens := len(compressedHistory)
|
||||
|
||||
chatId = uuid.New().String()
|
||||
err = redisRpRep.SetChatId(ctx.FromID, waifuId, chatId)
|
||||
@@ -844,16 +849,34 @@ func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
offset := utils.Min(len(history), 20)
|
||||
for i, m := range history[len(history)-offset:] {
|
||||
offset := 50
|
||||
if user.CompressMethod == "messages" {
|
||||
offset = user.CompressLimit / 2
|
||||
}
|
||||
offset = utils.Min(len(history), offset)
|
||||
|
||||
// Copy short history from prev chat
|
||||
index := 0
|
||||
for _, m := range history {
|
||||
if m.Role == "assistant" {
|
||||
tokens += len(m.Message)
|
||||
err = mdb.UpdateRPChatHistory(db, chatId, m.Role, m.Message, index)
|
||||
index++
|
||||
} else {
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
for _, m := range history[len(history)-offset:] {
|
||||
tokens += len(m.Message)
|
||||
err = mdb.UpdateRPChatHistory(db, chatId, m.Role, m.Message, i+1)
|
||||
err = mdb.UpdateRPChatHistory(db, chatId, m.Role, m.Message, index)
|
||||
index++
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
err = redisRpRep.SetCounter(ctx.FromID, waifuId, offset+1)
|
||||
err = redisRpRep.SetCounter(ctx.FromID, waifuId, index)
|
||||
if err != nil {
|
||||
ctx.Error(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user