Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 37 additions & 25 deletions src/Infrastructure/BotSharp.Core/Repository/FileRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,13 @@ public IQueryable<User> Users

var dir = Path.Combine(_dbSettings.FileRepository, "users");
_users = new List<User>();
foreach (var d in Directory.GetDirectories(dir))
if (Directory.Exists(dir))
{
var json = File.ReadAllText(Path.Combine(d, "user.json"));
_users.Add(JsonSerializer.Deserialize<User>(json, _options));
foreach (var d in Directory.GetDirectories(dir))
{
var json = File.ReadAllText(Path.Combine(d, "user.json"));
_users.Add(JsonSerializer.Deserialize<User>(json, _options));
}
}
return _users.AsQueryable();
}
Expand All @@ -64,17 +67,20 @@ public IQueryable<Agent> Agents

var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir);
_agents = new List<Agent>();
foreach (var d in Directory.GetDirectories(dir))
if (Directory.Exists(dir))
{
var json = File.ReadAllText(Path.Combine(d, "agent.json"));
var agent = JsonSerializer.Deserialize<Agent>(json, _options);
if (agent != null)
foreach (var d in Directory.GetDirectories(dir))
{
agent = agent.SetInstruction(FetchInstruction(d))
.SetTemplates(FetchTemplates(d))
.SetFunctions(FetchFunctions(d))
.SetResponses(FetchResponses(d));
_agents.Add(agent);
var json = File.ReadAllText(Path.Combine(d, "agent.json"));
var agent = JsonSerializer.Deserialize<Agent>(json, _options);
if (agent != null)
{
agent = agent.SetInstruction(FetchInstruction(d))
.SetTemplates(FetchTemplates(d))
.SetFunctions(FetchFunctions(d))
.SetResponses(FetchResponses(d));
_agents.Add(agent);
}
}
}
return _agents.AsQueryable();
Expand All @@ -93,13 +99,16 @@ public IQueryable<UserAgent> UserAgents

var dir = Path.Combine(_dbSettings.FileRepository, "users");
_userAgents = new List<UserAgent>();
foreach (var d in Directory.GetDirectories(dir))
if (Directory.Exists(dir))
{
var file = Path.Combine(d, "agents.json");
if (Directory.Exists(d) && File.Exists(file))
foreach (var d in Directory.GetDirectories(dir))
{
var json = File.ReadAllText(file);
_userAgents.AddRange(JsonSerializer.Deserialize<List<UserAgent>>(json, _options));
var file = Path.Combine(d, "agents.json");
if (Directory.Exists(d) && File.Exists(file))
{
var json = File.ReadAllText(file);
_userAgents.AddRange(JsonSerializer.Deserialize<List<UserAgent>>(json, _options));
}
}
}
return _userAgents.AsQueryable();
Expand All @@ -118,13 +127,16 @@ public IQueryable<Conversation> Conversations

var dir = Path.Combine(_dbSettings.FileRepository, _conversationSettings.DataDir);
_conversations = new List<Conversation>();
foreach (var d in Directory.GetDirectories(dir))
if (Directory.Exists(dir))
{
var path = Path.Combine(d, "conversation.json");
if (File.Exists(path))
foreach (var d in Directory.GetDirectories(dir))
{
var json = File.ReadAllText(path);
_conversations.Add(JsonSerializer.Deserialize<Conversation>(json, _options));
var path = Path.Combine(d, "conversation.json");
if (File.Exists(path))
{
var json = File.ReadAllText(path);
_conversations.Add(JsonSerializer.Deserialize<Conversation>(json, _options));
}
}
}
return _conversations.AsQueryable();
Expand Down Expand Up @@ -223,7 +235,7 @@ public int Transaction<TTableInterface>(Action action)
return _changedTableNames.Count;
}


#region Agent
public void UpdateAgent(Agent agent, AgentField field)
{
Expand Down Expand Up @@ -365,7 +377,7 @@ private void UpdateAgentInstruction(string agentId, string instruction)
var (agent, agentFile) = GetAgentFromFile(agentId);
if (agent == null) return;

var instructionFile = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir,
var instructionFile = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir,
agentId, $"instruction.{_agentSettings.TemplateFormat}");

File.WriteAllText(instructionFile, instruction);
Expand All @@ -380,7 +392,7 @@ private void UpdateAgentFunctions(string agentId, List<FunctionDef> inputFunctio

var functionFile = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir,
agentId, "functions.json");

var functions = new List<string>();
foreach (var function in inputFunctions)
{
Expand Down