diff options
| author | sigoden <sigoden@gmail.com> | 2023-10-30 12:58:11 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-30 12:58:11 +0800 |
| commit | 2f9121e515150981ac061389656c33eea577c336 (patch) | |
| tree | d213322b1cff8e1ba94988d6590ead6e4335ff94 /src/config/session.rs | |
| parent | f2c9f00bda1e69306bb2b73843ed7a95cd703bb5 (diff) | |
| download | aichat-2f9121e515150981ac061389656c33eea577c336.tar.gz | |
fix: bugs between sesison/role (#178)
Diffstat (limited to 'src/config/session.rs')
| -rw-r--r-- | src/config/session.rs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/config/session.rs b/src/config/session.rs index 5ecb1c2..b2d00bb 100644 --- a/src/config/session.rs +++ b/src/config/session.rs @@ -13,6 +13,7 @@ pub struct Session { pub path: Option<String>, pub model: String, pub tokens: usize, + pub temperature: Option<f64>, pub messages: Vec<Message>, #[serde(skip)] pub dirty: bool, @@ -24,9 +25,11 @@ pub struct Session { impl Session { pub fn new(name: &str, model: &str, role: Option<Role>) -> Self { + let temperature = role.as_ref().and_then(|v| v.temperature); let mut value = Self { path: None, model: model.to_string(), + temperature, tokens: 0, messages: vec![], dirty: false, @@ -58,11 +61,18 @@ impl Session { pub fn update_role(&mut self, role: Option<Role>) -> Result<()> { self.guard_empty()?; + self.temperature = role.as_ref().and_then(|v| v.temperature); self.role = role; self.update_tokens(); Ok(()) } + pub fn set_model(&mut self, model: &str) -> Result<()> { + self.model = model.to_string(); + self.update_tokens(); + Ok(()) + } + pub fn save(&mut self, session_path: &Path) -> Result<()> { if !self.should_save() { return Ok(()); |
