diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaApiAutoConfiguration.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaApiAutoConfiguration.java index a3b0904811f..6ea166aef5a 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaApiAutoConfiguration.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaApiAutoConfiguration.java @@ -20,9 +20,10 @@ import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; +import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.web.client.ResponseErrorHandler; @@ -38,10 +39,10 @@ * @author Ilayaperumal Gopinathan * @since 0.8.0 */ -@AutoConfiguration +@AutoConfiguration(after = { RestClientAutoConfiguration.class, WebClientAutoConfiguration.class, + SpringAiRetryAutoConfiguration.class }) @ConditionalOnClass(OllamaApi.class) @EnableConfigurationProperties(OllamaConnectionProperties.class) -@ImportAutoConfiguration(classes = { SpringAiRetryAutoConfiguration.class }) public class OllamaApiAutoConfiguration { @Bean diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfiguration.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfiguration.java index e8cbc25a31f..34b9ad58346 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfiguration.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfiguration.java @@ -31,12 +31,9 @@ import org.springframework.ai.ollama.management.PullModelStrategy; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.retry.support.RetryTemplate; @@ -51,13 +48,11 @@ * @author Jonghoon Park * @since 0.8.0 */ -@AutoConfiguration(after = { RestClientAutoConfiguration.class, ToolCallingAutoConfiguration.class }) +@AutoConfiguration(after = { OllamaApiAutoConfiguration.class, ToolCallingAutoConfiguration.class }) @ConditionalOnClass(OllamaChatModel.class) @ConditionalOnProperty(name = SpringAIModelProperties.CHAT_MODEL, havingValue = SpringAIModels.OLLAMA, matchIfMissing = true) @EnableConfigurationProperties({ OllamaChatProperties.class, OllamaInitializationProperties.class }) -@ImportAutoConfiguration(classes = { OllamaApiAutoConfiguration.class, RestClientAutoConfiguration.class, - ToolCallingAutoConfiguration.class, WebClientAutoConfiguration.class }) public class OllamaChatAutoConfiguration { @Bean diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfiguration.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfiguration.java index 0d0bb0964c9..e1269da7ef2 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfiguration.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfiguration.java @@ -27,12 +27,9 @@ import org.springframework.ai.ollama.management.PullModelStrategy; import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; -import org.springframework.boot.autoconfigure.ImportAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; @@ -45,13 +42,11 @@ * @author Ilayaperumal Gopinathan * @since 0.8.0 */ -@AutoConfiguration(after = RestClientAutoConfiguration.class) +@AutoConfiguration(after = OllamaApiAutoConfiguration.class) @ConditionalOnClass(OllamaEmbeddingModel.class) @ConditionalOnProperty(name = SpringAIModelProperties.EMBEDDING_MODEL, havingValue = SpringAIModels.OLLAMA, matchIfMissing = true) @EnableConfigurationProperties({ OllamaEmbeddingProperties.class, OllamaInitializationProperties.class }) -@ImportAutoConfiguration(classes = { OllamaApiAutoConfiguration.class, RestClientAutoConfiguration.class, - WebClientAutoConfiguration.class }) public class OllamaEmbeddingAutoConfiguration { @Bean diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/BaseOllamaIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/BaseOllamaIT.java index f433011e5d0..9a3bc2527f4 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/BaseOllamaIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/BaseOllamaIT.java @@ -23,10 +23,14 @@ import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.ollama.OllamaContainer; +import org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration; import org.springframework.ai.ollama.api.OllamaApi; import org.springframework.ai.ollama.management.ModelManagementOptions; import org.springframework.ai.ollama.management.OllamaModelManager; import org.springframework.ai.ollama.management.PullModelStrategy; +import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration; +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.util.Assert; @Testcontainers @@ -112,4 +116,15 @@ private static void ensureModelIsPresent(final OllamaApi ollamaApi, final String ollamaModelManager.pullModel(model, PullModelStrategy.WHEN_MISSING); } + public static AutoConfigurations ollamaAutoConfig(Class... additionalAutoConfigurations) { + Class[] dependencies = new Class[] { OllamaApiAutoConfiguration.class, RestClientAutoConfiguration.class, + SpringAiRetryAutoConfiguration.class, ToolCallingAutoConfiguration.class }; + Class[] allAutoConfigurations = new Class[dependencies.length + additionalAutoConfigurations.length]; + System.arraycopy(dependencies, 0, allAutoConfigurations, 0, dependencies.length); + System.arraycopy(additionalAutoConfigurations, 0, allAutoConfigurations, dependencies.length, + additionalAutoConfigurations.length); + + return AutoConfigurations.of(allAutoConfigurations); + } + } diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationIT.java index 84d72346304..74ca973d90e 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationIT.java @@ -33,7 +33,6 @@ import org.springframework.ai.ollama.api.OllamaApi; import org.springframework.ai.ollama.api.OllamaModel; import org.springframework.ai.ollama.management.OllamaModelManager; -import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -55,7 +54,7 @@ public class OllamaChatAutoConfigurationIT extends BaseOllamaIT { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10") // @formatter:on - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)); + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration.class)); private final UserMessage userMessage = new UserMessage("What's the capital of Denmark?"); diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationTests.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationTests.java index 6e3fe39d870..72a9d4e4925 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationTests.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfigurationTests.java @@ -18,9 +18,6 @@ import org.junit.jupiter.api.Test; -import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -43,8 +40,7 @@ public void propertiesTest() { "spring.ai.ollama.chat.options.topK=123") // @formatter:on - .withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class, - RestClientAutoConfiguration.class, OllamaChatAutoConfiguration.class)) + .withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaChatAutoConfiguration.class)) .run(context -> { var chatProperties = context.getBean(OllamaChatProperties.class); var connectionProperties = context.getBean(OllamaConnectionProperties.class); diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationIT.java index d398974e2cc..e6ef4dfa435 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationIT.java @@ -27,8 +27,6 @@ import org.springframework.ai.ollama.api.OllamaApi; import org.springframework.ai.ollama.api.OllamaModel; import org.springframework.ai.ollama.management.OllamaModelManager; -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -45,8 +43,7 @@ public class OllamaEmbeddingAutoConfigurationIT extends BaseOllamaIT { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withPropertyValues("spring.ai.ollama.embedding.options.model=" + MODEL_NAME, "spring.ai.ollama.base-url=" + getBaseUrl()) - .withConfiguration( - AutoConfigurations.of(RestClientAutoConfiguration.class, OllamaEmbeddingAutoConfiguration.class)); + .withConfiguration(ollamaAutoConfig(OllamaEmbeddingAutoConfiguration.class)); @BeforeAll public static void beforeAll() throws IOException, InterruptedException { diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationTests.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationTests.java index fba4b5eb67c..bff1ad05d7d 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationTests.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaEmbeddingAutoConfigurationTests.java @@ -18,9 +18,6 @@ import org.junit.jupiter.api.Test; -import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -42,8 +39,7 @@ public void propertiesTest() { // @formatter:on ) - .withConfiguration(AutoConfigurations.of(SpringAiRetryAutoConfiguration.class, - RestClientAutoConfiguration.class, OllamaEmbeddingAutoConfiguration.class)) + .withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaEmbeddingAutoConfiguration.class)) .run(context -> { var embeddingProperties = context.getBean(OllamaEmbeddingProperties.class); var connectionProperties = context.getBean(OllamaConnectionProperties.class); diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaModelConfigurationTests.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaModelConfigurationTests.java index 6555038b970..5f8b989a3f0 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaModelConfigurationTests.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/OllamaModelConfigurationTests.java @@ -20,7 +20,6 @@ import org.springframework.ai.ollama.OllamaChatModel; import org.springframework.ai.ollama.OllamaEmbeddingModel; -import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -36,19 +35,20 @@ public class OllamaModelConfigurationTests { @Test void chatModelActivation() { - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)).run(context -> { - assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); - assertThat(context.getBeansOfType(OllamaChatModel.class)).isNotEmpty(); - }); + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaChatAutoConfiguration.class)) + .run(context -> { + assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); + assertThat(context.getBeansOfType(OllamaChatModel.class)).isNotEmpty(); + }); - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)) + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaChatAutoConfiguration.class)) .withPropertyValues("spring.ai.model.chat=none") .run(context -> { assertThat(context.getBeansOfType(OllamaChatProperties.class)).isEmpty(); assertThat(context.getBeansOfType(OllamaChatModel.class)).isEmpty(); }); - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)) + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaChatAutoConfiguration.class)) .withPropertyValues("spring.ai.model.chat=ollama") .run(context -> { assertThat(context.getBeansOfType(OllamaChatProperties.class)).isNotEmpty(); @@ -60,20 +60,20 @@ void chatModelActivation() { @Test void embeddingModelActivation() { - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaEmbeddingAutoConfiguration.class)) + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaEmbeddingAutoConfiguration.class)) .run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isNotEmpty(); assertThat(context.getBeansOfType(OllamaEmbeddingModel.class)).isNotEmpty(); }); - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaEmbeddingAutoConfiguration.class)) + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaEmbeddingAutoConfiguration.class)) .withPropertyValues("spring.ai.model.embedding=none") .run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isEmpty(); assertThat(context.getBeansOfType(OllamaEmbeddingModel.class)).isEmpty(); }); - this.contextRunner.withConfiguration(AutoConfigurations.of(OllamaEmbeddingAutoConfiguration.class)) + this.contextRunner.withConfiguration(BaseOllamaIT.ollamaAutoConfig(OllamaEmbeddingAutoConfiguration.class)) .withPropertyValues("spring.ai.model.embedding=ollama") .run(context -> { assertThat(context.getBeansOfType(OllamaEmbeddingProperties.class)).isNotEmpty(); diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackInPromptIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackInPromptIT.java index b88056107c9..ac39a8053a6 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackInPromptIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackInPromptIT.java @@ -36,7 +36,6 @@ import org.springframework.ai.ollama.api.OllamaChatOptions; import org.springframework.ai.ollama.api.OllamaModel; import org.springframework.ai.tool.function.FunctionToolCallback; -import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -54,7 +53,7 @@ public class FunctionCallbackInPromptIT extends BaseOllamaIT { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10") // @formatter:on - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)); + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration.class)); @BeforeAll public static void beforeAll() { diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionCallbackIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionCallbackIT.java index e365389ea5f..6b8d555879f 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionCallbackIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionCallbackIT.java @@ -38,7 +38,6 @@ import org.springframework.ai.ollama.api.OllamaChatOptions; import org.springframework.ai.tool.ToolCallback; import org.springframework.ai.tool.function.FunctionToolCallback; -import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -58,7 +57,7 @@ public class OllamaFunctionCallbackIT extends BaseOllamaIT { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10") // @formatter:on - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)) + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration.class)) .withUserConfiguration(Config.class); @BeforeAll diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionToolBeanIT.java b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionToolBeanIT.java index b9c264f08ae..8832f84ea87 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionToolBeanIT.java +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/java/org/springframework/ai/model/ollama/autoconfigure/tool/OllamaFunctionToolBeanIT.java @@ -39,7 +39,6 @@ import org.springframework.ai.ollama.api.OllamaModel; import org.springframework.ai.support.ToolCallbacks; import org.springframework.ai.tool.annotation.Tool; -import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -65,7 +64,7 @@ public class OllamaFunctionToolBeanIT extends BaseOllamaIT { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10") // @formatter:on - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration.class)) + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration.class)) .withUserConfiguration(Config.class); @BeforeAll diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackContextKotlinIT.kt b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackContextKotlinIT.kt index 1ef6be1d79e..31034676d87 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackContextKotlinIT.kt +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/FunctionCallbackContextKotlinIT.kt @@ -55,7 +55,7 @@ class FunctionCallbackResolverKotlinIT : BaseOllamaIT() { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10" ) - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration::class.java)) + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration::class.java)) .withUserConfiguration(Config::class.java) @Test diff --git a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/ToolCallbackKotlinIT.kt b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/ToolCallbackKotlinIT.kt index 253dce3277b..e812100fe94 100644 --- a/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/ToolCallbackKotlinIT.kt +++ b/auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/test/kotlin/org/springframework/ai/model/ollama/autoconfigure/tool/ToolCallbackKotlinIT.kt @@ -26,7 +26,6 @@ import org.springframework.ai.model.ollama.autoconfigure.BaseOllamaIT import org.springframework.ai.model.ollama.autoconfigure.OllamaChatAutoConfiguration import org.springframework.ai.model.tool.ToolCallingChatOptions import org.springframework.ai.ollama.OllamaChatModel -import org.springframework.boot.autoconfigure.AutoConfigurations import org.springframework.boot.test.context.runner.ApplicationContextRunner import org.springframework.context.annotation.Bean import org.springframework.context.annotation.Configuration @@ -55,22 +54,23 @@ class ToolCallbackKotlinIT : BaseOllamaIT() { "spring.ai.ollama.chat.options.temperature=0.5", "spring.ai.ollama.chat.options.topK=10" ) - .withConfiguration(AutoConfigurations.of(OllamaChatAutoConfiguration::class.java)) + .withConfiguration(ollamaAutoConfig(OllamaChatAutoConfiguration::class.java)) .withUserConfiguration(Config::class.java) @Test fun toolCallTest() { - this.contextRunner.run {context -> + this.contextRunner.run { context -> val chatModel = context.getBean(OllamaChatModel::class.java) val userMessage = UserMessage( - "What are the weather conditions in San Francisco, Tokyo, and Paris? Find the temperature in Celsius for each of the three locations.") + "What are the weather conditions in San Francisco, Tokyo, and Paris? Find the temperature in Celsius for each of the three locations." + ) val functionOptions = ToolCallingChatOptions.builder().toolNames("weatherInfo").build() val response = chatModel - .call(Prompt(listOf(userMessage), functionOptions)) + .call(Prompt(listOf(userMessage), functionOptions)) logger.info("Response: $response") @@ -86,7 +86,8 @@ class ToolCallbackKotlinIT : BaseOllamaIT() { // Test weatherFunction val userMessage = UserMessage( - "What are the weather conditions in San Francisco, Tokyo, and Paris? Find the temperature in Celsius for each of the three locations.") + "What are the weather conditions in San Francisco, Tokyo, and Paris? Find the temperature in Celsius for each of the three locations." + ) val functionOptions = ToolCallingChatOptions.builder().toolNames("weatherInfo").build()