From 694a3c210f636041f2be3996b3067946bde154ba Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Mon, 18 Dec 2023 21:23:09 -0600 Subject: [PATCH] fix file llm prompt log --- .../BotSharp.Core/Repository/FileRepository.cs | 10 +++++++--- .../Repository/MongoRepository.cs | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs b/src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs index c5b22d89..81126616 100644 --- a/src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs +++ b/src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs @@ -860,8 +860,10 @@ public class FileRepository : IBotSharpRepository #region LLM Completion Log public void SaveLlmCompletionLog(LlmCompletionLog log) { + if (log == null || string.IsNullOrEmpty(log.ConversationId)) return; + var convDir = FindConversationDirectory(log.ConversationId); - if (!Directory.Exists(convDir)) return; + if (string.IsNullOrEmpty(convDir)) return; var logDir = Path.Combine(convDir, "llm_prompt_log"); if (!Directory.Exists(logDir)) @@ -870,7 +872,7 @@ public class FileRepository : IBotSharpRepository } log.Id = Guid.NewGuid().ToString(); - var index = GetLlmCompletionLogIndex(logDir, log.MessageId); + var index = GetNextLlmCompletionLogIndex(logDir, log.MessageId); var file = Path.Combine(logDir, $"{log.MessageId}.{index}.log"); File.WriteAllText(file, JsonSerializer.Serialize(log, _options)); } @@ -969,6 +971,8 @@ public class FileRepository : IBotSharpRepository private string? FindConversationDirectory(string conversationId) { + if (string.IsNullOrEmpty(conversationId)) return null; + var dir = Path.Combine(_dbSettings.FileRepository, _conversationSettings.DataDir, conversationId); if (!Directory.Exists(dir)) return null; @@ -1024,7 +1028,7 @@ public class FileRepository : IBotSharpRepository return states; } - private int GetLlmCompletionLogIndex(string logDir, string id) + private int GetNextLlmCompletionLogIndex(string logDir, string id) { var files = Directory.GetFiles(logDir); if (files.IsNullOrEmpty()) diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.cs index 0dc83366..89c583c5 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.cs @@ -892,6 +892,8 @@ public class MongoRepository : IBotSharpRepository #region LLM Completion Log public void SaveLlmCompletionLog(LlmCompletionLog log) { + if (log == null || string.IsNullOrEmpty(log.ConversationId)) return; + var completiongLog = new LlmCompletionLogDocument { Id = string.IsNullOrEmpty(log.Id) ? Guid.NewGuid().ToString() : log.Id,