summaryrefslogtreecommitdiffstats
path: root/src/client/azure_openai.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2023-11-01 15:01:50 +0800
committersigoden <sigoden@gmail.com>2023-11-01 15:02:30 +0800
commitda3c541b681b140feb52b4297167ca233535fa90 (patch)
tree88341869f890d0116f084b8193464346096f7d0f /src/client/azure_openai.rs
parent8d76fc77fb770915177d2412def509e3ef829e60 (diff)
downloadaichat-da3c541b681b140feb52b4297167ca233535fa90.tar.gz
refactor: add/use openai_compatible_client macro
Diffstat (limited to 'src/client/azure_openai.rs')
-rw-r--r--src/client/azure_openai.rs29
1 files changed, 3 insertions, 26 deletions
diff --git a/src/client/azure_openai.rs b/src/client/azure_openai.rs
index cabcebd..d0fa31f 100644
--- a/src/client/azure_openai.rs
+++ b/src/client/azure_openai.rs
@@ -1,8 +1,5 @@
-use super::openai::{openai_build_body, openai_send_message, openai_send_message_streaming};
-use super::{AzureOpenAIClient, Client, ExtraConfig, ModelInfo, PromptKind, PromptType, SendData};
-
-use crate::config::SharedConfig;
-use crate::repl::ReplyStreamHandler;
+use super::openai::openai_build_body;
+use super::{AzureOpenAIClient, ExtraConfig, ModelInfo, PromptKind, PromptType, SendData};
use anyhow::{anyhow, Result};
use async_trait::async_trait;
@@ -26,27 +23,7 @@ pub struct AzureOpenAIModel {
max_tokens: Option<usize>,
}
-#[async_trait]
-impl Client for AzureOpenAIClient {
- fn config(&self) -> (&SharedConfig, &Option<ExtraConfig>) {
- (&self.global_config, &self.config.extra)
- }
-
- async fn send_message_inner(&self, client: &ReqwestClient, data: SendData) -> Result<String> {
- let builder = self.request_builder(client, data)?;
- openai_send_message(builder).await
- }
-
- async fn send_message_streaming_inner(
- &self,
- client: &ReqwestClient,
- handler: &mut ReplyStreamHandler,
- data: SendData,
- ) -> Result<()> {
- let builder = self.request_builder(client, data)?;
- openai_send_message_streaming(builder, handler).await
- }
-}
+openai_compatible_client!(AzureOpenAIClient);
impl AzureOpenAIClient {
config_get_fn!(api_base, get_api_base);