summaryrefslogtreecommitdiffstats
path: root/src/config
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-10-19 20:10:22 +0800
committerGitHub <noreply@github.com>2024-10-19 20:10:22 +0800
commit7b20ab064f30b7eddd18cecb9afb93e2b2c2965a (patch)
tree45030db5b840684ad9ee404564870807e78ed06c /src/config
parent7e29f642a99682ea7bb074eb4e7aa7d34d523515 (diff)
downloadaichat-7b20ab064f30b7eddd18cecb9afb93e2b2c2965a.tar.gz
refactor: improve handling of no_stream/no_system_message (#936)
Diffstat (limited to 'src/config')
-rw-r--r--src/config/input.rs9
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();