Skip to main content

aether_evals/agents/
env.rs

1use llm::LlmModel;
2use std::collections::HashMap;
3use std::env::vars;
4
5pub const CONTAINER_AETHER_HOME: &str = "/root/.aether";
6
7pub fn default_eval_env_vars() -> HashMap<String, String> {
8    default_eval_env_vars_from(vars())
9}
10
11fn default_eval_env_vars_from(vars: impl IntoIterator<Item = (String, String)>) -> HashMap<String, String> {
12    let mut env_vars: HashMap<String, String> = vars
13        .into_iter()
14        .filter(|(key, _)| {
15            key != "AETHER_HOME"
16                && (LlmModel::ALL_REQUIRED_ENV_VARS.contains(&key.as_str())
17                    || key == "OLLAMA_HOST"
18                    || key.starts_with("AETHER_"))
19        })
20        .collect();
21    env_vars.insert("AETHER_HOME".to_string(), CONTAINER_AETHER_HOME.to_string());
22    env_vars
23}
24
25#[cfg(test)]
26mod tests {
27    use super::*;
28
29    #[test]
30    fn default_eval_env_vars_sets_container_aether_home() {
31        let env_vars = default_eval_env_vars_from([]);
32
33        assert_eq!(env_vars.get("AETHER_HOME"), Some(&CONTAINER_AETHER_HOME.to_string()));
34    }
35
36    #[test]
37    fn default_eval_env_vars_does_not_inherit_host_aether_home() {
38        let env_vars = default_eval_env_vars_from([("AETHER_HOME".to_string(), "/host/aether".to_string())]);
39
40        assert_eq!(env_vars.get("AETHER_HOME"), Some(&CONTAINER_AETHER_HOME.to_string()));
41    }
42}