diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/client/model.rs | 6 | ||||
| -rw-r--r-- | src/config/input.rs | 7 | ||||
| -rw-r--r-- | src/serve.rs | 11 |
3 files changed, 20 insertions, 4 deletions
diff --git a/src/client/model.rs b/src/client/model.rs index 8fcc6db..6681856 100644 --- a/src/client/model.rs +++ b/src/client/model.rs @@ -198,6 +198,10 @@ impl Model { self.data.no_system_message } + pub fn no_temperature(&self) -> bool { + self.data.no_temperature + } + pub fn system_prompt_prefix(&self) -> Option<&str> { self.data.system_prompt_prefix.as_deref() } @@ -325,6 +329,8 @@ pub struct ModelData { no_stream: bool, #[serde(default, skip_serializing_if = "std::ops::Not::not")] no_system_message: bool, + #[serde(default, skip_serializing_if = "std::ops::Not::not")] + no_temperature: bool, #[serde(skip_serializing_if = "Option::is_none")] system_prompt_prefix: Option<String>, diff --git a/src/config/input.rs b/src/config/input.rs index 1067b2c..a63e9a6 100644 --- a/src/config/input.rs +++ b/src/config/input.rs @@ -240,8 +240,11 @@ impl Input { let mut messages = self.build_messages()?; patch_messages(&mut messages, model); model.guard_max_input_tokens(&messages)?; - let temperature = self.role().temperature(); - let top_p = self.role().top_p(); + let (temperature, top_p) = if model.no_temperature() { + (None, None) + } else { + (self.role().temperature(), self.role().top_p()) + }; let functions = self.config.read().select_functions(self.role()); Ok(ChatCompletionsData { messages, diff --git a/src/serve.rs b/src/serve.rs index f51e56f..4c1a741 100644 --- a/src/serve.rs +++ b/src/serve.rs @@ -270,8 +270,8 @@ impl Server { let ChatCompletionsReqBody { model, messages, - temperature, - top_p, + mut temperature, + mut top_p, max_tokens, stream, tools, @@ -309,7 +309,14 @@ impl Server { let completion_id = generate_completion_id(); let created = Utc::now().timestamp(); + patch_messages(&mut messages, client.model()); + + if client.model().no_temperature() { + temperature = None; + top_p = None; + } + let data: ChatCompletionsData = ChatCompletionsData { messages, temperature, |
