small fix
This commit is contained in:
@@ -11,16 +11,17 @@ import (
|
|||||||
|
|
||||||
type RPChatMessage struct {
|
type RPChatMessage struct {
|
||||||
Id bson.ObjectID `bson:"_id"`
|
Id bson.ObjectID `bson:"_id"`
|
||||||
ChatID string `bson:"chat_id"`
|
ChatID string `bson:"chatId"`
|
||||||
Role string `bson:"role"`
|
Role string `bson:"role"`
|
||||||
Message string `bson:"message"`
|
Message string `bson:"message"`
|
||||||
|
Index int `bson:"index"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetChatHistory(db *laniakea.DatabaseContext, chatId string) ([]*RPChatMessage, error) {
|
func GetChatHistory(db *laniakea.DatabaseContext, chatId string) ([]*RPChatMessage, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
col := database.GetMongoCollection(db, "rp_chat_messages")
|
col := database.GetMongoCollection(db, "rp_chat_messages")
|
||||||
cursor, err := col.Find(ctx, bson.M{"chat_id": chatId})
|
cursor, err := col.Find(ctx, bson.M{"chatId": chatId})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -28,7 +29,7 @@ func GetChatHistory(db *laniakea.DatabaseContext, chatId string) ([]*RPChatMessa
|
|||||||
err = cursor.All(ctx, &result)
|
err = cursor.All(ctx, &result)
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
func UpdateChatHistory(db *laniakea.DatabaseContext, chatId, role, message string) error {
|
func UpdateChatHistory(db *laniakea.DatabaseContext, chatId, role, message string, index int) error {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
col := database.GetMongoCollection(db, "rp_chat_messages")
|
col := database.GetMongoCollection(db, "rp_chat_messages")
|
||||||
@@ -36,7 +37,7 @@ func UpdateChatHistory(db *laniakea.DatabaseContext, chatId, role, message strin
|
|||||||
bson.NewObjectID(),
|
bson.NewObjectID(),
|
||||||
chatId,
|
chatId,
|
||||||
role,
|
role,
|
||||||
message,
|
message, index,
|
||||||
})
|
})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -44,12 +45,12 @@ func GetChatHistorySize(db *laniakea.DatabaseContext, chatId string) (int64, err
|
|||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
col := database.GetMongoCollection(db, "rp_chat_messages")
|
col := database.GetMongoCollection(db, "rp_chat_messages")
|
||||||
return col.CountDocuments(ctx, bson.M{"chat_id": chatId})
|
return col.CountDocuments(ctx, bson.M{"chatId": chatId})
|
||||||
}
|
}
|
||||||
func DeleteChatEntry(db *laniakea.DatabaseContext, entry *RPChatMessage) error {
|
func DeleteChatEntry(db *laniakea.DatabaseContext, entry *RPChatMessage) error {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
col := database.GetMongoCollection(db, "rp_chat_messages")
|
col := database.GetMongoCollection(db, "rp_chat_messages")
|
||||||
_, err := col.DeleteOne(ctx, bson.M{"chat_id": entry.ChatID})
|
_, err := col.DeleteOne(ctx, bson.M{"chatId": entry.ChatID})
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -605,14 +605,15 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = mdb.UpdateChatHistory(db, chatId, "user", userMessage)
|
counter := redisRpRep.GetCounter(ctx.FromID, waifuId)
|
||||||
|
err = mdb.UpdateChatHistory(db, chatId, "user", userMessage, counter+1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
agentAnswer := res.Choices[0].Message
|
agentAnswer := res.Choices[0].Message
|
||||||
answerContent := strings.TrimSpace(agentAnswer.Content)
|
answerContent := strings.TrimSpace(agentAnswer.Content)
|
||||||
err = mdb.UpdateChatHistory(db, chatId, agentAnswer.Role, answerContent)
|
err = mdb.UpdateChatHistory(db, chatId, agentAnswer.Role, answerContent, counter+2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
@@ -629,7 +630,6 @@ func generate(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
counter := redisRpRep.GetCounter(ctx.FromID, waifuId)
|
|
||||||
err = redisRpRep.SetCounter(ctx.FromID, waifuId, counter+2)
|
err = redisRpRep.SetCounter(ctx.FromID, waifuId, counter+2)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
@@ -786,14 +786,14 @@ func _compress(ctx *laniakea.MsgContext, db *laniakea.DatabaseContext) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = mdb.UpdateChatHistory(db, chatId, "assistant", compressedHistory)
|
err = mdb.UpdateChatHistory(db, chatId, "assistant", compressedHistory, 0)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
offset := utils.Min(len(history), 20)
|
offset := utils.Min(len(history), 20)
|
||||||
for _, m := range history[len(history)-offset:] {
|
for i, m := range history[len(history)-offset:] {
|
||||||
tokens += len(m.Message)
|
tokens += len(m.Message)
|
||||||
err = mdb.UpdateChatHistory(db, chatId, m.Role, m.Message)
|
err = mdb.UpdateChatHistory(db, chatId, m.Role, m.Message, i+1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.Error(err)
|
ctx.Error(err)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user