From f5e8e872b08d2aa9b3c063b0a98c59f842f94ecc Mon Sep 17 00:00:00 2001 From: sigoden Date: Sat, 27 Jul 2024 21:33:04 +0800 Subject: feat: support patching request url, headers and body (#756) --- src/client/azure_openai.rs | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) (limited to 'src/client/azure_openai.rs') diff --git a/src/client/azure_openai.rs b/src/client/azure_openai.rs index 2c4df05..8b583e0 100644 --- a/src/client/azure_openai.rs +++ b/src/client/azure_openai.rs @@ -2,7 +2,6 @@ use super::openai::*; use super::*; use anyhow::Result; -use reqwest::{Client as ReqwestClient, RequestBuilder}; use serde::Deserialize; #[derive(Debug, Clone, Deserialize)] @@ -12,7 +11,7 @@ pub struct AzureOpenAIConfig { pub api_key: Option, #[serde(default)] pub models: Vec, - pub patch: Option, + pub patch: Option, pub extra: Option, } @@ -32,51 +31,42 @@ impl AzureOpenAIClient { ), ]; - fn chat_completions_builder( - &self, - client: &ReqwestClient, - data: ChatCompletionsData, - ) -> Result { + fn prepare_chat_completions(&self, data: ChatCompletionsData) -> Result { let api_base = self.get_api_base()?; let api_key = self.get_api_key()?; - let mut body = openai_build_chat_completions_body(data, &self.model); - self.patch_chat_completions_body(&mut body); - let url = format!( "{}/openai/deployments/{}/chat/completions?api-version=2024-02-01", &api_base, self.model.name() ); - debug!("AzureOpenAI Chat Completions Request: {url} {body}"); + let body = openai_build_chat_completions_body(data, &self.model); + + let mut request_data = RequestData::new(url, body); - let builder = client.post(url).header("api-key", api_key).json(&body); + request_data.header("api-key", api_key); - Ok(builder) + Ok(request_data) } - fn embeddings_builder( - &self, - client: &ReqwestClient, - data: EmbeddingsData, - ) -> Result { + fn prepare_embeddings(&self, data: EmbeddingsData) -> Result { let api_base = self.get_api_base()?; let api_key = self.get_api_key()?; - let body = openai_build_embeddings_body(data, &self.model); - let url = format!( "{}/openai/deployments/{}/embeddings?api-version=2024-02-01", &api_base, self.model.name() ); - debug!("AzureOpenAI Embeddings Request: {url} {body}"); + let body = openai_build_embeddings_body(data, &self.model); + + let mut request_data = RequestData::new(url, body); - let builder = client.post(url).header("api-key", api_key).json(&body); + request_data.header("api-key", api_key); - Ok(builder) + Ok(request_data) } } -- cgit v1.2.3