summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2025-06-28 19:26:42 +0800
committerGitHub <noreply@github.com>2025-06-28 19:26:42 +0800
commitb8fd84ae5a094737cdc3276bea1cc0c83dbecd81 (patch)
tree58e5e076caab69a8c6c98a1a47c01fa32b1d8b92
parent419790fb74fbaf47d54519238b5a542a3875961e (diff)
downloadaichat-b8fd84ae5a094737cdc3276bea1cc0c83dbecd81.tar.gz
fix: change temperature/top_p reading rules (#1333)
-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)
}