diff options
Diffstat (limited to 'src/client/gemini.rs')
| -rw-r--r-- | src/client/gemini.rs | 33 |
1 files changed, 8 insertions, 25 deletions
diff --git a/src/client/gemini.rs b/src/client/gemini.rs index 05e19a3..4b6f053 100644 --- a/src/client/gemini.rs +++ b/src/client/gemini.rs @@ -1,12 +1,9 @@ -use super::vertexai::{gemini_build_body, gemini_send_message, gemini_send_message_streaming}; -use super::{ - Client, ExtraConfig, GeminiClient, Model, ModelConfig, PromptType, ReplyHandler, SendData, -}; +use super::vertexai::gemini_build_body; +use super::{ExtraConfig, GeminiClient, Model, ModelConfig, PromptType, SendData}; use crate::utils::PromptKind; use anyhow::Result; -use async_trait::async_trait; use reqwest::{Client as ReqwestClient, RequestBuilder}; use serde::Deserialize; @@ -22,26 +19,6 @@ pub struct GeminiConfig { pub extra: Option<ExtraConfig>, } -#[async_trait] -impl Client for GeminiClient { - client_common_fns!(); - - async fn send_message_inner(&self, client: &ReqwestClient, data: SendData) -> Result<String> { - let builder = self.request_builder(client, data)?; - gemini_send_message(builder).await - } - - async fn send_message_streaming_inner( - &self, - client: &ReqwestClient, - handler: &mut ReplyHandler, - data: SendData, - ) -> Result<()> { - let builder = self.request_builder(client, data)?; - gemini_send_message_streaming(builder, handler).await - } -} - impl GeminiClient { list_models_fn!( GeminiConfig, @@ -80,3 +57,9 @@ impl GeminiClient { Ok(builder) } } + +impl_client_trait!( + GeminiClient, + crate::client::vertexai::gemini_send_message, + crate::client::vertexai::gemini_send_message_streaming +); |
