Skip to content

Commit 76a1dbe

Browse files
ilayaperumalgtzolov
authored andcommitted
Fix ToolCallingChatOptions isInternalToolExecutionEnabled
- The ModelOptionsUtils merges the ToolCallingChatOptions with the provider chat options - The underlying beanwrapper implementation expects the boolean option to have the getter method starting with "get" instad of "is" which makes the current `isInternalToolExecutionEnabled` not used by the merge operation at all. To fix this, rename the `isInternalToolExecutionEnabled` method to `getInternalToolExecutionEnabled` and deprecate the existing `isInternalToolExecutionEnabled` method. Signed-off-by: Ilayaperumal Gopinathan <ilayaperumal.gopinathan@broadcom.com>
1 parent 257c91c commit 76a1dbe

File tree

20 files changed

+65
-49
lines changed

20 files changed

+65
-49
lines changed

models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -416,8 +416,8 @@ Prompt buildRequestPrompt(Prompt prompt) {
416416
requestOptions.setHttpHeaders(
417417
mergeHttpHeaders(runtimeOptions.getHttpHeaders(), this.defaultOptions.getHttpHeaders()));
418418
requestOptions.setInternalToolExecutionEnabled(
419-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
420-
this.defaultOptions.isInternalToolExecutionEnabled()));
419+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
420+
this.defaultOptions.getInternalToolExecutionEnabled()));
421421
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
422422
this.defaultOptions.getToolNames()));
423423
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -427,7 +427,7 @@ Prompt buildRequestPrompt(Prompt prompt) {
427427
}
428428
else {
429429
requestOptions.setHttpHeaders(this.defaultOptions.getHttpHeaders());
430-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
430+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
431431
requestOptions.setToolNames(this.defaultOptions.getToolNames());
432432
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
433433
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-anthropic/src/main/java/org/springframework/ai/anthropic/AnthropicChatOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public static AnthropicChatOptions fromOptions(AnthropicChatOptions fromOptions)
108108
.toolCallbacks(
109109
fromOptions.getToolCallbacks() != null ? new ArrayList<>(fromOptions.getToolCallbacks()) : null)
110110
.toolNames(fromOptions.getToolNames() != null ? new HashSet<>(fromOptions.getToolNames()) : null)
111-
.internalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled())
111+
.internalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled())
112112
.toolContext(fromOptions.getToolContext() != null ? new HashMap<>(fromOptions.getToolContext()) : null)
113113
.httpHeaders(fromOptions.getHttpHeaders() != null ? new HashMap<>(fromOptions.getHttpHeaders()) : null)
114114
.build();
@@ -216,7 +216,7 @@ public void setToolNames(Set<String> toolNames) {
216216
@Override
217217
@Nullable
218218
@JsonIgnore
219-
public Boolean isInternalToolExecutionEnabled() {
219+
public Boolean getInternalToolExecutionEnabled() {
220220
return this.internalToolExecutionEnabled;
221221
}
222222

models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -642,8 +642,8 @@ Prompt buildRequestPrompt(Prompt prompt) {
642642
// Jackson, used by ModelOptionsUtils.
643643
if (runtimeOptions != null) {
644644
requestOptions.setInternalToolExecutionEnabled(
645-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
646-
this.defaultOptions.isInternalToolExecutionEnabled()));
645+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
646+
this.defaultOptions.getInternalToolExecutionEnabled()));
647647
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
648648
this.defaultOptions.getToolNames()));
649649
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -652,7 +652,7 @@ Prompt buildRequestPrompt(Prompt prompt) {
652652
this.defaultOptions.getToolContext()));
653653
}
654654
else {
655-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
655+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
656656
requestOptions.setToolNames(this.defaultOptions.getToolNames());
657657
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
658658
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-azure-openai/src/main/java/org/springframework/ai/azure/openai/AzureOpenAiChatOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ public void setToolNames(Set<String> toolNames) {
231231
@Override
232232
@Nullable
233233
@JsonIgnore
234-
public Boolean isInternalToolExecutionEnabled() {
234+
public Boolean getInternalToolExecutionEnabled() {
235235
return this.internalToolExecutionEnabled;
236236
}
237237

@@ -265,7 +265,7 @@ public static AzureOpenAiChatOptions fromOptions(AzureOpenAiChatOptions fromOpti
265265
.topLogprobs(fromOptions.getTopLogProbs())
266266
.enhancements(fromOptions.getEnhancements())
267267
.toolContext(fromOptions.getToolContext() != null ? new HashMap<>(fromOptions.getToolContext()) : null)
268-
.internalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled())
268+
.internalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled())
269269
.streamOptions(fromOptions.getStreamOptions())
270270
.toolCallbacks(
271271
fromOptions.getToolCallbacks() != null ? new ArrayList<>(fromOptions.getToolCallbacks()) : null)

models/spring-ai-bedrock-converse/src/main/java/org/springframework/ai/bedrock/converse/BedrockProxyChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,9 @@ Prompt buildRequestPrompt(Prompt prompt) {
301301
: this.defaultOptions.getToolNames())
302302
.toolContext(runtimeOptions.getToolContext() != null ? runtimeOptions.getToolContext()
303303
: this.defaultOptions.getToolContext())
304-
.internalToolExecutionEnabled(runtimeOptions.isInternalToolExecutionEnabled() != null
305-
? runtimeOptions.isInternalToolExecutionEnabled()
306-
: this.defaultOptions.isInternalToolExecutionEnabled())
304+
.internalToolExecutionEnabled(runtimeOptions.getInternalToolExecutionEnabled() != null
305+
? runtimeOptions.getInternalToolExecutionEnabled()
306+
: this.defaultOptions.getInternalToolExecutionEnabled())
307307
.build();
308308
}
309309

models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -399,8 +399,8 @@ else if (prompt.getOptions() instanceof FunctionCallingOptions functionCallingOp
399399
// Jackson, used by ModelOptionsUtils.
400400
if (runtimeOptions != null) {
401401
requestOptions.setInternalToolExecutionEnabled(
402-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
403-
this.defaultOptions.isInternalToolExecutionEnabled()));
402+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
403+
this.defaultOptions.getInternalToolExecutionEnabled()));
404404
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
405405
this.defaultOptions.getToolNames()));
406406
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -409,7 +409,7 @@ else if (prompt.getOptions() instanceof FunctionCallingOptions functionCallingOp
409409
this.defaultOptions.getToolContext()));
410410
}
411411
else {
412-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
412+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
413413
requestOptions.setToolNames(this.defaultOptions.getToolNames());
414414
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
415415
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-mistral-ai/src/main/java/org/springframework/ai/mistralai/MistralAiChatOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public static MistralAiChatOptions fromOptions(MistralAiChatOptions fromOptions)
155155
.toolChoice(fromOptions.getToolChoice())
156156
.toolCallbacks(fromOptions.getToolCallbacks())
157157
.toolNames(fromOptions.getToolNames())
158-
.internalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled())
158+
.internalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled())
159159
.toolContext(fromOptions.getToolContext())
160160
.build();
161161
}
@@ -287,8 +287,8 @@ public void setToolNames(Set<String> toolNames) {
287287
@Override
288288
@Nullable
289289
@JsonIgnore
290-
public Boolean isInternalToolExecutionEnabled() {
291-
return this.internalToolExecutionEnabled;
290+
public Boolean getInternalToolExecutionEnabled() {
291+
return internalToolExecutionEnabled;
292292
}
293293

294294
@Override

models/spring-ai-mistral-ai/src/test/java/org/springframework/ai/mistralai/MistralAiChatCompletionRequestTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ void whenToolRuntimeOptionsThenMergeWithDefaults() {
9292
Prompt prompt = chatModel.buildRequestPrompt(new Prompt("Test message content", runtimeOptions));
9393

9494
assertThat(((ToolCallingChatOptions) prompt.getOptions())).isNotNull();
95-
assertThat(((ToolCallingChatOptions) prompt.getOptions()).isInternalToolExecutionEnabled()).isFalse();
95+
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getInternalToolExecutionEnabled()).isFalse();
9696
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()).hasSize(2);
9797
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()
9898
.stream()

models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/OllamaChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,8 @@ Prompt buildRequestPrompt(Prompt prompt) {
389389
// Jackson, used by ModelOptionsUtils.
390390
if (runtimeOptions != null) {
391391
requestOptions.setInternalToolExecutionEnabled(
392-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
393-
this.defaultOptions.isInternalToolExecutionEnabled()));
392+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
393+
this.defaultOptions.getInternalToolExecutionEnabled()));
394394
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
395395
this.defaultOptions.getToolNames()));
396396
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -399,7 +399,7 @@ Prompt buildRequestPrompt(Prompt prompt) {
399399
this.defaultOptions.getToolContext()));
400400
}
401401
else {
402-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
402+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
403403
requestOptions.setToolNames(this.defaultOptions.getToolNames());
404404
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
405405
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-ollama/src/main/java/org/springframework/ai/ollama/api/OllamaOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ public static OllamaOptions fromOptions(OllamaOptions fromOptions) {
396396
.penalizeNewline(fromOptions.getPenalizeNewline())
397397
.stop(fromOptions.getStop())
398398
.toolNames(fromOptions.getToolNames())
399-
.internalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled())
399+
.internalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled())
400400
.toolCallbacks(fromOptions.getToolCallbacks())
401401
.toolContext(fromOptions.getToolContext()).build();
402402
}
@@ -736,9 +736,9 @@ public void setToolNames(Set<String> toolNames) {
736736
@Override
737737
@Nullable
738738
@JsonIgnore
739-
public Boolean isInternalToolExecutionEnabled() {
739+
public Boolean getInternalToolExecutionEnabled() {
740740
return this.internalToolExecutionEnabled;
741-
}
741+
}
742742

743743
@Override
744744
@JsonIgnore

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ void whenToolRuntimeOptionsThenMergeWithDefaults() {
6565
Prompt prompt = chatModel.buildRequestPrompt(new Prompt("Test message content", runtimeOptions));
6666

6767
assertThat(((ToolCallingChatOptions) prompt.getOptions())).isNotNull();
68-
assertThat(((ToolCallingChatOptions) prompt.getOptions()).isInternalToolExecutionEnabled()).isFalse();
68+
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getInternalToolExecutionEnabled()).isFalse();
6969
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()).hasSize(2);
7070
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()
7171
.stream()

models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -513,8 +513,8 @@ else if (prompt.getOptions() instanceof FunctionCallingOptions functionCallingOp
513513
requestOptions.setHttpHeaders(
514514
mergeHttpHeaders(runtimeOptions.getHttpHeaders(), this.defaultOptions.getHttpHeaders()));
515515
requestOptions.setInternalToolExecutionEnabled(
516-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
517-
this.defaultOptions.isInternalToolExecutionEnabled()));
516+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
517+
this.defaultOptions.getInternalToolExecutionEnabled()));
518518
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
519519
this.defaultOptions.getToolNames()));
520520
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -524,7 +524,7 @@ else if (prompt.getOptions() instanceof FunctionCallingOptions functionCallingOp
524524
}
525525
else {
526526
requestOptions.setHttpHeaders(this.defaultOptions.getHttpHeaders());
527-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
527+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
528528
requestOptions.setToolNames(this.defaultOptions.getToolNames());
529529
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
530530
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-openai/src/main/java/org/springframework/ai/openai/OpenAiChatOptions.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ public static OpenAiChatOptions fromOptions(OpenAiChatOptions fromOptions) {
255255
fromOptions.getToolCallbacks() != null ? new ArrayList<>(fromOptions.getToolCallbacks()) : null)
256256
.toolNames(fromOptions.getToolNames() != null ? new HashSet<>(fromOptions.getToolNames()) : null)
257257
.httpHeaders(fromOptions.getHttpHeaders() != null ? new HashMap<>(fromOptions.getHttpHeaders()) : null)
258-
.internalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled())
258+
.internalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled())
259259
.toolContext(fromOptions.getToolContext() != null ? new HashMap<>(fromOptions.getToolContext()) : null)
260260
.store(fromOptions.getStore())
261261
.metadata(fromOptions.getMetadata())
@@ -444,7 +444,11 @@ public void setToolChoice(Object toolChoice) {
444444
@Deprecated
445445
@JsonIgnore
446446
public Boolean getProxyToolCalls() {
447-
return this.internalToolExecutionEnabled != null ? !this.internalToolExecutionEnabled : null;
447+
return this.getToolExecutionEnabled() != null ? !this.internalToolExecutionEnabled : null;
448+
}
449+
450+
private Boolean getToolExecutionEnabled() {
451+
return this.internalToolExecutionEnabled;
448452
}
449453

450454
@Deprecated
@@ -501,8 +505,8 @@ public void setToolNames(Set<String> toolNames) {
501505
@Override
502506
@Nullable
503507
@JsonIgnore
504-
public Boolean isInternalToolExecutionEnabled() {
505-
return this.internalToolExecutionEnabled;
508+
public Boolean getInternalToolExecutionEnabled() {
509+
return internalToolExecutionEnabled;
506510
}
507511

508512
@Override

models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void whenToolRuntimeOptionsThenMergeWithDefaults() {
6262
Prompt prompt = chatModel.buildRequestPrompt(new Prompt("Test message content", runtimeOptions));
6363

6464
assertThat(((ToolCallingChatOptions) prompt.getOptions())).isNotNull();
65-
assertThat(((ToolCallingChatOptions) prompt.getOptions()).isInternalToolExecutionEnabled()).isFalse();
65+
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getInternalToolExecutionEnabled()).isFalse();
6666
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()).hasSize(2);
6767
assertThat(((ToolCallingChatOptions) prompt.getOptions()).getToolCallbacks()
6868
.stream()

models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -503,8 +503,8 @@ Prompt buildRequestPrompt(Prompt prompt) {
503503
// Jackson, used by ModelOptionsUtils.
504504
if (runtimeOptions != null) {
505505
requestOptions.setInternalToolExecutionEnabled(
506-
ModelOptionsUtils.mergeOption(runtimeOptions.isInternalToolExecutionEnabled(),
507-
this.defaultOptions.isInternalToolExecutionEnabled()));
506+
ModelOptionsUtils.mergeOption(runtimeOptions.getInternalToolExecutionEnabled(),
507+
this.defaultOptions.getInternalToolExecutionEnabled()));
508508
requestOptions.setToolNames(ToolCallingChatOptions.mergeToolNames(runtimeOptions.getToolNames(),
509509
this.defaultOptions.getToolNames()));
510510
requestOptions.setToolCallbacks(ToolCallingChatOptions.mergeToolCallbacks(runtimeOptions.getToolCallbacks(),
@@ -518,7 +518,7 @@ Prompt buildRequestPrompt(Prompt prompt) {
518518
this.defaultOptions.getSafetySettings()));
519519
}
520520
else {
521-
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.isInternalToolExecutionEnabled());
521+
requestOptions.setInternalToolExecutionEnabled(this.defaultOptions.getInternalToolExecutionEnabled());
522522
requestOptions.setToolNames(this.defaultOptions.getToolNames());
523523
requestOptions.setToolCallbacks(this.defaultOptions.getToolCallbacks());
524524
requestOptions.setToolContext(this.defaultOptions.getToolContext());

models/spring-ai-vertex-ai-gemini/src/main/java/org/springframework/ai/vertexai/gemini/VertexAiGeminiChatOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public static VertexAiGeminiChatOptions fromOptions(VertexAiGeminiChatOptions fr
148148
options.setResponseMimeType(fromOptions.getResponseMimeType());
149149
options.setGoogleSearchRetrieval(fromOptions.getGoogleSearchRetrieval());
150150
options.setSafetySettings(fromOptions.getSafetySettings());
151-
options.setInternalToolExecutionEnabled(fromOptions.isInternalToolExecutionEnabled());
151+
options.setInternalToolExecutionEnabled(fromOptions.getInternalToolExecutionEnabled());
152152
options.setToolContext(fromOptions.getToolContext());
153153
return options;
154154
}
@@ -287,7 +287,7 @@ public void setToolNames(Set<String> toolNames) {
287287

288288
@Override
289289
@Nullable
290-
public Boolean isInternalToolExecutionEnabled() {
290+
public Boolean getInternalToolExecutionEnabled() {
291291
return this.internalToolExecutionEnabled;
292292
}
293293

spring-ai-model/src/main/java/org/springframework/ai/model/tool/DefaultToolCallingChatOptions.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public void setToolContext(Map<String, Object> toolContext) {
109109

110110
@Override
111111
@Nullable
112-
public Boolean isInternalToolExecutionEnabled() {
112+
public Boolean getInternalToolExecutionEnabled() {
113113
return this.internalToolExecutionEnabled;
114114
}
115115

@@ -141,7 +141,7 @@ public void setFunctions(Set<String> functions) {
141141
@Override
142142
@Nullable
143143
public Boolean getProxyToolCalls() {
144-
return isInternalToolExecutionEnabled() != null ? !isInternalToolExecutionEnabled() : null;
144+
return getInternalToolExecutionEnabled() != null ? !getInternalToolExecutionEnabled() : null;
145145
}
146146

147147
@Override
@@ -236,7 +236,7 @@ public <T extends ChatOptions> T copy() {
236236
options.setToolCallbacks(getToolCallbacks());
237237
options.setToolNames(getToolNames());
238238
options.setToolContext(getToolContext());
239-
options.setInternalToolExecutionEnabled(isInternalToolExecutionEnabled());
239+
options.setInternalToolExecutionEnabled(getInternalToolExecutionEnabled());
240240
options.setModel(getModel());
241241
options.setFrequencyPenalty(getFrequencyPenalty());
242242
options.setMaxTokens(getMaxTokens());

spring-ai-model/src/main/java/org/springframework/ai/model/tool/ToolCallingChatOptions.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
* including tool calling.
3838
*
3939
* @author Thomas Vitale
40+
* @author Ilayaperumal Gopinathan
4041
* @since 1.0.0
4142
*/
4243
public interface ToolCallingChatOptions extends FunctionCallingOptions {
@@ -68,7 +69,17 @@ public interface ToolCallingChatOptions extends FunctionCallingOptions {
6869
* the model or if the tools should be executed directly by the caller.
6970
*/
7071
@Nullable
71-
Boolean isInternalToolExecutionEnabled();
72+
Boolean getInternalToolExecutionEnabled();
73+
74+
/**
75+
* Whether the {@link ChatModel} is responsible for executing the tools requested by
76+
* the model or if the tools should be executed directly by the caller.
77+
*/
78+
@Nullable
79+
@Deprecated
80+
default Boolean isInternalToolExecutionEnabled() {
81+
return getInternalToolExecutionEnabled();
82+
}
7283

7384
/**
7485
* Set whether the {@link ChatModel} is responsible for executing the tools requested

spring-ai-model/src/main/java/org/springframework/ai/model/tool/ToolExecutionEligibilityChecker.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ default boolean isInternalToolExecutionEnabled(ChatOptions chatOptions) {
6565
Assert.notNull(chatOptions, "chatOptions cannot be null");
6666
boolean internalToolExecutionEnabled;
6767
if (chatOptions instanceof ToolCallingChatOptions toolCallingChatOptions
68-
&& toolCallingChatOptions.isInternalToolExecutionEnabled() != null) {
69-
internalToolExecutionEnabled = Boolean.TRUE.equals(toolCallingChatOptions.isInternalToolExecutionEnabled());
68+
&& toolCallingChatOptions.getInternalToolExecutionEnabled() != null) {
69+
internalToolExecutionEnabled = Boolean.TRUE
70+
.equals(toolCallingChatOptions.getInternalToolExecutionEnabled());
7071
}
7172
else if (chatOptions instanceof FunctionCallingOptions functionCallingOptions
7273
&& functionCallingOptions.getProxyToolCalls() != null) {

0 commit comments

Comments
 (0)