diff options
Diffstat (limited to 'src/client/claude.rs')
| -rw-r--r-- | src/client/claude.rs | 31 |
1 files changed, 8 insertions, 23 deletions
diff --git a/src/client/claude.rs b/src/client/claude.rs index 1094348..d3fc68d 100644 --- a/src/client/claude.rs +++ b/src/client/claude.rs @@ -1,12 +1,11 @@ use super::{ - catch_error, extract_system_message, ClaudeClient, Client, ExtraConfig, ImageUrl, - MessageContent, MessageContentPart, Model, ModelConfig, PromptType, ReplyHandler, SendData, + catch_error, extract_system_message, ClaudeClient, ExtraConfig, ImageUrl, MessageContent, + MessageContentPart, Model, ModelConfig, PromptType, ReplyHandler, SendData, }; use crate::utils::PromptKind; use anyhow::{anyhow, bail, Result}; -use async_trait::async_trait; use futures_util::StreamExt; use reqwest::{Client as ReqwestClient, RequestBuilder}; use reqwest_eventsource::{Error as EventSourceError, Event, RequestBuilderExt}; @@ -24,26 +23,6 @@ pub struct ClaudeConfig { pub extra: Option<ExtraConfig>, } -#[async_trait] -impl Client for ClaudeClient { - client_common_fns!(); - - async fn send_message_inner(&self, client: &ReqwestClient, data: SendData) -> Result<String> { - let builder = self.request_builder(client, data)?; - claude_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)?; - claude_send_message_streaming(builder, handler).await - } -} - impl ClaudeClient { list_models_fn!( ClaudeConfig, @@ -79,6 +58,12 @@ impl ClaudeClient { } } +impl_client_trait!( + ClaudeClient, + claude_send_message, + claude_send_message_streaming +); + pub async fn claude_send_message(builder: RequestBuilder) -> Result<String> { let res = builder.send().await?; let status = res.status(); |
