summaryrefslogtreecommitdiffstats
path: root/src/client/gemini.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-12-19 23:10:35 +0800
committerGitHub <noreply@github.com>2023-12-19 23:10:35 +0800
commit6c9d7a679ea0097ab12f295caf16bec3e75ee267 (patch)
treef0cc3137cf37e7bb5258bab1ae56ea9975f75ae0 /src/client/gemini.rs
parent34d58b23693bbb561e43d89f4c1232f63973af0a (diff)
downloadaichat-6c9d7a679ea0097ab12f295caf16bec3e75ee267.tar.gz
feat: support qianwen:qwen-vl-plus (#275)
Diffstat (limited to 'src/client/gemini.rs')
-rw-r--r--src/client/gemini.rs19
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!({