From e4633afe0f650bc78077c28db258acda174c6121 Mon Sep 17 00:00:00 2001 From: wangdesheng <819318216@qq.com> Date: Mon, 17 Nov 2025 16:14:16 +0800 Subject: [PATCH 1/3] fix:Modified the ChatCompletionRequest object, where the field extraBody does not have the @ JsonProperty ("extra-body") annotation, resulting in assignment failure --- .../main/java/org/springframework/ai/openai/api/OpenAiApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java index e4ea5e4010c..06ae93b2531 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java @@ -1139,7 +1139,7 @@ public record ChatCompletionRequest(// @formatter:off @JsonProperty("verbosity") String verbosity, @JsonProperty("prompt_cache_key") String promptCacheKey, @JsonProperty("safety_identifier") String safetyIdentifier, - Map extraBody) { + @JsonProperty("extra_body") Map extraBody) { /** * Compact constructor that ensures extraBody is initialized as a mutable HashMap From da6fac48bcbf017fe5ddffd2529a0d8efe8b5352 Mon Sep 17 00:00:00 2001 From: wangdesheng <819318216@qq.com> Date: Mon, 17 Nov 2025 16:14:16 +0800 Subject: [PATCH 2/3] fix:Modified the ChatCompletionRequest object, where the field extraBody does not have the @ JsonProperty ("extra-body") annotation, resulting in assignment failure Signed-off-by: wangdesheng <819318216@qq.com> --- .../main/java/org/springframework/ai/openai/api/OpenAiApi.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java index e4ea5e4010c..06ae93b2531 100644 --- a/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java +++ b/models/spring-ai-openai/src/main/java/org/springframework/ai/openai/api/OpenAiApi.java @@ -1139,7 +1139,7 @@ public record ChatCompletionRequest(// @formatter:off @JsonProperty("verbosity") String verbosity, @JsonProperty("prompt_cache_key") String promptCacheKey, @JsonProperty("safety_identifier") String safetyIdentifier, - Map extraBody) { + @JsonProperty("extra_body") Map extraBody) { /** * Compact constructor that ensures extraBody is initialized as a mutable HashMap From 05896c371916244692a2930ffdd01d1adec0eee3 Mon Sep 17 00:00:00 2001 From: wangdesheng <819318216@qq.com> Date: Tue, 25 Nov 2025 19:28:30 +0800 Subject: [PATCH 3/3] fix:Modified the ChatCompletionRequest object, where the field extraBody does not have the @ JsonProperty ("extra-body") annotation, resulting in assignment failure --- .../ai/openai/ChatCompletionRequestTests.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java index 3d7623c96f4..219eb57abec 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/ChatCompletionRequestTests.java @@ -16,6 +16,7 @@ package org.springframework.ai.openai; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -76,9 +77,13 @@ void whenToolRuntimeOptionsThenMergeWithDefaults() { @Test void createRequestWithChatOptions() { var client = OpenAiChatModel.builder() - .openAiApi(OpenAiApi.builder().apiKey("TEST").build()) - .defaultOptions(OpenAiChatOptions.builder().model("DEFAULT_MODEL").temperature(66.6).build()) - .build(); + .openAiApi(OpenAiApi.builder().apiKey("TEST").build()) + .defaultOptions(OpenAiChatOptions.builder() + .model("DEFAULT_MODEL") + .temperature(66.6) + .extraBody(Map.of("key1", "value1")) + .build()) + .build(); var prompt = client.buildRequestPrompt(new Prompt("Test message content")); @@ -90,6 +95,8 @@ void createRequestWithChatOptions() { assertThat(request.model()).isEqualTo("DEFAULT_MODEL"); assertThat(request.temperature()).isEqualTo(66.6); + assertThat(request.extraBody().get("key1")).isEqualTo("value1"); + request = client.createRequest(new Prompt("Test message content", OpenAiChatOptions.builder().model("PROMPT_MODEL").temperature(99.9).build()), true);