@@ -9,7 +9,10 @@ use super::azureauth::AzureAuth;
99use super :: base:: { ConfigKey , Provider , ProviderMetadata , ProviderUsage , Usage } ;
1010use super :: errors:: ProviderError ;
1111use super :: formats:: openai:: { create_request, get_usage, response_to_message} ;
12- use super :: provider_common:: { AuthType , HeaderBuilder , ProviderConfigBuilder , get_shared_client, retry_with_backoff_and_custom_delay, RetryConfig } ;
12+ use super :: provider_common:: {
13+ get_shared_client, retry_with_backoff_and_custom_delay, AuthType , HeaderBuilder ,
14+ ProviderConfigBuilder , RetryConfig ,
15+ } ;
1316use super :: utils:: { emit_debug_trace, get_model, handle_response_openai_compat, ImageFormat } ;
1417use crate :: message:: Message ;
1518use crate :: model:: ModelConfig ;
@@ -63,13 +66,16 @@ impl Default for AzureProvider {
6366impl AzureProvider {
6467 pub fn from_env ( model : ModelConfig ) -> Result < Self > {
6568 let config = crate :: config:: Config :: global ( ) ;
66- let config_builder = ProviderConfigBuilder :: new ( & config, "AZURE_OPENAI" ) ;
67-
68- let endpoint = config_builder. get_param ( "ENDPOINT" , None )
69+ let config_builder = ProviderConfigBuilder :: new ( config, "AZURE_OPENAI" ) ;
70+
71+ let endpoint = config_builder
72+ . get_param ( "ENDPOINT" , None )
6973 . ok_or_else ( || anyhow:: anyhow!( "AZURE_OPENAI_ENDPOINT is required" ) ) ?;
70- let deployment_name = config_builder. get_param ( "DEPLOYMENT_NAME" , None )
74+ let deployment_name = config_builder
75+ . get_param ( "DEPLOYMENT_NAME" , None )
7176 . ok_or_else ( || anyhow:: anyhow!( "AZURE_OPENAI_DEPLOYMENT_NAME is required" ) ) ?;
72- let api_version = config_builder. get_param ( "API_VERSION" , Some ( AZURE_DEFAULT_API_VERSION ) )
77+ let api_version = config_builder
78+ . get_param ( "API_VERSION" , Some ( AZURE_DEFAULT_API_VERSION ) )
7379 . unwrap_or_else ( || AZURE_DEFAULT_API_VERSION . to_string ( ) ) ;
7480
7581 // Try to get API key first, if not found use Azure credential chain
@@ -78,7 +84,7 @@ impl AzureProvider {
7884
7985 // Use shared client for better connection pooling
8086 let client = get_shared_client ( ) ;
81-
87+
8288 // Configure retry settings with Azure's specific requirements
8389 let retry_config = RetryConfig {
8490 max_retries : DEFAULT_MAX_RETRIES as u32 ,
@@ -126,22 +132,27 @@ impl AzureProvider {
126132 // Get a fresh auth token for each attempt
127133 let auth_token = self . auth . get_token ( ) . await . map_err ( |e| {
128134 tracing:: error!( "Authentication error: {:?}" , e) ;
129- ProviderError :: RequestFailed ( format ! ( "Failed to get authentication token: {}" , e) )
135+ ProviderError :: RequestFailed ( format ! (
136+ "Failed to get authentication token: {}" ,
137+ e
138+ ) )
130139 } ) ?;
131140
132141 // Build headers using HeaderBuilder
133142 let header_builder = match self . auth . credential_type ( ) {
134- super :: azureauth:: AzureCredentials :: ApiKey ( _) => {
135- HeaderBuilder :: new ( auth_token. token_value . clone ( ) , AuthType :: Custom ( "api-key" . to_string ( ) ) )
136- }
143+ super :: azureauth:: AzureCredentials :: ApiKey ( _) => HeaderBuilder :: new (
144+ auth_token. token_value . clone ( ) ,
145+ AuthType :: Custom ( "api-key" . to_string ( ) ) ,
146+ ) ,
137147 super :: azureauth:: AzureCredentials :: DefaultCredential => {
138148 HeaderBuilder :: new ( auth_token. token_value . clone ( ) , AuthType :: Bearer )
139149 }
140150 } ;
141151
142152 let headers = header_builder. build ( ) ;
143-
144- let response = self . client
153+
154+ let response = self
155+ . client
145156 . post ( base_url. clone ( ) )
146157 . headers ( headers)
147158 . json ( & payload)
@@ -167,8 +178,9 @@ impl AzureProvider {
167178 }
168179 _ => None ,
169180 }
170- }
171- ) . await
181+ } ,
182+ )
183+ . await
172184 }
173185}
174186
0 commit comments