diff options
| -rw-r--r-- | src/config/agent.rs | 10 | ||||
| -rw-r--r-- | src/config/mod.rs | 19 |
2 files changed, 19 insertions, 10 deletions
diff --git a/src/config/agent.rs b/src/config/agent.rs index f535d32..fada1f7 100644 --- a/src/config/agent.rs +++ b/src/config/agent.rs @@ -62,7 +62,15 @@ impl Agent { let config = config.read(); match agent_config.model_id.as_ref() { Some(model_id) => Model::retrieve_model(&config, model_id, ModelType::Chat)?, - None => config.current_model().clone(), + None => { + if agent_config.temperature.is_none() { + agent_config.temperature = config.temperature; + } + if agent_config.top_p.is_none() { + agent_config.top_p = config.top_p; + } + config.current_model().clone() + } } }; diff --git a/src/config/mod.rs b/src/config/mod.rs index 7e35c47..2193c1e 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -523,7 +523,7 @@ impl Config { } pub fn extract_role(&self) -> Role { - let mut role = if let Some(session) = self.session.as_ref() { + if let Some(session) = self.session.as_ref() { session.to_role() } else if let Some(agent) = self.agent.as_ref() { agent.to_role() @@ -538,14 +538,7 @@ impl Config { self.use_tools.clone(), ); role - }; - if role.temperature().is_none() && self.temperature.is_some() { - role.set_temperature(self.temperature); } - if role.top_p().is_none() && self.top_p.is_some() { - role.set_top_p(self.top_p); - } - role } pub fn info(&self) -> Result<String> { @@ -933,7 +926,15 @@ impl Config { role.set_model(current_model); } } - None => role.set_model(current_model), + None => { + role.set_model(current_model); + if role.temperature().is_none() { + role.set_temperature(self.temperature); + } + if role.top_p().is_none() { + role.set_top_p(self.top_p); + } + } } Ok(role) } |
