mirror of
https://github.com/sigoden/aichat
synced 2024-11-13 19:10:59 +00:00
refactor: make set max_output_tokens
work for role/session/bot (#609)
This commit is contained in:
parent
ba884c9fc6
commit
ff284779d9
@ -129,6 +129,10 @@ impl RoleLike for Bot {
|
||||
&self.model
|
||||
}
|
||||
|
||||
fn model_mut(&mut self) -> &mut Model {
|
||||
&mut self.model
|
||||
}
|
||||
|
||||
fn temperature(&self) -> Option<f64> {
|
||||
self.config.temperature
|
||||
}
|
||||
|
@ -476,7 +476,7 @@ impl Config {
|
||||
match key {
|
||||
"max_output_tokens" => {
|
||||
let value = parse_value(value)?;
|
||||
self.model.set_max_tokens(value, true);
|
||||
self.set_max_output_tokens(value);
|
||||
}
|
||||
"temperature" => {
|
||||
let value = parse_value(value)?;
|
||||
@ -564,6 +564,13 @@ impl Config {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn set_max_output_tokens(&mut self, value: Option<isize>) {
|
||||
match self.role_like_mut() {
|
||||
Some(role_like) => role_like.model_mut().set_max_tokens(value, true),
|
||||
None => self.model.set_max_tokens(value, true),
|
||||
};
|
||||
}
|
||||
|
||||
pub fn set_model(&mut self, model_id: &str) -> Result<()> {
|
||||
let model = Model::retrieve_chat(self, model_id)?;
|
||||
match self.role_like_mut() {
|
||||
|
@ -18,6 +18,7 @@ pub const INPUT_PLACEHOLDER: &str = "__INPUT__";
|
||||
pub trait RoleLike {
|
||||
fn to_role(&self) -> Role;
|
||||
fn model(&self) -> &Model;
|
||||
fn model_mut(&mut self) -> &mut Model;
|
||||
fn temperature(&self) -> Option<f64>;
|
||||
fn top_p(&self) -> Option<f64>;
|
||||
fn functions_filter(&self) -> Option<FunctionsFilter>;
|
||||
@ -229,6 +230,10 @@ impl RoleLike for Role {
|
||||
&self.model
|
||||
}
|
||||
|
||||
fn model_mut(&mut self) -> &mut Model {
|
||||
&mut self.model
|
||||
}
|
||||
|
||||
fn temperature(&self) -> Option<f64> {
|
||||
self.temperature
|
||||
}
|
||||
|
@ -426,6 +426,10 @@ impl RoleLike for Session {
|
||||
&self.model
|
||||
}
|
||||
|
||||
fn model_mut(&mut self) -> &mut Model {
|
||||
&mut self.model
|
||||
}
|
||||
|
||||
fn temperature(&self) -> Option<f64> {
|
||||
self.temperature
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user