diff options
| author | sigoden <sigoden@gmail.com> | 2023-12-19 23:10:35 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-19 23:10:35 +0800 |
| commit | 6c9d7a679ea0097ab12f295caf16bec3e75ee267 (patch) | |
| tree | f0cc3137cf37e7bb5258bab1ae56ea9975f75ae0 /src/client/gemini.rs | |
| parent | 34d58b23693bbb561e43d89f4c1232f63973af0a (diff) | |
| download | aichat-6c9d7a679ea0097ab12f295caf16bec3e75ee267.tar.gz | |
feat: support qianwen:qwen-vl-plus (#275)
Diffstat (limited to 'src/client/gemini.rs')
| -rw-r--r-- | src/client/gemini.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/client/gemini.rs b/src/client/gemini.rs index 6497069..98fd60d 100644 --- a/src/client/gemini.rs +++ b/src/client/gemini.rs @@ -1,9 +1,9 @@ use super::{ - patch_system_message, Client, ExtraConfig, GeminiClient, Model, PromptType, SendData, - TokensCountFactors, + message::*, patch_system_message, Client, ExtraConfig, GeminiClient, Model, PromptType, + SendData, TokensCountFactors, }; -use crate::{client::*, config::GlobalConfig, render::ReplyHandler, utils::PromptKind}; +use crate::{config::GlobalConfig, render::ReplyHandler, utils::PromptKind}; use anyhow::{anyhow, bail, Result}; use async_trait::async_trait; @@ -123,7 +123,7 @@ async fn send_message_streaming(builder: RequestBuilder, handler: &mut ReplyHand for i in cursor..buffer.len() { let ch = buffer[i]; if quoting { - if ch == '"' && buffer[i-1] != '\\' { + if ch == '"' && buffer[i - 1] != '\\' { quoting = false; } continue; @@ -189,7 +189,7 @@ fn build_body(data: SendData, _model: String) -> Result<Value> { patch_system_message(&mut messages); - let mut invalid_urls = vec![]; + let mut network_image_urls = vec![]; let contents: Vec<Value> = messages .into_iter() .map(|message| { @@ -211,7 +211,7 @@ fn build_body(data: SendData, _model: String) -> Result<Value> { if let Some((mime_type, data)) = url.strip_prefix("data:").and_then(|v| v.split_once(";base64,")) { json!({ "inline_data": { "mime_type": mime_type, "data": data } }) } else { - invalid_urls.push(url.clone()); + network_image_urls.push(url.clone()); json!({ "url": url }) } }, @@ -223,8 +223,11 @@ fn build_body(data: SendData, _model: String) -> Result<Value> { }) .collect(); - if !invalid_urls.is_empty() { - bail!("The model does not support non-data URLs: {:?}", invalid_urls); + if !network_image_urls.is_empty() { + bail!( + "The model does not support network images: {:?}", + network_image_urls + ); } let mut body = json!({ |
