Skip to content

Commit 9eacd40

Browse files
ilayaperumalgtzolov
authored andcommitted
Update/remove autoconfiguration enable/disable configurations
- Since the model autoconfiguration enable/disable flags are no longer used, remove them - Currently, the model autoconfigurations can be enabled/disabled via top level Spring AI properties such as spring.ai.model.chat/embedding/image/moderation=<model-provider-name> - Update documentation to add note section about this change - Update note on the autoconfiguration section to point to the configuration changes - Align the vertex ai text/multimodal keys in line with the other properties Signed-off-by: Ilayaperumal Gopinathan <[email protected]>
1 parent fc955c7 commit 9eacd40

File tree

110 files changed

+941
-520
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+941
-520
lines changed

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-anthropic/src/main/java/org/springframework/ai/model/anthropic/autoconfigure/AnthropicChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ public class AnthropicChatProperties {
3333

3434
public static final String CONFIG_PREFIX = "spring.ai.anthropic.chat";
3535

36-
/**
37-
* Enable Anthropic chat model.
38-
*/
39-
private boolean enabled = true;
40-
4136
/**
4237
* Client lever Ollama options. Use this property to configure generative temperature,
4338
* topK and topP and alike parameters. The null values are ignored defaulting to the
@@ -54,12 +49,4 @@ public AnthropicChatOptions getOptions() {
5449
return this.options;
5550
}
5651

57-
public boolean isEnabled() {
58-
return this.enabled;
59-
}
60-
61-
public void setEnabled(boolean enabled) {
62-
this.enabled = enabled;
63-
}
64-
6552
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-anthropic/src/test/java/org/springframework/ai/model/anthropic/autoconfigure/AnthropicPropertiesTests.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ public void connectionProperties() {
5656

5757
assertThat(chatProperties.getOptions().getModel()).isEqualTo("MODEL_XYZ");
5858
assertThat(chatProperties.getOptions().getTemperature()).isEqualTo(0.55);
59-
// enabled is true by default
60-
assertThat(chatProperties.isEnabled()).isTrue();
6159
});
6260
}
6361

@@ -111,7 +109,7 @@ public void chatCompletionDisabled() {
111109
});
112110

113111
// Explicitly enable the chat auto-configuration.
114-
new ApplicationContextRunner().withPropertyValues("spring.ai.anthropic.chat.enabled=true")
112+
new ApplicationContextRunner().withPropertyValues("spring.ai.model.chat=anthropic")
115113
.withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class,
116114
RestClientAutoConfiguration.class, AnthropicChatAutoConfiguration.class))
117115
.run(context -> {

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiAudioTranscriptionProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,9 @@ public class AzureOpenAiAudioTranscriptionProperties {
3030

3131
public static final String CONFIG_PREFIX = "spring.ai.azure.openai.audio.transcription";
3232

33-
/**
34-
* Enable AzureOpenAI audio transcription model.
35-
*/
36-
private boolean enabled = true;
37-
3833
@NestedConfigurationProperty
3934
private AzureOpenAiAudioTranscriptionOptions options = AzureOpenAiAudioTranscriptionOptions.builder().build();
4035

41-
public boolean isEnabled() {
42-
return this.enabled;
43-
}
44-
45-
public void setEnabled(boolean enabled) {
46-
this.enabled = enabled;
47-
}
48-
4936
public AzureOpenAiAudioTranscriptionOptions getOptions() {
5037
return this.options;
5138
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,6 @@ public class AzureOpenAiChatProperties {
2929

3030
private static final Double DEFAULT_TEMPERATURE = 0.7;
3131

32-
/**
33-
* Enable Azure OpenAI chat model.
34-
*/
35-
private boolean enabled = true;
36-
3732
@NestedConfigurationProperty
3833
private AzureOpenAiChatOptions options = AzureOpenAiChatOptions.builder()
3934
.deploymentName(DEFAULT_DEPLOYMENT_NAME)
@@ -48,12 +43,4 @@ public void setOptions(AzureOpenAiChatOptions options) {
4843
this.options = options;
4944
}
5045

51-
public boolean isEnabled() {
52-
return this.enabled;
53-
}
54-
55-
public void setEnabled(boolean enabled) {
56-
this.enabled = enabled;
57-
}
58-
5946
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiEmbeddingProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ public class AzureOpenAiEmbeddingProperties {
2727

2828
public static final String CONFIG_PREFIX = "spring.ai.azure.openai.embedding";
2929

30-
/**
31-
* Enable Azure OpenAI embedding model.
32-
*/
33-
private boolean enabled = true;
34-
3530
@NestedConfigurationProperty
3631
private AzureOpenAiEmbeddingOptions options = AzureOpenAiEmbeddingOptions.builder()
3732
.deploymentName("text-embedding-ada-002")
@@ -57,12 +52,4 @@ public void setMetadataMode(MetadataMode metadataMode) {
5752
this.metadataMode = metadataMode;
5853
}
5954

60-
public boolean isEnabled() {
61-
return this.enabled;
62-
}
63-
64-
public void setEnabled(boolean enabled) {
65-
this.enabled = enabled;
66-
}
67-
6855
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-azure-openai/src/main/java/org/springframework/ai/model/azure/openai/autoconfigure/AzureOpenAiImageOptionsProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ public class AzureOpenAiImageOptionsProperties {
3131

3232
public static final String CONFIG_PREFIX = "spring.ai.azure.openai.image";
3333

34-
/**
35-
* Enable Azure OpenAI chat client.
36-
*/
37-
private boolean enabled = true;
38-
3934
@NestedConfigurationProperty
4035
private AzureOpenAiImageOptions options = AzureOpenAiImageOptions.builder().build();
4136

@@ -47,12 +42,4 @@ public void setOptions(AzureOpenAiImageOptions options) {
4742
this.options = options;
4843
}
4944

50-
public boolean isEnabled() {
51-
return this.enabled;
52-
}
53-
54-
public void setEnabled(boolean enabled) {
55-
this.enabled = enabled;
56-
}
57-
5845
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/main/java/org/springframework/ai/model/bedrock/cohere/autoconfigure/BedrockCohereEmbeddingProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ public class BedrockCohereEmbeddingProperties {
3434

3535
public static final String CONFIG_PREFIX = "spring.ai.bedrock.cohere.embedding";
3636

37-
/**
38-
* Enable Bedrock Cohere Embedding Model. False by default.
39-
*/
40-
private boolean enabled = false;
41-
4237
/**
4338
* Bedrock Cohere Embedding generative name. Defaults to
4439
* 'cohere.embed-multilingual-v3'.
@@ -51,14 +46,6 @@ public class BedrockCohereEmbeddingProperties {
5146
.truncate(CohereEmbeddingRequest.Truncate.NONE)
5247
.build();
5348

54-
public boolean isEnabled() {
55-
return this.enabled;
56-
}
57-
58-
public void setEnabled(boolean enabled) {
59-
this.enabled = enabled;
60-
}
61-
6249
public String getModel() {
6350
return this.model;
6451
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/main/java/org/springframework/ai/model/bedrock/converse/autoconfigure/BedrockConverseProxyChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -32,26 +32,13 @@ public class BedrockConverseProxyChatProperties {
3232

3333
public static final String CONFIG_PREFIX = "spring.ai.bedrock.converse.chat";
3434

35-
/**
36-
* Enable Bedrock Converse chat model.
37-
*/
38-
private boolean enabled = true;
39-
4035
@NestedConfigurationProperty
4136
private ToolCallingChatOptions options = ToolCallingChatOptions.builder()
4237
.temperature(0.7)
4338
.maxTokens(300)
4439
.topK(10)
4540
.build();
4641

47-
public boolean isEnabled() {
48-
return this.enabled;
49-
}
50-
51-
public void setEnabled(boolean enabled) {
52-
this.enabled = enabled;
53-
}
54-
5542
public ToolCallingChatOptions getOptions() {
5643
return this.options;
5744
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/main/java/org/springframework/ai/model/bedrock/titan/autoconfigure/BedrockTitanEmbeddingProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,6 @@ public class BedrockTitanEmbeddingProperties {
3131

3232
public static final String CONFIG_PREFIX = "spring.ai.bedrock.titan.embedding";
3333

34-
/**
35-
* Enable Bedrock Titan Embedding Model. False by default.
36-
*/
37-
private boolean enabled = false;
38-
3934
/**
4035
* Bedrock Titan Embedding generative name. Defaults to 'amazon.titan-embed-image-v1'.
4136
*/
@@ -51,14 +46,6 @@ public static String getConfigPrefix() {
5146
return CONFIG_PREFIX;
5247
}
5348

54-
public boolean isEnabled() {
55-
return this.enabled;
56-
}
57-
58-
public void setEnabled(boolean enabled) {
59-
this.enabled = enabled;
60-
}
61-
6249
public String getModel() {
6350
return this.model;
6451
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/test/java/org/springframework/ai/model/bedrock/cohere/autoconfigure/BedrockCohereEmbeddingAutoConfigurationIT.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public void batchEmbedding() {
8585
public void propertiesTest() {
8686

8787
BedrockTestUtils.getContextRunnerWithUserConfiguration()
88-
.withPropertyValues("spring.ai.bedrock.cohere.embedding.enabled=true",
88+
.withPropertyValues("spring.ai.model.embedding=bedrock-cohere",
8989
"spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY",
9090
"spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(),
9191
"spring.ai.bedrock.cohere.embedding.model=MODEL_XYZ",
@@ -96,7 +96,6 @@ public void propertiesTest() {
9696
var properties = context.getBean(BedrockCohereEmbeddingProperties.class);
9797
var awsProperties = context.getBean(BedrockAwsConnectionProperties.class);
9898

99-
assertThat(properties.isEnabled()).isTrue();
10099
assertThat(awsProperties.getRegion()).isEqualTo(Region.US_EAST_1.id());
101100
assertThat(properties.getModel()).isEqualTo("MODEL_XYZ");
102101

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/test/java/org/springframework/ai/model/bedrock/converse/autoconfigure/BedrockConverseProxyChatPropertiesTests.java

-2
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ public void chatOptionsTest() {
5151
.run(context -> {
5252
var chatProperties = context.getBean(BedrockConverseProxyChatProperties.class);
5353

54-
assertThat(chatProperties.isEnabled()).isTrue();
55-
5654
assertThat(chatProperties.getOptions().getModel()).isEqualTo("MODEL_XYZ");
5755
assertThat(chatProperties.getOptions().getMaxTokens()).isEqualTo(123);
5856
assertThat(chatProperties.getOptions().getStopSequences()).contains("boza", "koza");

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/test/java/org/springframework/ai/model/bedrock/titan/autoconfigure/BedrockTitanEmbeddingAutoConfigurationIT.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
public class BedrockTitanEmbeddingAutoConfigurationIT {
4545

4646
private final ApplicationContextRunner contextRunner = BedrockTestUtils.getContextRunner()
47-
.withPropertyValues("spring.ai.bedrock.titan.embedding.enabled=true",
47+
.withPropertyValues("spring.ai.model.embedding=bedrock-titan",
4848
"spring.ai.bedrock.aws.access-key=" + System.getenv("AWS_ACCESS_KEY_ID"),
4949
"spring.ai.bedrock.aws.secret-key=" + System.getenv("AWS_SECRET_ACCESS_KEY"),
5050
"spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(),
@@ -86,7 +86,7 @@ public void singleImageEmbedding() {
8686
public void propertiesTest() {
8787

8888
BedrockTestUtils.getContextRunnerWithUserConfiguration()
89-
.withPropertyValues("spring.ai.bedrock.titan.embedding.enabled=true",
89+
.withPropertyValues("spring.ai.model.embedding=bedrock-titan",
9090
"spring.ai.bedrock.aws.access-key=ACCESS_KEY", "spring.ai.bedrock.aws.secret-key=SECRET_KEY",
9191
"spring.ai.bedrock.aws.region=" + Region.US_EAST_1.id(),
9292
"spring.ai.bedrock.titan.embedding.model=MODEL_XYZ",
@@ -96,7 +96,6 @@ public void propertiesTest() {
9696
var properties = context.getBean(BedrockTitanEmbeddingProperties.class);
9797
var awsProperties = context.getBean(BedrockAwsConnectionProperties.class);
9898

99-
assertThat(properties.isEnabled()).isTrue();
10099
assertThat(awsProperties.getRegion()).isEqualTo(Region.US_EAST_1.id());
101100
assertThat(properties.getModel()).isEqualTo("MODEL_XYZ");
102101

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-huggingface/src/main/java/org/springframework/ai/model/huggingface/autoconfigure/HuggingfaceChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,6 @@ public class HuggingfaceChatProperties {
4141
*/
4242
private String url;
4343

44-
/**
45-
* Enable Hugging Face chat model.
46-
*/
47-
private boolean enabled = true;
48-
4944
public String getApiKey() {
5045
return this.apiKey;
5146
}
@@ -62,12 +57,4 @@ public void setUrl(String url) {
6257
this.url = url;
6358
}
6459

65-
public boolean isEnabled() {
66-
return this.enabled;
67-
}
68-
69-
public void setEnabled(boolean enabled) {
70-
this.enabled = enabled;
71-
}
72-
7360
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-minimax/src/main/java/org/springframework/ai/model/minimax/autoconfigure/MiniMaxChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@ public class MiniMaxChatProperties extends MiniMaxParentProperties {
3535

3636
private static final Double DEFAULT_TEMPERATURE = 0.7;
3737

38-
/**
39-
* Enable MiniMax chat model.
40-
*/
41-
private boolean enabled = true;
42-
4338
@NestedConfigurationProperty
4439
private MiniMaxChatOptions options = MiniMaxChatOptions.builder()
4540
.model(DEFAULT_CHAT_MODEL)
@@ -54,12 +49,4 @@ public void setOptions(MiniMaxChatOptions options) {
5449
this.options = options;
5550
}
5651

57-
public boolean isEnabled() {
58-
return this.enabled;
59-
}
60-
61-
public void setEnabled(boolean enabled) {
62-
this.enabled = enabled;
63-
}
64-
6552
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-minimax/src/main/java/org/springframework/ai/model/minimax/autoconfigure/MiniMaxEmbeddingProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,6 @@ public class MiniMaxEmbeddingProperties extends MiniMaxParentProperties {
3434

3535
public static final String DEFAULT_EMBEDDING_MODEL = MiniMaxApi.EmbeddingModel.Embo_01.value;
3636

37-
/**
38-
* Enable MiniMax embedding model.
39-
*/
40-
private boolean enabled = true;
41-
4237
private MetadataMode metadataMode = MetadataMode.EMBED;
4338

4439
@NestedConfigurationProperty
@@ -60,12 +55,4 @@ public void setMetadataMode(MetadataMode metadataMode) {
6055
this.metadataMode = metadataMode;
6156
}
6257

63-
public boolean isEnabled() {
64-
return this.enabled;
65-
}
66-
67-
public void setEnabled(boolean enabled) {
68-
this.enabled = enabled;
69-
}
70-
7158
}

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-minimax/src/test/java/org/springframework/ai/model/minimax/autoconfigure/MiniMaxPropertiesTests.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ void embeddingActivation() {
281281

282282
new ApplicationContextRunner()
283283
.withPropertyValues("spring.ai.minimax.api-key=API_KEY", "spring.ai.minimax.base-url=TEST_BASE_URL",
284-
"spring.ai.minimax.embedding.enabled=true")
284+
"spring.ai.model.embedding=minimax")
285285
.withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class,
286286
RestClientAutoConfiguration.class, MiniMaxEmbeddingAutoConfiguration.class))
287287
.run(context -> {

Diff for: auto-configurations/models/spring-ai-autoconfigure-model-mistral-ai/src/main/java/org/springframework/ai/model/mistralai/autoconfigure/MistralAiChatProperties.java

-13
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ public class MistralAiChatProperties extends MistralAiParentProperties {
4343

4444
private static final Boolean IS_ENABLED = false;
4545

46-
/**
47-
* Enable OpenAI chat model.
48-
*/
49-
private boolean enabled = true;
50-
5146
@NestedConfigurationProperty
5247
private MistralAiChatOptions options = MistralAiChatOptions.builder()
5348
.model(DEFAULT_CHAT_MODEL)
@@ -68,12 +63,4 @@ public void setOptions(MistralAiChatOptions options) {
6863
this.options = options;
6964
}
7065

71-
public boolean isEnabled() {
72-
return this.enabled;
73-
}
74-
75-
public void setEnabled(boolean enabled) {
76-
this.enabled = enabled;
77-
}
78-
7966
}

0 commit comments

Comments
 (0)