Skip to content

Commit 258fcb9

Browse files
author
Jicheng Lu
committed
add log index
1 parent 7b365d7 commit 258fcb9

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ public string GetAgentTemplate(string agentId, string templateName)
560560
foreach (var file in Directory.GetFiles(dir))
561561
{
562562
var fileName = file.Split(Path.DirectorySeparatorChar).Last();
563-
var splits = fileName.ToLower().Split('.');
563+
var splits = ParseFileNameByPath(fileName.ToLower());
564564
var name = splits[0];
565565
var extension = splits[1];
566566
if (name.IsEqualTo(templateName) && extension.IsEqualTo(_agentSettings.TemplateFormat))
@@ -846,7 +846,7 @@ public void CreateUser(User user)
846846
#region LLM Completion Log
847847
public void SaveLlmCompletionLog(LlmCompletionLog log)
848848
{
849-
var convDir = Path.Combine(_dbSettings.FileRepository, _conversationSettings.DataDir, log.ConversationId);
849+
var convDir = FindConversationDirectory(log.ConversationId);
850850
if (!Directory.Exists(convDir)) return;
851851

852852
var logDir = Path.Combine(convDir, "llm_prompt_log");
@@ -855,8 +855,8 @@ public void SaveLlmCompletionLog(LlmCompletionLog log)
855855
Directory.CreateDirectory(logDir);
856856
}
857857

858-
var fileName = string.IsNullOrEmpty(log.Id) ? Guid.NewGuid().ToString() : log.Id;
859-
var file = Path.Combine(logDir, $"{fileName}.log");
858+
var index = GetLlmCompletionLogIndex(logDir, log.MessageId);
859+
var file = Path.Combine(logDir, $"{log.MessageId}.{index}.log");
860860
File.WriteAllText(file, JsonSerializer.Serialize(log, _options));
861861
}
862862
#endregion
@@ -1008,5 +1008,30 @@ private List<StateKeyValue> CollectConversationStates(string stateDir)
10081008
}
10091009
return states;
10101010
}
1011+
1012+
private int GetLlmCompletionLogIndex(string logDir, string id)
1013+
{
1014+
var files = Directory.GetFiles(logDir);
1015+
if (files.IsNullOrEmpty())
1016+
return 0;
1017+
1018+
var logIndexes = files.Where(file =>
1019+
{
1020+
var fileName = ParseFileNameByPath(file);
1021+
return fileName[0].IsEqualTo(id);
1022+
}).Select(file =>
1023+
{
1024+
var fileName = ParseFileNameByPath(file);
1025+
return int.Parse(fileName[1]);
1026+
}).ToList();
1027+
1028+
return logIndexes.IsNullOrEmpty() ? 0 : logIndexes.Max() + 1;
1029+
}
1030+
1031+
private string[] ParseFileNameByPath(string path, string separator = ".")
1032+
{
1033+
var name = path.Split(Path.DirectorySeparatorChar).Last();
1034+
return name.Split(separator);
1035+
}
10111036
#endregion
10121037
}

0 commit comments

Comments
 (0)