diff options
| author | sigoden <sigoden@gmail.com> | 2025-06-28 19:26:42 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-28 19:26:42 +0800 |
| commit | b8fd84ae5a094737cdc3276bea1cc0c83dbecd81 (patch) | |
| tree | 58e5e076caab69a8c6c98a1a47c01fa32b1d8b92 | |
| parent | 419790fb74fbaf47d54519238b5a542a3875961e (diff) | |
| download | aichat-b8fd84ae5a094737cdc3276bea1cc0c83dbecd81.tar.gz | |
fix: change temperature/top_p reading rules (#1333)
| -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) } |
