summaryrefslogtreecommitdiffstats
path: root/src/config/agent.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-11-09 07:39:21 +0800
committerGitHub <noreply@github.com>2024-11-09 07:39:21 +0800
commitb2dbd73b8c8938105246f04e6ebcd68221740bd7 (patch)
tree00e677ef3da0d1a7f6ccfeb504fd30d005ecb63e /src/config/agent.rs
parent58dde85033cff3f7b08fb7ae997f9e124ad52955 (diff)
downloadaichat-b2dbd73b8c8938105246f04e6ebcd68221740bd7.tar.gz
refactor: path related functions (#981)
Diffstat (limited to 'src/config/agent.rs')
-rw-r--r--src/config/agent.rs28
1 files changed, 13 insertions, 15 deletions
diff --git a/src/config/agent.rs b/src/config/agent.rs
index c80a271..e16e7a7 100644
--- a/src/config/agent.rs
+++ b/src/config/agent.rs
@@ -33,14 +33,14 @@ impl Agent {
name: &str,
abort_signal: AbortSignal,
) -> Result<Self> {
- let functions_dir = Config::agent_functions_dir(name)?;
+ let functions_dir = Config::agent_functions_dir(name);
let definition_file_path = functions_dir.join("index.yaml");
if !definition_file_path.exists() {
bail!("Unknown agent `{name}`");
}
let functions_file_path = functions_dir.join("functions.json");
- let rag_path = Config::agent_rag_file(name, DEFAULT_AGENT_NAME)?;
- let config_path = Config::agent_config_file(name)?;
+ let rag_path = Config::agent_rag_file(name, DEFAULT_AGENT_NAME);
+ let config_path = Config::agent_config_file(name);
let mut agent_config = if config_path.exists() {
AgentConfig::load(&config_path)?
} else {
@@ -172,15 +172,15 @@ impl Agent {
if !variables.is_empty() {
value["variables"] = serde_json::to_value(variables)?;
}
- value["functions_dir"] = Config::agent_functions_dir(&self.name)?
+ value["functions_dir"] = Config::agent_functions_dir(&self.name)
.display()
.to_string()
.into();
- value["data_dir"] = Config::agent_data_dir(&self.name)?
+ value["data_dir"] = Config::agent_data_dir(&self.name)
.display()
.to_string()
.into();
- value["config_file"] = Config::agent_config_file(&self.name)?
+ value["config_file"] = Config::agent_config_file(&self.name)
.display()
.to_string()
.into();
@@ -456,13 +456,12 @@ pub struct AgentVariable {
}
pub fn list_agents() -> Vec<String> {
- list_agents_impl().unwrap_or_default()
-}
-
-fn list_agents_impl() -> Result<Vec<String>> {
- let base_dir = Config::functions_dir()?;
- let contents = read_to_string(base_dir.join("agents.txt"))?;
- let agents = contents
+ let agents_file = Config::functions_dir().join("agents.txt");
+ let contents = match read_to_string(agents_file) {
+ Ok(v) => v,
+ Err(_) => return vec![],
+ };
+ contents
.split('\n')
.filter_map(|line| {
let line = line.trim();
@@ -472,6 +471,5 @@ fn list_agents_impl() -> Result<Vec<String>> {
Some(line.to_string())
}
})
- .collect();
- Ok(agents)
+ .collect()
}