diff options
| author | sigoden <sigoden@gmail.com> | 2024-10-19 20:10:22 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-19 20:10:22 +0800 |
| commit | 7b20ab064f30b7eddd18cecb9afb93e2b2c2965a (patch) | |
| tree | 45030db5b840684ad9ee404564870807e78ed06c /src/config/input.rs | |
| parent | 7e29f642a99682ea7bb074eb4e7aa7d34d523515 (diff) | |
| download | aichat-7b20ab064f30b7eddd18cecb9afb93e2b2c2965a.tar.gz | |
refactor: improve handling of no_stream/no_system_message (#936)
Diffstat (limited to 'src/config/input.rs')
| -rw-r--r-- | src/config/input.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/config/input.rs b/src/config/input.rs index 0325e1c..bf092de 100644 --- a/src/config/input.rs +++ b/src/config/input.rs @@ -1,8 +1,8 @@ use super::*; use crate::client::{ - init_client, ChatCompletionsData, Client, ImageUrl, Message, MessageContent, - MessageContentPart, MessageRole, Model, + init_client, patch_system_message, ChatCompletionsData, Client, ImageUrl, Message, + MessageContent, MessageContentPart, MessageRole, Model, }; use crate::function::{ToolResult, ToolResults}; use crate::utils::{base64_encode, sha256, AbortSignal}; @@ -206,7 +206,10 @@ impl Input { if !self.medias.is_empty() && !model.supports_vision() { bail!("The current model does not support vision. Is the model configured with `supports_vision: true`?"); } - let messages = self.build_messages()?; + let mut messages = self.build_messages()?; + if model.no_system_message() { + patch_system_message(&mut messages); + } model.guard_max_input_tokens(&messages)?; let temperature = self.role().temperature(); let top_p = self.role().top_p(); |
