11//! Client configurations: [OpenAIConfig] for OpenAI, [AzureConfig] for Azure OpenAI Service.
22use reqwest:: header:: { HeaderMap , AUTHORIZATION } ;
3- use secrecy:: { ExposeSecret , Secret } ;
3+ use secrecy:: { ExposeSecret , SecretString } ;
44use serde:: Deserialize ;
55
66/// Default v1 API base url
@@ -22,15 +22,15 @@ pub trait Config: Clone {
2222
2323 fn api_base ( & self ) -> & str ;
2424
25- fn api_key ( & self ) -> & Secret < String > ;
25+ fn api_key ( & self ) -> & SecretString ;
2626}
2727
2828/// Configuration for OpenAI API
2929#[ derive( Clone , Debug , Deserialize ) ]
3030#[ serde( default ) ]
3131pub struct OpenAIConfig {
3232 api_base : String ,
33- api_key : Secret < String > ,
33+ api_key : SecretString ,
3434 org_id : String ,
3535 project_id : String ,
3636}
@@ -68,7 +68,7 @@ impl OpenAIConfig {
6868
6969 /// To use a different API key different from default OPENAI_API_KEY env var
7070 pub fn with_api_key < S : Into < String > > ( mut self , api_key : S ) -> Self {
71- self . api_key = Secret :: from ( api_key. into ( ) ) ;
71+ self . api_key = SecretString :: from ( api_key. into ( ) ) ;
7272 self
7373 }
7474
@@ -123,7 +123,7 @@ impl Config for OpenAIConfig {
123123 & self . api_base
124124 }
125125
126- fn api_key ( & self ) -> & Secret < String > {
126+ fn api_key ( & self ) -> & SecretString {
127127 & self . api_key
128128 }
129129
@@ -139,7 +139,7 @@ pub struct AzureConfig {
139139 api_version : String ,
140140 deployment_id : String ,
141141 api_base : String ,
142- api_key : Secret < String > ,
142+ api_key : SecretString ,
143143}
144144
145145impl Default for AzureConfig {
@@ -172,7 +172,7 @@ impl AzureConfig {
172172
173173 /// To use a different API key different from default OPENAI_API_KEY env var
174174 pub fn with_api_key < S : Into < String > > ( mut self , api_key : S ) -> Self {
175- self . api_key = Secret :: from ( api_key. into ( ) ) ;
175+ self . api_key = SecretString :: from ( api_key. into ( ) ) ;
176176 self
177177 }
178178
@@ -187,10 +187,7 @@ impl Config for AzureConfig {
187187 fn headers ( & self ) -> HeaderMap {
188188 let mut headers = HeaderMap :: new ( ) ;
189189
190- headers. insert (
191- "api-key" ,
192- self . api_key . expose_secret ( ) . as_str ( ) . parse ( ) . unwrap ( ) ,
193- ) ;
190+ headers. insert ( "api-key" , self . api_key . expose_secret ( ) . parse ( ) . unwrap ( ) ) ;
194191
195192 headers
196193 }
@@ -206,7 +203,7 @@ impl Config for AzureConfig {
206203 & self . api_base
207204 }
208205
209- fn api_key ( & self ) -> & Secret < String > {
206+ fn api_key ( & self ) -> & SecretString {
210207 & self . api_key
211208 }
212209
0 commit comments