diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-22 07:26:17 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-22 07:26:17 +0800 |
| commit | f430402bf8d47cb9afce539011eb66ec4551dc0b (patch) | |
| tree | ceb5a1b1a20df73faa5b390cf8ade92fda34b1bd | |
| parent | d645046d2d729a55345e18f97fefcab545086f53 (diff) | |
| download | aichat-f430402bf8d47cb9afce539011eb66ec4551dc0b.tar.gz | |
refactor: agents dir (#629)
| -rw-r--r-- | src/config/agent.rs | 2 | ||||
| -rw-r--r-- | src/config/mod.rs | 34 |
2 files changed, 25 insertions, 11 deletions
diff --git a/src/config/agent.rs b/src/config/agent.rs index 91a38b4..aaf0b07 100644 --- a/src/config/agent.rs +++ b/src/config/agent.rs @@ -77,7 +77,7 @@ impl Agent { pub fn export(&self) -> Result<String> { let mut value = serde_json::json!(self); - value["functions_dir"] = Config::agent_source_dir(&self.name)? + value["functions_dir"] = Config::agent_functions_dir(&self.name)? .display() .to_string() .into(); diff --git a/src/config/mod.rs b/src/config/mod.rs index 9cd69c5..2bc8d5f 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -306,35 +306,42 @@ impl Config { Ok(path) } - pub fn agents_dir() -> Result<PathBuf> { - match env::var(get_env_name("agents_dir")) { + pub fn agents_config_dir() -> Result<PathBuf> { + match env::var(get_env_name("agents_config_dir")) { Ok(value) => Ok(PathBuf::from(value)), Err(_) => Self::local_path(BOTS_DIR_NAME), } } pub fn agent_config_dir(name: &str) -> Result<PathBuf> { - Ok(Self::agents_dir()?.join(name)) + Ok(Self::agents_config_dir()?.join(name)) } pub fn agent_rag_file(name: &str) -> Result<PathBuf> { Ok(Self::agent_config_dir(name)?.join(BOT_RAG_FILE_NAME)) } - pub fn agent_source_dir(name: &str) -> Result<PathBuf> { - Ok(Self::functions_dir()?.join(BOTS_DIR_NAME).join(name)) + pub fn agents_functions_dir() -> Result<PathBuf> { + match env::var(get_env_name("agents_functions_dir")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Ok(Self::functions_dir()?.join(BOTS_DIR_NAME)), + } + } + + pub fn agent_functions_dir(name: &str) -> Result<PathBuf> { + Ok(Self::agents_functions_dir()?.join(name)) } pub fn agent_functions_file(name: &str) -> Result<PathBuf> { - Ok(Self::agent_source_dir(name)?.join(FUNCTIONS_FILE_NAME)) + Ok(Self::agent_functions_dir(name)?.join(FUNCTIONS_FILE_NAME)) } pub fn agent_definition_file(name: &str) -> Result<PathBuf> { - Ok(Self::agent_source_dir(name)?.join(BOT_DEFINITION_FILE_NAME)) + Ok(Self::agent_functions_dir(name)?.join(BOT_DEFINITION_FILE_NAME)) } pub fn agent_embeddings_dir(name: &str) -> Result<PathBuf> { - Ok(Self::agent_source_dir(name)?.join(BOT_EMBEDDINGS_DIR)) + Ok(Self::agent_functions_dir(name)?.join(BOT_EMBEDDINGS_DIR)) } pub fn state(&self) -> StateFlags { @@ -465,14 +472,21 @@ impl Config { ("config_file", display_path(&Self::config_file()?)), ("roles_file", display_path(&Self::roles_file()?)), ("functions_dir", display_path(&Self::functions_dir()?)), + ( + "agents_functions_dir", + display_path(&Self::agents_functions_dir()?), + ), + ( + "agents_config_dir", + display_path(&Self::agents_config_dir()?), + ), ("rags_dir", display_path(&Self::rags_dir()?)), - ("agents_dir", display_path(&Self::agents_dir()?)), ("sessions_dir", display_path(&self.sessions_dir()?)), ("messages_file", display_path(&self.messages_file()?)), ]; let output = items .iter() - .map(|(name, value)| format!("{name:<20}{value}")) + .map(|(name, value)| format!("{name:<24}{value}")) .collect::<Vec<String>>() .join("\n"); Ok(output) |
