Merge pull request #229 from iceljc/bugfix/delete-conversation-logs

fix typo and delete logs
This commit is contained in:
Haiping 2023-12-01 11:33:13 -06:00 committed by GitHub
commit be4a9a591e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 6 deletions

View file

@ -1,6 +1,6 @@
namespace BotSharp.Plugin.MongoStorage.Collections;
public class ExectionLogCollection : MongoBase
public class ExecutionLogCollection : MongoBase
{
public string ConversationId { get; set; }
public List<string> Logs { get; set; }

View file

@ -37,8 +37,8 @@ public class MongoDbContext
public IMongoCollection<ConversationDialogCollection> ConversationDialogs
=> Database.GetCollection<ConversationDialogCollection>($"{_collectionPrefix}_ConversationDialogs");
public IMongoCollection<ExectionLogCollection> ExectionLogs
=> Database.GetCollection<ExectionLogCollection>($"{_collectionPrefix}_ExectionLogs");
public IMongoCollection<ExecutionLogCollection> ExectionLogs
=> Database.GetCollection<ExecutionLogCollection>($"{_collectionPrefix}_ExecutionLogs");
public IMongoCollection<UserCollection> Users
=> Database.GetCollection<UserCollection>($"{_collectionPrefix}_Users");

View file

@ -605,9 +605,14 @@ public class MongoRepository : IBotSharpRepository
public bool DeleteConversation(string conversationId)
{
if (string.IsNullOrEmpty(conversationId)) return false;
var filterConv = Builders<ConversationCollection>.Filter.Eq(x => x.Id, conversationId);
var filterDialog = Builders<ConversationDialogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var filterExeLog = Builders<ExecutionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var filterPromptLog = Builders<LlmCompletionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var exeLogDeleted = _dc.ExectionLogs.DeleteMany(filterExeLog);
var promptLogDeleted = _dc.LlmCompletionLogs.DeleteMany(filterPromptLog);
var dialogDeleted = _dc.ConversationDialogs.DeleteMany(filterDialog);
var convDeleted = _dc.Conversations.DeleteMany(filterConv);
return convDeleted.DeletedCount > 0 || dialogDeleted.DeletedCount > 0;
@ -843,8 +848,8 @@ public class MongoRepository : IBotSharpRepository
{
if (string.IsNullOrEmpty(conversationId) || logs.IsNullOrEmpty()) return;
var filter = Builders<ExectionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var update = Builders<ExectionLogCollection>.Update
var filter = Builders<ExecutionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var update = Builders<ExecutionLogCollection>.Update
.SetOnInsert(x => x.Id, Guid.NewGuid().ToString())
.PushEach(x => x.Logs, logs);
@ -856,7 +861,7 @@ public class MongoRepository : IBotSharpRepository
var logs = new List<string>();
if (string.IsNullOrEmpty(conversationId)) return logs;
var filter = Builders<ExectionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var filter = Builders<ExecutionLogCollection>.Filter.Eq(x => x.ConversationId, conversationId);
var logCollection = _dc.ExectionLogs.Find(filter).FirstOrDefault();
logs = logCollection?.Logs ?? new List<string>();