Skip to content

Commit 7f0a97d

Browse files
committed
Remove FunctionCallbackResolver from chat model autoconfigurations
- FunctionCallbackResolver is deprecated and replaced by ToolCallingManager's ToolCallbackResolver Signed-off-by: Ilayaperumal Gopinathan <[email protected]>
1 parent acd986e commit 7f0a97d

File tree

8 files changed

+9
-83
lines changed

8 files changed

+9
-83
lines changed

auto-configurations/models/spring-ai-autoconfigure-model-anthropic/src/main/java/org/springframework/ai/model/anthropic/autoconfigure/AnthropicChatAutoConfiguration.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import org.springframework.ai.chat.observation.ChatModelObservationConvention;
2424
import org.springframework.ai.model.SpringAIModelProperties;
2525
import org.springframework.ai.model.SpringAIModels;
26-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
27-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2826
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
2927
import org.springframework.ai.model.tool.ToolCallingManager;
3028
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -39,7 +37,6 @@
3937
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
4038
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
4139
import org.springframework.boot.context.properties.EnableConfigurationProperties;
42-
import org.springframework.context.ApplicationContext;
4340
import org.springframework.context.annotation.Bean;
4441
import org.springframework.retry.support.RetryTemplate;
4542
import org.springframework.web.client.ResponseErrorHandler;
@@ -89,7 +86,7 @@ public AnthropicChatModel anthropicChatModel(AnthropicApi anthropicApi, Anthropi
8986
.defaultOptions(chatProperties.getOptions())
9087
.toolCallingManager(toolCallingManager)
9188
.toolExecutionEligibilityPredicate(anthropicToolExecutionEligibilityPredicate
92-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
89+
.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
9390
.retryTemplate(retryTemplate)
9491
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
9592
.build();
@@ -99,12 +96,4 @@ public AnthropicChatModel anthropicChatModel(AnthropicApi anthropicApi, Anthropi
9996
return chatModel;
10097
}
10198

102-
@Bean
103-
@ConditionalOnMissingBean
104-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
105-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
106-
manager.setApplicationContext(context);
107-
return manager;
108-
}
109-
11099
}

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 & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import org.springframework.ai.chat.observation.ChatModelObservationConvention;
2424
import org.springframework.ai.model.SpringAIModelProperties;
2525
import org.springframework.ai.model.SpringAIModels;
26-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
27-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2826
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
2927
import org.springframework.ai.model.tool.ToolCallingManager;
3028
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -36,7 +34,6 @@
3634
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3735
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3836
import org.springframework.boot.context.properties.EnableConfigurationProperties;
39-
import org.springframework.context.ApplicationContext;
4037
import org.springframework.context.annotation.Bean;
4138
import org.springframework.context.annotation.Import;
4239

@@ -70,20 +67,12 @@ public AzureOpenAiChatModel azureOpenAiChatModel(OpenAIClientBuilder openAIClien
7067
.defaultOptions(chatProperties.getOptions())
7168
.toolCallingManager(toolCallingManager)
7269
.toolExecutionEligibilityPredicate(azureOpenAiToolExecutionEligibilityPredicate
73-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
70+
.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
7471
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
7572
.build();
7673
observationConvention.ifAvailable(chatModel::setObservationConvention);
7774

7875
return chatModel;
7976
}
8077

81-
@Bean
82-
@ConditionalOnMissingBean
83-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
84-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
85-
manager.setApplicationContext(context);
86-
return manager;
87-
}
88-
8978
}

auto-configurations/models/spring-ai-autoconfigure-model-bedrock-ai/src/main/java/org/springframework/ai/model/bedrock/converse/autoconfigure/BedrockConverseProxyChatAutoConfiguration.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import org.springframework.ai.model.SpringAIModels;
2929
import org.springframework.ai.model.bedrock.autoconfigure.BedrockAwsConnectionConfiguration;
3030
import org.springframework.ai.model.bedrock.autoconfigure.BedrockAwsConnectionProperties;
31-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
32-
import org.springframework.ai.model.function.FunctionCallbackResolver;
3331
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
3432
import org.springframework.ai.model.tool.ToolCallingManager;
3533
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -42,7 +40,6 @@
4240
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4341
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4442
import org.springframework.boot.context.properties.EnableConfigurationProperties;
45-
import org.springframework.context.ApplicationContext;
4643
import org.springframework.context.annotation.Bean;
4744
import org.springframework.context.annotation.Import;
4845

@@ -82,8 +79,8 @@ public BedrockProxyChatModel bedrockProxyChatModel(AwsCredentialsProvider creden
8279
.defaultOptions(chatProperties.getOptions())
8380
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
8481
.toolCallingManager(toolCallingManager)
85-
.toolExecutionEligibilityPredicate(bedrockToolExecutionEligibilityPredicate
86-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
82+
.toolExecutionEligibilityPredicate(
83+
bedrockToolExecutionEligibilityPredicate.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
8784
.bedrockRuntimeClient(bedrockRuntimeClient.getIfAvailable())
8885
.bedrockRuntimeAsyncClient(bedrockRuntimeAsyncClient.getIfAvailable())
8986
.build();
@@ -93,12 +90,4 @@ public BedrockProxyChatModel bedrockProxyChatModel(AwsCredentialsProvider creden
9390
return chatModel;
9491
}
9592

96-
@Bean
97-
@ConditionalOnMissingBean
98-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
99-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
100-
manager.setApplicationContext(context);
101-
return manager;
102-
}
103-
10493
}

auto-configurations/models/spring-ai-autoconfigure-model-mistral-ai/src/main/java/org/springframework/ai/model/mistralai/autoconfigure/MistralAiChatAutoConfiguration.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import org.springframework.ai.mistralai.api.MistralAiApi;
2424
import org.springframework.ai.model.SpringAIModelProperties;
2525
import org.springframework.ai.model.SpringAIModels;
26-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
27-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2826
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
2927
import org.springframework.ai.model.tool.ToolCallingManager;
3028
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -38,7 +36,6 @@
3836
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
3937
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
4038
import org.springframework.boot.context.properties.EnableConfigurationProperties;
41-
import org.springframework.context.ApplicationContext;
4239
import org.springframework.context.annotation.Bean;
4340
import org.springframework.retry.support.RetryTemplate;
4441
import org.springframework.util.Assert;
@@ -83,7 +80,7 @@ public MistralAiChatModel mistralAiChatModel(MistralAiCommonProperties commonPro
8380
.defaultOptions(chatProperties.getOptions())
8481
.toolCallingManager(toolCallingManager)
8582
.toolExecutionEligibilityPredicate(mistralAiToolExecutionEligibilityPredicate
86-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
83+
.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
8784
.retryTemplate(retryTemplate)
8885
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
8986
.build();
@@ -105,12 +102,4 @@ private MistralAiApi mistralAiApi(String apiKey, String commonApiKey, String bas
105102
return new MistralAiApi(resoledBaseUrl, resolvedApiKey, restClientBuilder, responseErrorHandler);
106103
}
107104

108-
@Bean
109-
@ConditionalOnMissingBean
110-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
111-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
112-
manager.setApplicationContext(context);
113-
return manager;
114-
}
115-
116105
}

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

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@
2121
import org.springframework.ai.chat.observation.ChatModelObservationConvention;
2222
import org.springframework.ai.model.SpringAIModelProperties;
2323
import org.springframework.ai.model.SpringAIModels;
24-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
25-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2624
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
2725
import org.springframework.ai.model.tool.ToolCallingManager;
2826
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -40,7 +38,6 @@
4038
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
4139
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
4240
import org.springframework.boot.context.properties.EnableConfigurationProperties;
43-
import org.springframework.context.ApplicationContext;
4441
import org.springframework.context.annotation.Bean;
4542

4643
/**
@@ -75,8 +72,8 @@ public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties
7572
.ollamaApi(ollamaApi)
7673
.defaultOptions(properties.getOptions())
7774
.toolCallingManager(toolCallingManager)
78-
.toolExecutionEligibilityPredicate(ollamaToolExecutionEligibilityPredicate
79-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
75+
.toolExecutionEligibilityPredicate(
76+
ollamaToolExecutionEligibilityPredicate.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
8077
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
8178
.modelManagementOptions(
8279
new ModelManagementOptions(chatModelPullStrategy, initProperties.getChat().getAdditionalModels(),
@@ -88,12 +85,4 @@ public OllamaChatModel ollamaChatModel(OllamaApi ollamaApi, OllamaChatProperties
8885
return chatModel;
8986
}
9087

91-
@Bean
92-
@ConditionalOnMissingBean
93-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
94-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
95-
manager.setApplicationContext(context);
96-
return manager;
97-
}
98-
9988
}

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

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
import org.springframework.ai.model.SimpleApiKey;
2323
import org.springframework.ai.model.SpringAIModelProperties;
2424
import org.springframework.ai.model.SpringAIModels;
25-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
26-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2725
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
2826
import org.springframework.ai.model.tool.ToolCallingManager;
2927
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -40,7 +38,6 @@
4038
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
4139
import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration;
4240
import org.springframework.boot.context.properties.EnableConfigurationProperties;
43-
import org.springframework.context.ApplicationContext;
4441
import org.springframework.context.annotation.Bean;
4542
import org.springframework.retry.support.RetryTemplate;
4643
import org.springframework.web.client.ResponseErrorHandler;
@@ -85,8 +82,8 @@ public OpenAiChatModel openAiChatModel(OpenAiConnectionProperties commonProperti
8582
.openAiApi(openAiApi)
8683
.defaultOptions(chatProperties.getOptions())
8784
.toolCallingManager(toolCallingManager)
88-
.toolExecutionEligibilityPredicate(openAiToolExecutionEligibilityPredicate
89-
.getIfUnique(() -> new DefaultToolExecutionEligibilityPredicate()))
85+
.toolExecutionEligibilityPredicate(
86+
openAiToolExecutionEligibilityPredicate.getIfUnique(DefaultToolExecutionEligibilityPredicate::new))
9087
.retryTemplate(retryTemplate)
9188
.observationRegistry(observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP))
9289
.build();
@@ -115,12 +112,4 @@ private OpenAiApi openAiApi(OpenAiChatProperties chatProperties, OpenAiConnectio
115112
.build();
116113
}
117114

118-
@Bean
119-
@ConditionalOnMissingBean
120-
public FunctionCallbackResolver springAiFunctionManager(ApplicationContext context) {
121-
DefaultFunctionCallbackResolver manager = new DefaultFunctionCallbackResolver();
122-
manager.setApplicationContext(context);
123-
return manager;
124-
}
125-
126115
}

auto-configurations/models/spring-ai-autoconfigure-model-zhipuai/src/main/java/org/springframework/ai/model/zhipuai/autoconfigure/ZhiPuAiChatAutoConfiguration.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,11 @@
1616

1717
package org.springframework.ai.model.zhipuai.autoconfigure;
1818

19-
import java.util.List;
20-
2119
import io.micrometer.observation.ObservationRegistry;
2220

2321
import org.springframework.ai.chat.observation.ChatModelObservationConvention;
2422
import org.springframework.ai.model.SpringAIModelProperties;
2523
import org.springframework.ai.model.SpringAIModels;
26-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
27-
import org.springframework.ai.model.function.FunctionCallback;
28-
import org.springframework.ai.model.function.FunctionCallbackResolver;
2924
import org.springframework.ai.model.tool.DefaultToolExecutionEligibilityPredicate;
3025
import org.springframework.ai.model.tool.ToolCallingManager;
3126
import org.springframework.ai.model.tool.ToolExecutionEligibilityPredicate;
@@ -41,7 +36,6 @@
4136
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4237
import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
4338
import org.springframework.boot.context.properties.EnableConfigurationProperties;
44-
import org.springframework.context.ApplicationContext;
4539
import org.springframework.context.annotation.Bean;
4640
import org.springframework.retry.support.RetryTemplate;
4741
import org.springframework.util.Assert;

models/spring-ai-zhipuai/src/test/java/org/springframework/ai/zhipuai/chat/ZhiPuAiChatModelObservationIT.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import org.springframework.ai.chat.model.ChatResponse;
3131
import org.springframework.ai.chat.observation.DefaultChatModelObservationConvention;
3232
import org.springframework.ai.chat.prompt.Prompt;
33-
import org.springframework.ai.model.function.DefaultFunctionCallbackResolver;
34-
import org.springframework.ai.model.tool.ToolCallingManager;
3533
import org.springframework.ai.observation.conventions.AiOperationType;
3634
import org.springframework.ai.observation.conventions.AiProvider;
3735
import org.springframework.ai.zhipuai.ZhiPuAiChatModel;

0 commit comments

Comments
 (0)