diff options
| author | sigoden <sigoden@gmail.com> | 2024-07-24 20:33:52 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-24 20:33:52 +0800 |
| commit | 7c79292dc680f9d5d434b6b55cf3b8963bc117e2 (patch) | |
| tree | 6c661a5ca26bfd55bcc3ab43718679d2c51688d0 /src/config/mod.rs | |
| parent | 9037074eb238221d38aa81112328d9c919c0bfc2 (diff) | |
| download | aichat-7c79292dc680f9d5d434b6b55cf3b8963bc117e2.tar.gz | |
feat: move agent config to separate file (#741)
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index 7b22496..3715888 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -3,7 +3,7 @@ mod input; mod role; mod session; -pub use self::agent::{list_agents, Agent, AgentConfig}; +pub use self::agent::{list_agents, Agent}; pub use self::input::Input; pub use self::role::{Role, RoleLike, CODE_ROLE, EXPLAIN_SHELL_ROLE, SHELL_ROLE}; use self::session::Session; @@ -107,7 +107,6 @@ pub struct Config { pub function_calling: bool, pub mapping_tools: IndexMap<String, String>, pub use_tools: Option<String>, - pub agents: Vec<AgentConfig>, pub rag_embedding_model: Option<String>, pub rag_reranker_model: Option<String>, @@ -169,7 +168,6 @@ impl Default for Config { function_calling: true, mapping_tools: Default::default(), use_tools: None, - agents: vec![], rag_embedding_model: None, rag_reranker_model: None, @@ -337,14 +335,18 @@ impl Config { } pub fn agents_config_dir() -> Result<PathBuf> { - match env::var(get_env_name("agents_config_dir")) { + Self::local_path(AGENTS_DIR_NAME) + } + + pub fn agent_config_dir(name: &str) -> Result<PathBuf> { + match env::var(format!("{}_CONFIG_DIR", convert_env_prefix(name))) { Ok(value) => Ok(PathBuf::from(value)), - Err(_) => Self::local_path(AGENTS_DIR_NAME), + Err(_) => Ok(Self::agents_config_dir()?.join(name)), } } - pub fn agent_config_dir(name: &str) -> Result<PathBuf> { - Ok(Self::agents_config_dir()?.join(name)) + pub fn agent_config_file(name: &str) -> Result<PathBuf> { + Ok(Self::agent_config_dir(name)?.join(CONFIG_FILE_NAME)) } pub fn agent_rag_file(name: &str) -> Result<PathBuf> { @@ -356,14 +358,14 @@ impl Config { } 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(AGENTS_DIR_NAME)), - } + Ok(Self::functions_dir()?.join(AGENTS_DIR_NAME)) } pub fn agent_functions_dir(name: &str) -> Result<PathBuf> { - Ok(Self::agents_functions_dir()?.join(name)) + match env::var(format!("{}_FUNCTIONS_DIR", convert_env_prefix(name))) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Ok(Self::agents_functions_dir()?.join(name)), + } } pub fn state(&self) -> StateFlags { @@ -528,14 +530,6 @@ impl Config { ("roles_file", display_path(&Self::roles_file()?)), ("env_file", display_path(&Self::env_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()?)), ("sessions_dir", display_path(&self.sessions_dir()?)), ("messages_file", display_path(&self.messages_file()?)), @@ -1798,3 +1792,7 @@ fn complete_option_bool(value: Option<bool>) -> Vec<String> { None => vec!["true".to_string(), "false".to_string()], } } + +fn convert_env_prefix(value: &str) -> String { + value.replace('-', "_").to_ascii_uppercase() +} |
