diff options
| author | sigoden <sigoden@gmail.com> | 2023-12-19 20:37:53 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-19 20:37:53 +0800 |
| commit | 6286251d320a7f512e49534c30b42452d30d93cc (patch) | |
| tree | d2c08ea4ff1f48042666624ebbb821e3136854c5 /src/client/common.rs | |
| parent | 3adfeb1ae7c22e54570df69053aa3db226733384 (diff) | |
| download | aichat-6286251d320a7f512e49534c30b42452d30d93cc.tar.gz | |
feat: support gemini (#273)
Diffstat (limited to 'src/client/common.rs')
| -rw-r--r-- | src/client/common.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/client/common.rs b/src/client/common.rs index 2716d87..98cffa2 100644 --- a/src/client/common.rs +++ b/src/client/common.rs @@ -1,4 +1,4 @@ -use super::{openai::OpenAIConfig, ClientConfig, Message}; +use super::{openai::OpenAIConfig, ClientConfig, Message, MessageContent}; use crate::{ config::{GlobalConfig, Input}, @@ -308,6 +308,19 @@ where Ok(()) } +pub fn patch_system_message(messages: &mut Vec<Message>) { + if messages[0].role.is_system() { + let system_message = messages.remove(0); + if let (Some(message), MessageContent::Text(system_text)) = + (messages.get_mut(0), system_message.content) + { + if let MessageContent::Text(text) = message.content.clone() { + message.content = MessageContent::Text(format!("{}\n\n{}", system_text, text)) + } + } + } +} + fn set_config_value(json: &mut Value, path: &str, kind: &PromptKind, value: &str) { let segs: Vec<&str> = path.split('.').collect(); match segs.as_slice() { |
