summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/config/agent.rs10
-rw-r--r--src/config/mod.rs19
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)
}