From 7b20ab064f30b7eddd18cecb9afb93e2b2c2965a Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 19 Oct 2024 20:10:22 +0800 Subject: refactor: improve handling of no_stream/no_system_message (#936) --- src/config/input.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/config') 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(); -- cgit v1.2.3