From 60cac7b71b72b41787c4cd61f5945682d5de087a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20D=C3=BCmont?= Date: Fri, 24 Oct 2025 09:56:46 +0200 Subject: [PATCH 1/3] Initial --- .../java/com/sap/ai/sdk/orchestration/OrchestrationAiModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationAiModel.java b/orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationAiModel.java index e91a0de40..ef9b8bd4e 100644 --- a/orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationAiModel.java +++ b/orchestration/src/main/java/com/sap/ai/sdk/orchestration/OrchestrationAiModel.java @@ -365,7 +365,7 @@ public OrchestrationAiModel withParam( @FunctionalInterface public interface Parameter { /** The maximum number of tokens to generate. */ - Parameter MAX_TOKENS = () -> "max_tokens"; + Parameter MAX_TOKENS = () -> "max_completion_tokens"; /** The sampling temperature. */ Parameter TEMPERATURE = () -> "temperature"; From ff4aa06eb1bfa6c7f8e72ed6819998c92bd49966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20D=C3=BCmont?= Date: Fri, 24 Oct 2025 10:02:54 +0200 Subject: [PATCH 2/3] Update OpenAiChatModel --- .../sdk/foundationmodels/openai/spring/OpenAiChatModel.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/spring/OpenAiChatModel.java b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/spring/OpenAiChatModel.java index c31287907..1aad8f2fc 100644 --- a/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/spring/OpenAiChatModel.java +++ b/foundation-models/openai/src/main/java/com/sap/ai/sdk/foundationmodels/openai/spring/OpenAiChatModel.java @@ -183,7 +183,10 @@ private static Generation toGeneration( @Nonnull protected static OpenAiChatCompletionRequest extractOptions( @Nonnull OpenAiChatCompletionRequest request, @Nonnull final ChatOptions options) { - request = request.withStop(options.getStopSequences()).withMaxTokens(options.getMaxTokens()); + request = + request + .withStop(options.getStopSequences()) + .withMaxCompletionTokens(options.getMaxTokens()); if (options.getTemperature() != null) { request = request.withTemperature(BigDecimal.valueOf(options.getTemperature())); } From bb0b8195b0647512150d5e7151b5b7f374fbae0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20D=C3=BCmont?= Date: Fri, 24 Oct 2025 10:04:33 +0200 Subject: [PATCH 3/3] Update tests --- orchestration/src/test/resources/filteringLooseRequest.json | 2 +- .../src/test/resources/filteringLooseRequestStream.json | 2 +- .../src/test/resources/groundingHelpSapComRequest.json | 2 +- orchestration/src/test/resources/groundingRequest.json | 2 +- orchestration/src/test/resources/localTemplateRequest.json | 2 +- orchestration/src/test/resources/maskingRequest.json | 2 +- orchestration/src/test/resources/messagesHistoryRequest.json | 2 +- .../src/test/resources/templateReferenceByIdRequest.json | 2 +- .../src/test/resources/templateReferenceByScenarioRequest.json | 2 +- orchestration/src/test/resources/templatingRequest.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/orchestration/src/test/resources/filteringLooseRequest.json b/orchestration/src/test/resources/filteringLooseRequest.json index 23db2d754..495139ef9 100644 --- a/orchestration/src/test/resources/filteringLooseRequest.json +++ b/orchestration/src/test/resources/filteringLooseRequest.json @@ -6,7 +6,7 @@ "name": "gpt-4o", "params": { "temperature": 0.1, - "max_tokens": 50, + "max_completion_tokens": 50, "frequency_penalty": 0, "presence_penalty": 0, "top_p": 1, diff --git a/orchestration/src/test/resources/filteringLooseRequestStream.json b/orchestration/src/test/resources/filteringLooseRequestStream.json index 749125d03..9ec164769 100644 --- a/orchestration/src/test/resources/filteringLooseRequestStream.json +++ b/orchestration/src/test/resources/filteringLooseRequestStream.json @@ -6,7 +6,7 @@ "name": "gpt-4o", "params": { "temperature": 0.1, - "max_tokens": 50, + "max_completion_tokens": 50, "frequency_penalty": 0, "presence_penalty": 0, "top_p": 1, diff --git a/orchestration/src/test/resources/groundingHelpSapComRequest.json b/orchestration/src/test/resources/groundingHelpSapComRequest.json index 9ff73dfb8..56ebd5ab5 100644 --- a/orchestration/src/test/resources/groundingHelpSapComRequest.json +++ b/orchestration/src/test/resources/groundingHelpSapComRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0, diff --git a/orchestration/src/test/resources/groundingRequest.json b/orchestration/src/test/resources/groundingRequest.json index 8f7d48fd7..40a42074e 100644 --- a/orchestration/src/test/resources/groundingRequest.json +++ b/orchestration/src/test/resources/groundingRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0, diff --git a/orchestration/src/test/resources/localTemplateRequest.json b/orchestration/src/test/resources/localTemplateRequest.json index 3ba69c75b..3c83ee369 100644 --- a/orchestration/src/test/resources/localTemplateRequest.json +++ b/orchestration/src/test/resources/localTemplateRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0, diff --git a/orchestration/src/test/resources/maskingRequest.json b/orchestration/src/test/resources/maskingRequest.json index 4053042b8..47f4509d2 100644 --- a/orchestration/src/test/resources/maskingRequest.json +++ b/orchestration/src/test/resources/maskingRequest.json @@ -7,7 +7,7 @@ "params": { "presence_penalty": 0, "frequency_penalty": 0, - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "top_p": 1, "n": 1 diff --git a/orchestration/src/test/resources/messagesHistoryRequest.json b/orchestration/src/test/resources/messagesHistoryRequest.json index 0a6ac86b4..ec926efd5 100644 --- a/orchestration/src/test/resources/messagesHistoryRequest.json +++ b/orchestration/src/test/resources/messagesHistoryRequest.json @@ -7,7 +7,7 @@ "params": { "presence_penalty": 0, "frequency_penalty": 0, - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "top_p": 1, "n": 1 diff --git a/orchestration/src/test/resources/templateReferenceByIdRequest.json b/orchestration/src/test/resources/templateReferenceByIdRequest.json index 516210ae6..7c8087ea5 100644 --- a/orchestration/src/test/resources/templateReferenceByIdRequest.json +++ b/orchestration/src/test/resources/templateReferenceByIdRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0, diff --git a/orchestration/src/test/resources/templateReferenceByScenarioRequest.json b/orchestration/src/test/resources/templateReferenceByScenarioRequest.json index b00500c3c..987ee0c75 100644 --- a/orchestration/src/test/resources/templateReferenceByScenarioRequest.json +++ b/orchestration/src/test/resources/templateReferenceByScenarioRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0, diff --git a/orchestration/src/test/resources/templatingRequest.json b/orchestration/src/test/resources/templatingRequest.json index 32ac61edd..44b06de61 100644 --- a/orchestration/src/test/resources/templatingRequest.json +++ b/orchestration/src/test/resources/templatingRequest.json @@ -5,7 +5,7 @@ "model": { "name": "gpt-4o", "params": { - "max_tokens": 50, + "max_completion_tokens": 50, "temperature": 0.1, "frequency_penalty": 0, "presence_penalty": 0,