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 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..9f600c8745e 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 @@ -76,9 +76,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 +94,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);