From 816abe9310f27de62ece46f4de6b300b215f87f8 Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Thu, 20 Feb 2025 11:59:59 -0600 Subject: [PATCH] clean execution log --- .../Repositories/IBotSharpRepository.cs | 7 ----- .../Evaluations/ExecutionLogger.cs | 13 ++++---- .../Repository/BotSharpDbContext.cs | 12 -------- .../FileRepository/FileRepository.Log.cs | 30 ------------------- .../FileRepository/FileRepository.cs | 3 -- .../Hooks/CommonContentGeneratingHook.cs | 3 +- .../Collections/ExecutionLogDocument.cs | 7 ----- .../MongoDbContext.cs | 3 -- .../MongoRepository.Conversation.cs | 8 ++--- .../Repository/MongoRepository.Log.cs | 26 ---------------- 10 files changed, 10 insertions(+), 102 deletions(-) delete mode 100644 src/Plugins/BotSharp.Plugin.MongoStorage/Collections/ExecutionLogDocument.cs diff --git a/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs b/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs index 06582d45..235c449b 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Repositories/IBotSharpRepository.cs @@ -152,13 +152,6 @@ public interface IBotSharpRepository : IHaveServiceProvider => throw new NotImplementedException(); #endregion - #region Execution Log - void AddExecutionLogs(string conversationId, List logs) - => throw new NotImplementedException(); - List GetExecutionLogs(string conversationId) - => throw new NotImplementedException(); - #endregion - #region LLM Completion Log void SaveLlmCompletionLog(LlmCompletionLog log) => throw new NotImplementedException(); diff --git a/src/Infrastructure/BotSharp.Core/Evaluations/ExecutionLogger.cs b/src/Infrastructure/BotSharp.Core/Evaluations/ExecutionLogger.cs index f70cb59f..c00ae098 100644 --- a/src/Infrastructure/BotSharp.Core/Evaluations/ExecutionLogger.cs +++ b/src/Infrastructure/BotSharp.Core/Evaluations/ExecutionLogger.cs @@ -1,26 +1,25 @@ using BotSharp.Abstraction.Evaluations; -using BotSharp.Abstraction.Repositories; using System.Text.RegularExpressions; namespace BotSharp.Core.Evaluations; public class ExecutionLogger : IExecutionLogger { - private readonly BotSharpDatabaseSettings _dbSettings; private readonly IServiceProvider _services; + private readonly ILogger _logger; + public ExecutionLogger( - BotSharpDatabaseSettings dbSettings, - IServiceProvider services) + IServiceProvider services, + ILogger logger) { - _dbSettings = dbSettings; _services = services; + _logger = logger; } public void Append(string conversationId, string content) { content = content.Replace("\r\n", " ").Replace("\n", " "); content = Regex.Replace(content, @"\s+", " "); - var db = _services.GetRequiredService(); - db.AddExecutionLogs(conversationId, new List { content }); + _logger.LogInformation($"Execution Log: {content}"); } } diff --git a/src/Infrastructure/BotSharp.Core/Repository/BotSharpDbContext.cs b/src/Infrastructure/BotSharp.Core/Repository/BotSharpDbContext.cs index 100bbf16..587de372 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/BotSharpDbContext.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/BotSharpDbContext.cs @@ -135,18 +135,6 @@ public class BotSharpDbContext : Database, IBotSharpRepository => throw new NotImplementedException(); #endregion - #region Execution Log - public void AddExecutionLogs(string conversationId, List logs) - { - throw new NotImplementedException(); - } - - public List GetExecutionLogs(string conversationId) - { - throw new NotImplementedException(); - } - #endregion - #region LLM Completion Log public void SaveLlmCompletionLog(LlmCompletionLog log) { diff --git a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.Log.cs b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.Log.cs index 08898864..f82cb6fa 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.Log.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.Log.cs @@ -1,40 +1,10 @@ using BotSharp.Abstraction.Loggers.Models; -using Serilog; using System.IO; namespace BotSharp.Core.Repository { public partial class FileRepository { - #region Execution Log - public void AddExecutionLogs(string conversationId, List logs) - { - if (string.IsNullOrEmpty(conversationId) || logs.IsNullOrEmpty()) return; - - var dir = Path.Combine(_dbSettings.FileRepository, "conversations", conversationId); - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - - var file = Path.Combine(dir, EXECUTION_LOG_FILE); - File.AppendAllLines(file, logs); - } - - public List GetExecutionLogs(string conversationId) - { - var logs = new List(); - if (string.IsNullOrEmpty(conversationId)) return logs; - - var dir = Path.Combine(_dbSettings.FileRepository, "conversations", conversationId); - if (!Directory.Exists(dir)) return logs; - - var file = Path.Combine(dir, EXECUTION_LOG_FILE); - logs = File.ReadAllLines(file)?.ToList() ?? new List(); - return logs; - } - #endregion - #region LLM Completion Log public void SaveLlmCompletionLog(LlmCompletionLog log) { diff --git a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.cs b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.cs index a5a2ffef..78e90e4b 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/FileRepository/FileRepository.cs @@ -50,9 +50,6 @@ public partial class FileRepository : IBotSharpRepository private const string KNOWLEDGE_DOC_FOLDER = "document"; private const string KNOWLEDGE_DOC_META_FILE = "meta.json"; - private const string EXECUTION_LOG_FILE = "execution.log"; - private const string PLUGIN_CONFIG_FILE = "config.json"; - private const string STATS_FOLDER = "stats"; private const string STATS_FILE = "stats.json"; diff --git a/src/Infrastructure/BotSharp.Logger/Hooks/CommonContentGeneratingHook.cs b/src/Infrastructure/BotSharp.Logger/Hooks/CommonContentGeneratingHook.cs index 68d83c87..d0c9c6e1 100644 --- a/src/Infrastructure/BotSharp.Logger/Hooks/CommonContentGeneratingHook.cs +++ b/src/Infrastructure/BotSharp.Logger/Hooks/CommonContentGeneratingHook.cs @@ -29,7 +29,8 @@ public class CommonContentGeneratingHook : IContentGeneratingHook MessageId = message.MessageId, AgentId = message.CurrentAgentId, Prompt = tokenStats.Prompt, - Response = message.Content + Response = message.Content, + CreateDateTime = DateTime.UtcNow }; db.SaveLlmCompletionLog(completionLog); diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Collections/ExecutionLogDocument.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Collections/ExecutionLogDocument.cs deleted file mode 100644 index 6b961141..00000000 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Collections/ExecutionLogDocument.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace BotSharp.Plugin.MongoStorage.Collections; - -public class ExecutionLogDocument : MongoBase -{ - public string ConversationId { get; set; } = default!; - public List Logs { get; set; } = []; -} diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs index 4d7f76a4..4aa82b2e 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/MongoDbContext.cs @@ -154,9 +154,6 @@ public class MongoDbContext public IMongoCollection ConversationStates => CreateConversationStateIndex(); - public IMongoCollection ExectionLogs - => GetCollectionOrCreate("ExecutionLogs"); - public IMongoCollection LlmCompletionLogs => GetCollectionOrCreate("LlmCompletionLogs"); diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs index 7d45e972..8b6dded6 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs @@ -56,13 +56,11 @@ public partial class MongoRepository var filterConv = Builders.Filter.In(x => x.Id, conversationIds); var filterDialog = Builders.Filter.In(x => x.ConversationId, conversationIds); var filterSates = Builders.Filter.In(x => x.ConversationId, conversationIds); - var filterExeLog = Builders.Filter.In(x => x.ConversationId, conversationIds); var filterPromptLog = Builders.Filter.In(x => x.ConversationId, conversationIds); var filterContentLog = Builders.Filter.In(x => x.ConversationId, conversationIds); var filterStateLog = Builders.Filter.In(x => x.ConversationId, conversationIds); var conbTabItems = Builders.Filter.In(x => x.ConversationId, conversationIds); - var exeLogDeleted = _dc.ExectionLogs.DeleteMany(filterExeLog); var promptLogDeleted = _dc.LlmCompletionLogs.DeleteMany(filterPromptLog); var contentLogDeleted = _dc.ContentLogs.DeleteMany(filterContentLog); var stateLogDeleted = _dc.StateLogs.DeleteMany(filterStateLog); @@ -71,10 +69,8 @@ public partial class MongoRepository var cronDeleted = _dc.CrontabItems.DeleteMany(conbTabItems); var convDeleted = _dc.Conversations.DeleteMany(filterConv); - return convDeleted.DeletedCount > 0 || dialogDeleted.DeletedCount > 0 || statesDeleted.DeletedCount > 0 - || exeLogDeleted.DeletedCount > 0 || promptLogDeleted.DeletedCount > 0 - || contentLogDeleted.DeletedCount > 0 || stateLogDeleted.DeletedCount > 0 - || convDeleted.DeletedCount > 0; + return convDeleted.DeletedCount > 0 || dialogDeleted.DeletedCount > 0 || statesDeleted.DeletedCount > 0 || promptLogDeleted.DeletedCount > 0 + || contentLogDeleted.DeletedCount > 0 || stateLogDeleted.DeletedCount > 0 || convDeleted.DeletedCount > 0; } [SideCar] diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Log.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Log.cs index 2316fdab..769c943f 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Log.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Log.cs @@ -4,32 +4,6 @@ namespace BotSharp.Plugin.MongoStorage.Repository; public partial class MongoRepository { - #region Execution Log - public void AddExecutionLogs(string conversationId, List logs) - { - if (string.IsNullOrEmpty(conversationId) || logs.IsNullOrEmpty()) return; - - var filter = Builders.Filter.Eq(x => x.ConversationId, conversationId); - var update = Builders.Update - .SetOnInsert(x => x.Id, Guid.NewGuid().ToString()) - .PushEach(x => x.Logs, logs); - - _dc.ExectionLogs.UpdateOne(filter, update, _options); - } - - public List GetExecutionLogs(string conversationId) - { - List logs = []; - if (string.IsNullOrEmpty(conversationId)) return logs; - - var filter = Builders.Filter.Eq(x => x.ConversationId, conversationId); - var logCollection = _dc.ExectionLogs.Find(filter).FirstOrDefault(); - - logs = logCollection?.Logs ?? []; - return logs; - } - #endregion - #region LLM Completion Log public void SaveLlmCompletionLog(LlmCompletionLog log) {