refine fetching agent function
This commit is contained in:
parent
4fe56d4373
commit
5fc8238785
|
|
@ -208,7 +208,7 @@ namespace BotSharp.Core.Repository
|
|||
var (agent, agentFile) = GetAgentFromFile(agentId);
|
||||
if (agent == null) return;
|
||||
|
||||
var templateDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, "templates");
|
||||
var templateDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, AGENT_TEMPLATES_FOLDER);
|
||||
|
||||
if (!Directory.Exists(templateDir))
|
||||
{
|
||||
|
|
@ -234,7 +234,7 @@ namespace BotSharp.Core.Repository
|
|||
var (agent, agentFile) = GetAgentFromFile(agentId);
|
||||
if (agent == null) return;
|
||||
|
||||
var responseDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, "responses");
|
||||
var responseDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, AGENT_RESPONSES_FOLDER);
|
||||
if (!Directory.Exists(responseDir))
|
||||
{
|
||||
Directory.CreateDirectory(responseDir);
|
||||
|
|
@ -305,7 +305,7 @@ namespace BotSharp.Core.Repository
|
|||
public List<string> GetAgentResponses(string agentId, string prefix, string intent)
|
||||
{
|
||||
var responses = new List<string>();
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, "responses");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, AGENT_RESPONSES_FOLDER);
|
||||
if (!Directory.Exists(dir)) return responses;
|
||||
|
||||
foreach (var file in Directory.GetFiles(dir))
|
||||
|
|
@ -399,7 +399,7 @@ namespace BotSharp.Core.Repository
|
|||
|
||||
public string GetAgentTemplate(string agentId, string templateName)
|
||||
{
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, "templates");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, AGENT_TEMPLATES_FOLDER);
|
||||
if (!Directory.Exists(dir)) return string.Empty;
|
||||
|
||||
foreach (var file in Directory.GetFiles(dir))
|
||||
|
|
@ -421,7 +421,7 @@ namespace BotSharp.Core.Repository
|
|||
{
|
||||
if (string.IsNullOrEmpty(agentId) || template == null) return false;
|
||||
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, "templates");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId, AGENT_TEMPLATES_FOLDER);
|
||||
if (!Directory.Exists(dir)) return false;
|
||||
|
||||
var foundTemplate = Directory.GetFiles(dir).FirstOrDefault(f =>
|
||||
|
|
@ -460,7 +460,7 @@ namespace BotSharp.Core.Repository
|
|||
if (string.IsNullOrEmpty(agentDir)) return false;
|
||||
|
||||
// Delete agent user relationships
|
||||
var usersDir = Path.Combine(_dbSettings.FileRepository, "users");
|
||||
var usersDir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER);
|
||||
if (Directory.Exists(usersDir))
|
||||
{
|
||||
foreach (var userDir in Directory.GetDirectories(usersDir))
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public partial class FileRepository
|
|||
|
||||
foreach (var agentDir in Directory.GetDirectories(dir))
|
||||
{
|
||||
var taskDir = Path.Combine(agentDir, "tasks");
|
||||
var taskDir = Path.Combine(agentDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir)) continue;
|
||||
|
||||
var agentId = agentDir.Split(Path.DirectorySeparatorChar).Last();
|
||||
|
|
@ -84,7 +84,7 @@ public partial class FileRepository
|
|||
var agentDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId);
|
||||
if (!Directory.Exists(agentDir)) return null;
|
||||
|
||||
var taskDir = Path.Combine(agentDir, "tasks");
|
||||
var taskDir = Path.Combine(agentDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir)) return null;
|
||||
|
||||
var taskFile = FindTaskFileById(taskDir, taskId);
|
||||
|
|
@ -106,7 +106,7 @@ public partial class FileRepository
|
|||
var agentDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, task.AgentId);
|
||||
if (!Directory.Exists(agentDir)) return;
|
||||
|
||||
var taskDir = Path.Combine(agentDir, "tasks");
|
||||
var taskDir = Path.Combine(agentDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir))
|
||||
{
|
||||
Directory.CreateDirectory(taskDir);
|
||||
|
|
@ -140,7 +140,7 @@ public partial class FileRepository
|
|||
var agentDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, task.AgentId);
|
||||
if (!Directory.Exists(agentDir)) return;
|
||||
|
||||
var taskDir = Path.Combine(agentDir, "tasks");
|
||||
var taskDir = Path.Combine(agentDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir)) return;
|
||||
|
||||
var taskFile = FindTaskFileById(taskDir, task.Id);
|
||||
|
|
@ -195,7 +195,7 @@ public partial class FileRepository
|
|||
var agentDir = Path.Combine(_dbSettings.FileRepository, _agentSettings.DataDir, agentId);
|
||||
if (!Directory.Exists(agentDir) || taskIds.IsNullOrEmpty()) return false;
|
||||
|
||||
var taskDir = Path.Combine(agentDir, "tasks");
|
||||
var taskDir = Path.Combine(agentDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir)) return false;
|
||||
|
||||
var deletedTasks = new List<string>();
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ public partial class FileRepository
|
|||
{
|
||||
foreach (var user in _users)
|
||||
{
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users", user.Id);
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER, user.Id);
|
||||
if (!Directory.Exists(dir))
|
||||
{
|
||||
Directory.CreateDirectory(dir);
|
||||
|
|
@ -69,7 +69,7 @@ public partial class FileRepository
|
|||
var agents = _userAgents.Where(x => x.UserId == uid).ToList();
|
||||
if (agents.Any())
|
||||
{
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users", uid);
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER, uid);
|
||||
var path = Path.Combine(dir, USER_AGENT_FILE);
|
||||
File.WriteAllText(path, JsonSerializer.Serialize(agents, _options));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,12 +25,12 @@ public partial class FileRepository
|
|||
{
|
||||
var userId = Guid.NewGuid().ToString();
|
||||
user.Id = userId;
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users", userId);
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER, userId);
|
||||
if (!Directory.Exists(dir))
|
||||
{
|
||||
Directory.CreateDirectory(dir);
|
||||
}
|
||||
var path = Path.Combine(dir, "user.json");
|
||||
var path = Path.Combine(dir, USER_FILE);
|
||||
File.WriteAllText(path, JsonSerializer.Serialize(user, _options));
|
||||
}
|
||||
|
||||
|
|
@ -38,8 +38,8 @@ public partial class FileRepository
|
|||
{
|
||||
var user = GetUserById(userId);
|
||||
user.Verified = true;
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users", user.Id);
|
||||
var path = Path.Combine(dir, "user.json");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER, user.Id);
|
||||
var path = Path.Combine(dir, USER_FILE);
|
||||
File.WriteAllText(path, JsonSerializer.Serialize(user, _options));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,11 @@ public partial class FileRepository : IBotSharpRepository
|
|||
private const string AGENT_TASK_PREFIX = "#metadata";
|
||||
private const string AGENT_TASK_SUFFIX = "/metadata";
|
||||
private const string TRANSLATION_MEMORY_FILE = "memory.json";
|
||||
private const string AGENT_FUNCTIONS_FOLDER = "functions";
|
||||
private const string AGENT_TEMPLATES_FOLDER = "templates";
|
||||
private const string AGENT_RESPONSES_FOLDER = "responses";
|
||||
private const string AGENT_TASKS_FOLDER = "tasks";
|
||||
private const string USERS_FOLDER = "users";
|
||||
|
||||
public FileRepository(
|
||||
IServiceProvider services,
|
||||
|
|
@ -79,7 +84,7 @@ public partial class FileRepository : IBotSharpRepository
|
|||
return _users.AsQueryable();
|
||||
}
|
||||
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER);
|
||||
_users = new List<User>();
|
||||
if (Directory.Exists(dir))
|
||||
{
|
||||
|
|
@ -142,7 +147,7 @@ public partial class FileRepository : IBotSharpRepository
|
|||
return _userAgents.AsQueryable();
|
||||
}
|
||||
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, "users");
|
||||
var dir = Path.Combine(_dbSettings.FileRepository, USERS_FOLDER);
|
||||
_userAgents = new List<UserAgent>();
|
||||
if (Directory.Exists(dir))
|
||||
{
|
||||
|
|
@ -194,11 +199,28 @@ public partial class FileRepository : IBotSharpRepository
|
|||
|
||||
private List<FunctionDef> FetchFunctions(string fileDir)
|
||||
{
|
||||
var file = Path.Combine(fileDir, AGENT_FUNCTIONS_FILE);
|
||||
if (!File.Exists(file)) return new List<FunctionDef>();
|
||||
var functions = new List<FunctionDef>();
|
||||
var functionDir = Path.Combine(fileDir, AGENT_FUNCTIONS_FOLDER);
|
||||
|
||||
var functionsJson = File.ReadAllText(file);
|
||||
var functions = JsonSerializer.Deserialize<List<FunctionDef>>(functionsJson, _options);
|
||||
if (!Directory.Exists(functionDir)) return functions;
|
||||
|
||||
foreach ( var file in Directory.GetFiles(functionDir))
|
||||
{
|
||||
try
|
||||
{
|
||||
var extension = Path.GetExtension(file).Substring(1);
|
||||
if (extension != "json") continue;
|
||||
|
||||
var json = File.ReadAllText(file);
|
||||
var function = JsonSerializer.Deserialize<FunctionDef>(json, _options);
|
||||
functions.Add(function);
|
||||
}
|
||||
catch
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
return functions;
|
||||
}
|
||||
|
||||
|
|
@ -213,7 +235,7 @@ public partial class FileRepository : IBotSharpRepository
|
|||
private List<AgentTemplate> FetchTemplates(string fileDir)
|
||||
{
|
||||
var templates = new List<AgentTemplate>();
|
||||
var templateDir = Path.Combine(fileDir, "templates");
|
||||
var templateDir = Path.Combine(fileDir, AGENT_TEMPLATES_FOLDER);
|
||||
if (!Directory.Exists(templateDir)) return templates;
|
||||
|
||||
foreach (var file in Directory.GetFiles(templateDir))
|
||||
|
|
@ -235,7 +257,7 @@ public partial class FileRepository : IBotSharpRepository
|
|||
private List<AgentTask> FetchTasks(string fileDir)
|
||||
{
|
||||
var tasks = new List<AgentTask>();
|
||||
var taskDir = Path.Combine(fileDir, "tasks");
|
||||
var taskDir = Path.Combine(fileDir, AGENT_TASKS_FOLDER);
|
||||
if (!Directory.Exists(taskDir)) return tasks;
|
||||
|
||||
foreach (var file in Directory.GetFiles(taskDir))
|
||||
|
|
@ -252,7 +274,7 @@ public partial class FileRepository : IBotSharpRepository
|
|||
private List<AgentResponse> FetchResponses(string fileDir)
|
||||
{
|
||||
var responses = new List<AgentResponse>();
|
||||
var responseDir = Path.Combine(fileDir, "responses");
|
||||
var responseDir = Path.Combine(fileDir, AGENT_RESPONSES_FOLDER);
|
||||
if (!Directory.Exists(responseDir)) return responses;
|
||||
|
||||
foreach (var file in Directory.GetFiles(responseDir))
|
||||
|
|
|
|||
Loading…
Reference in a new issue