diff options
Diffstat (limited to 'src/config/mod.rs')
| -rw-r--r-- | src/config/mod.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs index e1cec4d..87be519 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -53,6 +53,7 @@ pub struct Config { #[serde(rename(serialize = "model", deserialize = "model"))] pub model_id: Option<String>, pub temperature: Option<f64>, + pub top_p: Option<f64>, pub dry_run: bool, pub save: bool, pub save_session: Option<bool>, @@ -89,6 +90,7 @@ impl Default for Config { Self { model_id: None, temperature: None, + top_p: None, save: true, save_session: None, highlight: true, @@ -297,6 +299,7 @@ impl Config { if let Some(session) = self.session.as_mut() { session.guard_empty()?; session.set_temperature(role.temperature); + session.set_top_p(role.top_p); } self.role = Some(role); Ok(()) @@ -335,6 +338,16 @@ impl Config { } } + pub fn set_top_p(&mut self, value: Option<f64>) { + if let Some(session) = self.session.as_mut() { + session.set_top_p(value); + } else if let Some(role) = self.role.as_mut() { + role.set_top_p(value); + } else { + self.top_p = value; + } + } + pub fn set_save_session(&mut self, value: Option<bool>) { if let Some(session) = self.session.as_mut() { session.set_save_session(value); @@ -411,6 +424,7 @@ impl Config { let items = vec