2727import org .springframework .ai .chat .observation .ChatModelObservationConvention ;
2828import org .springframework .ai .embedding .observation .EmbeddingModelObservationConvention ;
2929import org .springframework .ai .image .observation .ImageModelObservationConvention ;
30+ import org .springframework .ai .model .SimpleApiKey ;
3031import org .springframework .ai .model .function .DefaultFunctionCallbackResolver ;
3132import org .springframework .ai .model .function .FunctionCallback ;
3233import org .springframework .ai .model .function .FunctionCallbackResolver ;
33- import org .springframework .ai .model .ApiKey ;
34- import org .springframework .ai .model .SimpleApiKey ;
35- import org .springframework .ai .openai .api .OpenAiApiKey ;
3634import org .springframework .ai .openai .OpenAiAudioSpeechModel ;
3735import org .springframework .ai .openai .OpenAiAudioTranscriptionModel ;
3836import org .springframework .ai .openai .OpenAiChatModel ;
8078 WebClientAutoConfiguration .class })
8179public class OpenAiAutoConfiguration {
8280
83- @ Bean
84- @ ConditionalOnMissingBean (ApiKey .class )
85- @ OpenAiApiKey
86- public ApiKey openAiApiKey (OpenAiConnectionProperties properties ) {
87- return new SimpleApiKey (properties .getApiKey ());
88- }
89-
9081 private static @ NotNull ResolvedConnectionProperties resolveConnectionProperties (
9182 OpenAiParentProperties commonProperties , OpenAiParentProperties modelProperties , String modelType ) {
9283
@@ -126,11 +117,11 @@ public OpenAiChatModel openAiChatModel(OpenAiConnectionProperties commonProperti
126117 ObjectProvider <WebClient .Builder > webClientBuilderProvider , List <FunctionCallback > toolFunctionCallbacks ,
127118 FunctionCallbackResolver functionCallbackResolver , RetryTemplate retryTemplate ,
128119 ResponseErrorHandler responseErrorHandler , ObjectProvider <ObservationRegistry > observationRegistry ,
129- ObjectProvider <ChatModelObservationConvention > observationConvention , @ OpenAiApiKey ApiKey apiKey ) {
120+ ObjectProvider <ChatModelObservationConvention > observationConvention ) {
130121
131122 var openAiApi = openAiApi (chatProperties , commonProperties ,
132123 restClientBuilderProvider .getIfAvailable (RestClient ::builder ),
133- webClientBuilderProvider .getIfAvailable (WebClient ::builder ), responseErrorHandler , "chat" , apiKey );
124+ webClientBuilderProvider .getIfAvailable (WebClient ::builder ), responseErrorHandler , "chat" );
134125
135126 var chatModel = new OpenAiChatModel (openAiApi , chatProperties .getOptions (), functionCallbackResolver ,
136127 toolFunctionCallbacks , retryTemplate , observationRegistry .getIfUnique (() -> ObservationRegistry .NOOP ));
@@ -148,11 +139,11 @@ public OpenAiEmbeddingModel openAiEmbeddingModel(OpenAiConnectionProperties comm
148139 OpenAiEmbeddingProperties embeddingProperties , ObjectProvider <RestClient .Builder > restClientBuilderProvider ,
149140 ObjectProvider <WebClient .Builder > webClientBuilderProvider , RetryTemplate retryTemplate ,
150141 ResponseErrorHandler responseErrorHandler , ObjectProvider <ObservationRegistry > observationRegistry ,
151- ObjectProvider <EmbeddingModelObservationConvention > observationConvention , @ OpenAiApiKey ApiKey apiKey ) {
142+ ObjectProvider <EmbeddingModelObservationConvention > observationConvention ) {
152143
153144 var openAiApi = openAiApi (embeddingProperties , commonProperties ,
154145 restClientBuilderProvider .getIfAvailable (RestClient ::builder ),
155- webClientBuilderProvider .getIfAvailable (WebClient ::builder ), responseErrorHandler , "embedding" , apiKey );
146+ webClientBuilderProvider .getIfAvailable (WebClient ::builder ), responseErrorHandler , "embedding" );
156147
157148 var embeddingModel = new OpenAiEmbeddingModel (openAiApi , embeddingProperties .getMetadataMode (),
158149 embeddingProperties .getOptions (), retryTemplate ,
@@ -165,14 +156,14 @@ public OpenAiEmbeddingModel openAiEmbeddingModel(OpenAiConnectionProperties comm
165156
166157 private OpenAiApi openAiApi (OpenAiChatProperties chatProperties , OpenAiConnectionProperties commonProperties ,
167158 RestClient .Builder restClientBuilder , WebClient .Builder webClientBuilder ,
168- ResponseErrorHandler responseErrorHandler , String modelType , ApiKey apiKey ) {
159+ ResponseErrorHandler responseErrorHandler , String modelType ) {
169160
170161 ResolvedConnectionProperties resolved = resolveConnectionProperties (commonProperties , chatProperties ,
171162 modelType );
172163
173164 return OpenAiApi .builder ()
174165 .baseUrl (resolved .baseUrl ())
175- .apiKey (apiKey )
166+ .apiKey (new SimpleApiKey ( resolved . apiKey ()) )
176167 .headers (resolved .headers ())
177168 .completionsPath (chatProperties .getCompletionsPath ())
178169 .embeddingsPath (OpenAiEmbeddingProperties .DEFAULT_EMBEDDINGS_PATH )
@@ -184,15 +175,14 @@ private OpenAiApi openAiApi(OpenAiChatProperties chatProperties, OpenAiConnectio
184175
185176 private OpenAiApi openAiApi (OpenAiEmbeddingProperties embeddingProperties ,
186177 OpenAiConnectionProperties commonProperties , RestClient .Builder restClientBuilder ,
187- WebClient .Builder webClientBuilder , ResponseErrorHandler responseErrorHandler , String modelType ,
188- ApiKey apiKey ) {
178+ WebClient .Builder webClientBuilder , ResponseErrorHandler responseErrorHandler , String modelType ) {
189179
190180 ResolvedConnectionProperties resolved = resolveConnectionProperties (commonProperties , embeddingProperties ,
191181 modelType );
192182
193183 return OpenAiApi .builder ()
194184 .baseUrl (resolved .baseUrl ())
195- .apiKey (apiKey )
185+ .apiKey (new SimpleApiKey ( resolved . apiKey ()) )
196186 .headers (resolved .headers ())
197187 .completionsPath (OpenAiChatProperties .DEFAULT_COMPLETIONS_PATH )
198188 .embeddingsPath (embeddingProperties .getEmbeddingsPath ())
0 commit comments