summaryrefslogtreecommitdiffstats
path: root/src/config/role.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-06-06 05:27:21 +0800
committerGitHub <noreply@github.com>2024-06-06 05:27:21 +0800
commitc26594c3c85fb99ad5b0db1c535b337585d3c103 (patch)
tree1829b2b1eee599fd835f2eb6f4751097c145b802 /src/config/role.rs
parent171a46eee2afcb92bcbbd6a11b52ebc82f2476db (diff)
downloadaichat-c26594c3c85fb99ad5b0db1c535b337585d3c103.tar.gz
refactor: config refinement (#570)
Diffstat (limited to 'src/config/role.rs')
-rw-r--r--src/config/role.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/config/role.rs b/src/config/role.rs
index 515810c..1b49bad 100644
--- a/src/config/role.rs
+++ b/src/config/role.rs
@@ -1,7 +1,7 @@
-use super::Input;
+use super::{Config, Input};
use crate::{
- client::{Message, MessageContent, MessageRole, Model},
+ client::{list_chat_models, Message, MessageContent, MessageRole, Model},
utils::{detect_os, detect_shell},
};
@@ -99,6 +99,12 @@ async function timeout(ms) {
self.prompt.contains(INPUT_PLACEHOLDER)
}
+ pub fn retrieve_model(&self, config: &Config) -> Option<Model> {
+ self.model_id
+ .as_ref()
+ .and_then(|model_id| Model::find(&list_chat_models(config), model_id))
+ }
+
pub fn set_model(&mut self, model: &Model) {
self.model_id = Some(model.id());
}