Skip to content

Commit 288fdf9

Browse files
fix incorrect ollama autoconfiguration changes (#3645)
Auto-cherry-pick to 1.0.x Fixes #3645 Signed-off-by: jonghoonpark <[email protected]>
1 parent 4cc4b10 commit 288fdf9

File tree

5 files changed

+13
-158
lines changed

5 files changed

+13
-158
lines changed

auto-configurations/models/spring-ai-autoconfigure-model-ollama/pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
<groupId>org.springframework.ai</groupId>
4040
<artifactId>spring-ai-autoconfigure-retry</artifactId>
4141
<version>${project.parent.version}</version>
42-
<optional>true</optional>
4342
</dependency>
4443

4544
<dependency>

auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaApiAutoConfiguration.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,15 @@
1717
package org.springframework.ai.model.ollama.autoconfigure;
1818

1919
import org.springframework.ai.ollama.api.OllamaApi;
20+
import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration;
2021
import org.springframework.beans.factory.ObjectProvider;
2122
import org.springframework.boot.autoconfigure.AutoConfiguration;
23+
import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
2224
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2325
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2426
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2527
import org.springframework.context.annotation.Bean;
28+
import org.springframework.web.client.ResponseErrorHandler;
2629
import org.springframework.web.client.RestClient;
2730
import org.springframework.web.reactive.function.client.WebClient;
2831

@@ -38,6 +41,7 @@
3841
@AutoConfiguration
3942
@ConditionalOnClass(OllamaApi.class)
4043
@EnableConfigurationProperties(OllamaConnectionProperties.class)
44+
@ImportAutoConfiguration(classes = { SpringAiRetryAutoConfiguration.class })
4145
public class OllamaApiAutoConfiguration {
4246

4347
@Bean
@@ -50,11 +54,12 @@ public PropertiesOllamaConnectionDetails ollamaConnectionDetails(OllamaConnectio
5054
@ConditionalOnMissingBean
5155
public OllamaApi ollamaApi(OllamaConnectionDetails connectionDetails,
5256
ObjectProvider<RestClient.Builder> restClientBuilderProvider,
53-
ObjectProvider<WebClient.Builder> webClientBuilderProvider) {
57+
ObjectProvider<WebClient.Builder> webClientBuilderProvider, ResponseErrorHandler responseErrorHandler) {
5458
return OllamaApi.builder()
5559
.baseUrl(connectionDetails.getBaseUrl())
5660
.restClientBuilder(restClientBuilderProvider.getIfAvailable(RestClient::builder))
5761
.webClientBuilder(webClientBuilderProvider.getIfAvailable(WebClient::builder))
62+
.responseErrorHandler(responseErrorHandler)
5863
.build();
5964
}
6065

auto-configurations/models/spring-ai-autoconfigure-model-ollama/src/main/java/org/springframework/ai/model/ollama/autoconfigure/OllamaChatAutoConfiguration.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
4040
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4141
import org.springframework.context.annotation.Bean;
42+
import org.springframework.retry.support.RetryTemplate;
4243

4344
/**
4445
* {@link AutoConfiguration Auto-configuration} for Ollama Chat model.
@@ -47,6 +48,7 @@
4748
* @author Eddú Meléndez
4849
* @author Thomas Vitale
4950
* @author Ilayaperumal Gopinathan
51+
* @author Jonghoon Park
5052
* @since 0.8.0
5153
*/
5254
@AutoConfiguration(after = { RestClientAutoConfiguration.class, ToolCallingAutoConfiguration.class })
@@ -64,7 +66,8 @@ public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties
6466
OllamaInitializationProperties initProperties, ToolCallingManager toolCallingManager,
6567
ObjectProvider<ObservationRegistry> observationRegistry,
6668
ObjectProvider<ChatModelObservationConvention> observationConvention,
67-
ObjectProvider<ToolExecutionEligibilityPredicate> ollamaToolExecutionEligibilityPredicate) {
69+
ObjectProvider<ToolExecutionEligibilityPredicate> ollamaToolExecutionEligibilityPredicate,
70+
RetryTemplate retryTemplate) {
6871
var chatModelPullStrategy = initProperties.getChat().isInclude() ? initProperties.getPullModelStrategy()
6972
: PullModelStrategy.NEVER;
7073

@@ -78,6 +81,7 @@ public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties
7881
.modelManagementOptions(
7982
new ModelManagementOptions(chatModelPullStrategy, initProperties.getChat().getAdditionalModels(),
8083
initProperties.getTimeout(), initProperties.getMaxRetries()))
84+
.retryTemplate(retryTemplate)
8185
.build();
8286

8387
observationConvention.ifAvailable(chatModel::setObservationConvention);

models/spring-ai-ollama/src/test/java/org/springframework/ai/ollama/OllamaEmbeddingModelObservationIT.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,12 @@ public TestObservationRegistry observationRegistry() {
9797
}
9898

9999
@Bean
100-
public OllamaApi openAiApi() {
100+
public OllamaApi ollamaApi() {
101101
return initializeOllama(MODEL);
102102
}
103103

104104
@Bean
105-
public OllamaEmbeddingModel openAiEmbeddingModel(OllamaApi ollamaApi,
105+
public OllamaEmbeddingModel ollamaEmbeddingModel(OllamaApi ollamaApi,
106106
TestObservationRegistry observationRegistry) {
107107
return OllamaEmbeddingModel.builder().ollamaApi(ollamaApi).observationRegistry(observationRegistry).build();
108108
}

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/ollama/OllamaAutoConfiguration.java

Lines changed: 0 additions & 153 deletions
This file was deleted.

0 commit comments

Comments
 (0)