diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-23 06:00:58 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-23 06:00:58 +0800 |
| commit | 52a847743efccb72bcd031cb1d419c84ed9d9afa (patch) | |
| tree | 859c93d356fb2455f39b303b75981fb44a054095 /src/client/vertexai.rs | |
| parent | 3826d808d81c3ddc996a987bf6a749e8df6d8c48 (diff) | |
| download | aichat-52a847743efccb72bcd031cb1d419c84ed9d9afa.tar.gz | |
refactor: improve system message handling (#634)
Diffstat (limited to 'src/client/vertexai.rs')
| -rw-r--r-- | src/client/vertexai.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client/vertexai.rs b/src/client/vertexai.rs index 16910b6..cc7e464 100644 --- a/src/client/vertexai.rs +++ b/src/client/vertexai.rs @@ -262,7 +262,12 @@ pub fn gemini_build_chat_completions_body( stream: _, } = data; - patch_system_message(&mut messages); + let system_message = if model.name().starts_with("gemini-1.5-") { + extract_system_message(&mut messages) + } else { + patch_system_message(&mut messages); + None + }; let mut network_image_urls = vec![]; let contents: Vec<Value> = messages @@ -333,6 +338,10 @@ pub fn gemini_build_chat_completions_body( let mut body = json!({ "contents": contents, "generationConfig": {} }); + if let Some(v) = system_message { + body["systemInstruction"] = json!({ "parts": [{"text": v }] }); + } + if let Some(v) = model.max_tokens_param() { body["generationConfig"]["maxOutputTokens"] = v.into(); } |
