From 740ca2413a1992d151c0a9ea62c12e69321c0973 Mon Sep 17 00:00:00 2001 From: sigoden Date: Fri, 26 Apr 2024 07:43:35 +0800 Subject: refactor: simplify impl client trait (#445) --- src/client/claude.rs | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) (limited to 'src/client/claude.rs') 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, } -#[async_trait] -impl Client for ClaudeClient { - client_common_fns!(); - - async fn send_message_inner(&self, client: &ReqwestClient, data: SendData) -> Result { - 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 { let res = builder.send().await?; let status = res.status(); -- cgit v1.2.3