Skip to content

Commit e7e9060

Browse files
ilayaperumalgfinyuq
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 efd1244 commit e7e9060

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

0 commit comments

Comments
 (0)