Skip to content

Commit d9c9d30

Browse files
nnam-droid12ilayaperumalg
authored andcommitted
GH-4634: Remove @ImportAutoConfiguration from AzureOpenAiChatAutoConfiguration
Signed-off-by: Willams <[email protected]>
1 parent e0bad05 commit d9c9d30

File tree

9 files changed

+147
-57
lines changed

9 files changed

+147
-57
lines changed

auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiChatAutoConfiguration.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2023-2024 the original author or authors.
2+
* Copyright 2023-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -29,7 +29,6 @@
2929
import org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration;
3030
import org.springframework.beans.factory.ObjectProvider;
3131
import org.springframework.boot.autoconfigure.AutoConfiguration;
32-
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
3332
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3433
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3534
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -50,7 +49,6 @@
5049
@EnableConfigurationProperties({ AzureOpenAiChatProperties.class })
5150
@ConditionalOnProperty(name = SpringAIModelProperties.CHAT_MODEL, havingValue = SpringAIModels.AZURE_OPENAI,
5251
matchIfMissing = true)
53-
@ImportAutoConfiguration(classes = { ToolCallingAutoConfiguration.class })
5452
@Import(AzureOpenAiClientBuilderConfiguration.class)
5553
public class AzureOpenAiChatAutoConfiguration {
5654

auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/test/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiAutoConfigurationEntraIT.java

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
import org.springframework.ai.chat.prompt.Prompt;
5050
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
5151
import org.springframework.ai.embedding.EmbeddingResponse;
52+
import org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration;
5253
import org.springframework.boot.autoconfigure.AutoConfigurations;
5354
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
5455
import org.springframework.core.io.ClassPathResource;
@@ -98,7 +99,9 @@ class AzureOpenAiAutoConfigurationEntraIT {
9899

99100
@Test
100101
void chatCompletion() {
101-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
102+
this.contextRunner
103+
.withConfiguration(
104+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
102105
.run(context -> {
103106
AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class);
104107
ChatResponse response = chatModel.call(new Prompt(List.of(this.userMessage, this.systemMessage)));
@@ -108,7 +111,9 @@ void chatCompletion() {
108111

109112
@Test
110113
void httpRequestContainsUserAgentAndCustomHeaders() {
111-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
114+
this.contextRunner
115+
.withConfiguration(
116+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
112117
.withPropertyValues("spring.ai.azure.openai.custom-headers.foo=bar",
113118
"spring.ai.azure.openai.custom-headers.fizz=buzz")
114119
.run(context -> {
@@ -135,7 +140,9 @@ void httpRequestContainsUserAgentAndCustomHeaders() {
135140

136141
@Test
137142
void chatCompletionStreaming() {
138-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
143+
this.contextRunner
144+
.withConfiguration(
145+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
139146
.run(context -> {
140147

141148
AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class);
@@ -159,7 +166,9 @@ void chatCompletionStreaming() {
159166

160167
@Test
161168
void embedding() {
162-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
169+
this.contextRunner
170+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
171+
AzureOpenAiEmbeddingAutoConfiguration.class))
163172
.run(context -> {
164173
AzureOpenAiEmbeddingModel embeddingModel = context.getBean(AzureOpenAiEmbeddingModel.class);
165174

@@ -180,7 +189,8 @@ void embedding() {
180189
@EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME", matches = ".+")
181190
void transcribe() {
182191
this.contextRunner
183-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
192+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
193+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
184194
.run(context -> {
185195
AzureOpenAiAudioTranscriptionModel transcriptionModel = context
186196
.getBean(AzureOpenAiAudioTranscriptionModel.class);
@@ -195,22 +205,28 @@ void transcribe() {
195205
void chatActivation() {
196206

197207
// Disable the chat auto-configuration.
198-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
208+
this.contextRunner
209+
.withConfiguration(
210+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
199211
.withPropertyValues("spring.ai.model.chat=none")
200212
.run(context -> {
201213
assertThat(context.getBeansOfType(AzureOpenAiChatProperties.class)).isEmpty();
202214
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isEmpty();
203215
});
204216

205217
// The chat auto-configuration is enabled by default.
206-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
218+
this.contextRunner
219+
.withConfiguration(
220+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
207221
.run(context -> {
208222
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty();
209223
assertThat(context.getBeansOfType(AzureOpenAiChatProperties.class)).isNotEmpty();
210224
});
211225

212226
// Explicitly enable the chat auto-configuration.
213-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
227+
this.contextRunner
228+
.withConfiguration(
229+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
214230
.withPropertyValues("spring.ai.model.chat=azure-openai")
215231
.run(context -> {
216232
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty();
@@ -222,22 +238,28 @@ void chatActivation() {
222238
void embeddingActivation() {
223239

224240
// Disable the embedding auto-configuration.
225-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
241+
this.contextRunner
242+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
243+
AzureOpenAiEmbeddingAutoConfiguration.class))
226244
.withPropertyValues("spring.ai.model.embedding=none")
227245
.run(context -> {
228246
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isEmpty();
229247
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingProperties.class)).isEmpty();
230248
});
231249

232250
// The embedding auto-configuration is enabled by default.
233-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
251+
this.contextRunner
252+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
253+
AzureOpenAiEmbeddingAutoConfiguration.class))
234254
.run(context -> {
235255
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty();
236256
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingProperties.class)).isNotEmpty();
237257
});
238258

239259
// Explicitly enable the embedding auto-configuration.
240-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
260+
this.contextRunner
261+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
262+
AzureOpenAiEmbeddingAutoConfiguration.class))
241263
.withPropertyValues("spring.ai.model.embedding=azure-openai")
242264
.run(context -> {
243265
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty();
@@ -250,7 +272,8 @@ void audioTranscriptionActivation() {
250272

251273
// Disable the transcription auto-configuration.
252274
this.contextRunner
253-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
275+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
276+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
254277
.withPropertyValues("spring.ai.model.audio.transcription=none")
255278
.run(context -> {
256279
assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isEmpty();
@@ -259,12 +282,14 @@ void audioTranscriptionActivation() {
259282

260283
// The transcription auto-configuration is enabled by default.
261284
this.contextRunner
262-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
285+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
286+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
263287
.run(context -> assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isNotEmpty());
264288

265289
// Explicitly enable the transcription auto-configuration.
266290
this.contextRunner
267-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
291+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
292+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
268293
.withPropertyValues("spring.ai.model.audio.transcription=azure-openai")
269294
.run(context -> assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isNotEmpty());
270295
}
@@ -273,7 +298,9 @@ void audioTranscriptionActivation() {
273298
void openAIClientBuilderCustomizer() {
274299
AtomicBoolean firstCustomizationApplied = new AtomicBoolean(false);
275300
AtomicBoolean secondCustomizationApplied = new AtomicBoolean(false);
276-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
301+
this.contextRunner
302+
.withConfiguration(
303+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
277304
.withBean("first", AzureOpenAIClientBuilderCustomizer.class,
278305
() -> clientBuilder -> firstCustomizationApplied.set(true))
279306
.withBean("second", AzureOpenAIClientBuilderCustomizer.class,

auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/test/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiAutoConfigurationIT.java

Lines changed: 42 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.springframework.ai.chat.prompt.Prompt;
4848
import org.springframework.ai.chat.prompt.SystemPromptTemplate;
4949
import org.springframework.ai.embedding.EmbeddingResponse;
50+
import org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration;
5051
import org.springframework.boot.autoconfigure.AutoConfigurations;
5152
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
5253
import org.springframework.core.io.ClassPathResource;
@@ -96,7 +97,9 @@ class AzureOpenAiAutoConfigurationIT {
9697

9798
@Test
9899
void chatCompletion() {
99-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
100+
this.contextRunner
101+
.withConfiguration(
102+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
100103
.run(context -> {
101104
AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class);
102105
ChatResponse response = chatModel.call(new Prompt(List.of(this.userMessage, this.systemMessage)));
@@ -106,7 +109,9 @@ void chatCompletion() {
106109

107110
@Test
108111
void httpRequestContainsUserAgentAndCustomHeaders() {
109-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
112+
this.contextRunner
113+
.withConfiguration(
114+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
110115
.withPropertyValues("spring.ai.azure.openai.custom-headers.foo=bar",
111116
"spring.ai.azure.openai.custom-headers.fizz=buzz")
112117
.run(context -> {
@@ -133,7 +138,9 @@ void httpRequestContainsUserAgentAndCustomHeaders() {
133138

134139
@Test
135140
void chatCompletionStreaming() {
136-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
141+
this.contextRunner
142+
.withConfiguration(
143+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
137144
.run(context -> {
138145

139146
AzureOpenAiChatModel chatModel = context.getBean(AzureOpenAiChatModel.class);
@@ -157,7 +164,9 @@ void chatCompletionStreaming() {
157164

158165
@Test
159166
void embedding() {
160-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
167+
this.contextRunner
168+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
169+
AzureOpenAiEmbeddingAutoConfiguration.class))
161170
.run(context -> {
162171
AzureOpenAiEmbeddingModel embeddingModel = context.getBean(AzureOpenAiEmbeddingModel.class);
163172

@@ -178,7 +187,8 @@ void embedding() {
178187
@EnabledIfEnvironmentVariable(named = "AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME", matches = ".+")
179188
void transcribe() {
180189
this.contextRunner
181-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
190+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
191+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
182192
.run(context -> {
183193
AzureOpenAiAudioTranscriptionModel transcriptionModel = context
184194
.getBean(AzureOpenAiAudioTranscriptionModel.class);
@@ -193,22 +203,28 @@ void transcribe() {
193203
void chatActivation() {
194204

195205
// Disable the chat auto-configuration.
196-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
206+
this.contextRunner
207+
.withConfiguration(
208+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
197209
.withPropertyValues("spring.ai.model.chat=none")
198210
.run(context -> {
199211
assertThat(context.getBeansOfType(AzureOpenAiChatProperties.class)).isEmpty();
200212
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isEmpty();
201213
});
202214

203215
// The chat auto-configuration is enabled by default.
204-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
216+
this.contextRunner
217+
.withConfiguration(
218+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
205219
.run(context -> {
206220
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty();
207221
assertThat(context.getBeansOfType(AzureOpenAiChatProperties.class)).isNotEmpty();
208222
});
209223

210224
// Explicitly enable the chat auto-configuration.
211-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
225+
this.contextRunner
226+
.withConfiguration(
227+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
212228
.withPropertyValues("spring.ai.model.chat=azure-openai")
213229
.run(context -> {
214230
assertThat(context.getBeansOfType(AzureOpenAiChatModel.class)).isNotEmpty();
@@ -220,22 +236,28 @@ void chatActivation() {
220236
void embeddingActivation() {
221237

222238
// Disable the embedding auto-configuration.
223-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
239+
this.contextRunner
240+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
241+
AzureOpenAiEmbeddingAutoConfiguration.class))
224242
.withPropertyValues("spring.ai.model.embedding=none")
225243
.run(context -> {
226244
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isEmpty();
227245
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingProperties.class)).isEmpty();
228246
});
229247

230248
// The embedding auto-configuration is enabled by default.
231-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
249+
this.contextRunner
250+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
251+
AzureOpenAiEmbeddingAutoConfiguration.class))
232252
.run(context -> {
233253
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty();
234254
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingProperties.class)).isNotEmpty();
235255
});
236256

237257
// Explicitly enable the embedding auto-configuration.
238-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
258+
this.contextRunner
259+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
260+
AzureOpenAiEmbeddingAutoConfiguration.class))
239261
.withPropertyValues("spring.ai.model.embedding=azure-openai")
240262
.run(context -> {
241263
assertThat(context.getBeansOfType(AzureOpenAiEmbeddingModel.class)).isNotEmpty();
@@ -248,7 +270,8 @@ void audioTranscriptionActivation() {
248270

249271
// Disable the transcription auto-configuration.
250272
this.contextRunner
251-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
273+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
274+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
252275
.withPropertyValues("spring.ai.model.audio.transcription=none")
253276
.run(context -> {
254277
assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isEmpty();
@@ -257,12 +280,14 @@ void audioTranscriptionActivation() {
257280

258281
// The transcription auto-configuration is enabled by default.
259282
this.contextRunner
260-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
283+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
284+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
261285
.run(context -> assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isNotEmpty());
262286

263287
// Explicitly enable the transcription auto-configuration.
264288
this.contextRunner
265-
.withConfiguration(AutoConfigurations.of(AzureOpenAiAudioTranscriptionAutoConfiguration.class))
289+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
290+
AzureOpenAiAudioTranscriptionAutoConfiguration.class))
266291
.withPropertyValues("spring.ai.model.audio.transcription=azure-openai")
267292
.run(context -> assertThat(context.getBeansOfType(AzureOpenAiAudioTranscriptionModel.class)).isNotEmpty());
268293
}
@@ -271,7 +296,9 @@ void audioTranscriptionActivation() {
271296
void openAIClientBuilderCustomizer() {
272297
AtomicBoolean firstCustomizationApplied = new AtomicBoolean(false);
273298
AtomicBoolean secondCustomizationApplied = new AtomicBoolean(false);
274-
this.contextRunner.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class))
299+
this.contextRunner
300+
.withConfiguration(
301+
AutoConfigurations.of(ToolCallingAutoConfiguration.class, AzureOpenAiChatAutoConfiguration.class))
275302
.withBean("first", AzureOpenAIClientBuilderCustomizer.class,
276303
() -> clientBuilder -> firstCustomizationApplied.set(true))
277304
.withBean("second", AzureOpenAIClientBuilderCustomizer.class,

auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/test/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiAutoConfigurationPropertyTests.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.junit.jupiter.api.Test;
2020

21+
import org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration;
2122
import org.springframework.boot.autoconfigure.AutoConfigurations;
2223
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2324

@@ -36,7 +37,8 @@ public void embeddingPropertiesTest() {
3637
.withPropertyValues("spring.ai.azure.openai.api-key=TEST_API_KEY",
3738
"spring.ai.azure.openai.endpoint=TEST_ENDPOINT",
3839
"spring.ai.azure.openai.embedding.options.deployment-name=MODEL_XYZ")
39-
.withConfiguration(AutoConfigurations.of(AzureOpenAiEmbeddingAutoConfiguration.class))
40+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
41+
AzureOpenAiEmbeddingAutoConfiguration.class))
4042
.run(context -> {
4143
var chatProperties = context.getBean(AzureOpenAiEmbeddingProperties.class);
4244
var connectionProperties = context.getBean(AzureOpenAiConnectionProperties.class);
@@ -68,8 +70,8 @@ public void chatPropertiesTest() {
6870
"spring.ai.azure.openai.chat.options.user=userXYZ"
6971
)
7072
// @formatter:on
71-
.withConfiguration(AutoConfigurations.of(AzureOpenAiChatAutoConfiguration.class,
72-
AzureOpenAiEmbeddingAutoConfiguration.class))
73+
.withConfiguration(AutoConfigurations.of(ToolCallingAutoConfiguration.class,
74+
AzureOpenAiChatAutoConfiguration.class, AzureOpenAiEmbeddingAutoConfiguration.class))
7375
.run(context -> {
7476
var chatProperties = context.getBean(AzureOpenAiChatProperties.class);
7577
var connectionProperties = context.getBean(AzureOpenAiConnectionProperties.class);

0 commit comments

Comments
 (0)