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 55f41cf9457..92b16f85e49 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 @@ -1160,7 +1160,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 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);