Release Notes
Should I update?
We highly recommend regularly updating to the latest SAP Cloud SDK for AI version. It will help you:
- Ensure access to the latest SAP Cloud SDK for AI features
- Keep up with the latest changes in SAP ecosystem
- Protect yourself from bugs and breaking changes in the future
1.13.0 - October 30, 2025
✨ New Functionality
- [Orchestration] Introduced Spring AI integration for embeddings generation with the new
OrchestrationSpringAiEmbeddingModelclass.
📈 Improvements
- [Core] If the AI Core credentials used are missing an explicit
credential-typebutclientidandclientsecretare present then"credential-type": "binding-secret"is inferred automatically. - [Core] Log message about "service key in environment variable" to
INFOlevel only once.
1.12.0 - October 17, 2025
🔧 Compatibility Notes
- Breaking change:
CompletionPostRequestis now an interface instead of a class. For all previous use-cases, it should be substitutable with the new classCompletionRequestConfiguration.OrchestrationClient.toCompletionPostRequest()now returnsCompletionRequestConfiguration.OrchestrationClient.streamChatCompletionDeltas()takesCompletionRequestConfigurationas an input now.
- Two fields in
OrchestrationModuleConfigchanged:inputTranslationConfigis now of typeSAPDocumentTranslationInputoutputTranslationConfigis now of typeSAPDocumentTranslationOutput
- When using
OrchestrationModuleConfig.withInputTranslationConfig()andOrchestrationModuleConfig.withOutputTranslationConfig()consider the following diff (note, especially, that setting.applyTo()to eithernullor to an actual value is necessary):var config = new OrchestrationModuleConfig("some prompt");
config
.withInputTranslationConfig(
- SAPDocumentTranslation.create()
- .type(SAP_DOCUMENT_TRANSLATION)
- .config(SAPDocumentTranslationConfig.create().targetLanguage("en-US")))
+ SAPDocumentTranslationInput.create()
+ .type(SAPDocumentTranslationInput.TypeEnum.SAP_DOCUMENT_TRANSLATION)
+ .config(
+ SAPDocumentTranslationInputConfig.create()
+ .targetLanguage("en-US")
+ .applyTo(null)))
.withOutputTranslationConfig(
- SAPDocumentTranslation.create()
- .type(SAP_DOCUMENT_TRANSLATION)
+ SAPDocumentTranslationOutput.create()
+ .type(SAPDocumentTranslationOutput.TypeEnum.SAP_DOCUMENT_TRANSLATION)
.config(
- SAPDocumentTranslationConfig.create()
- .targetLanguage("de-DE")
+ SAPDocumentTranslationOutputConfig.create()
+ .targetLanguage(
+ SAPDocumentTranslationOutputTargetLanguage.create("de-DE"))
.sourceLanguage("en-US")));
- [Orchestration] Deprecated models
OrchestrationAiModel.CLAUDE_3_OPUSandOrchestrationAiModel.CLAUDE_3_5_SONNET.- Replacement are respectively
OrchestrationAiModel.CLAUDE_4_OPUSandOrchestrationAiModel.CLAUDE_4_SONNET.
- Replacement are respectively
- Inner record classes and their creator methods in model interfaces are renamed to be more descriptive and type-specific.
- eg:
InnerString->ListOfStrings,create()->createListOfStrings()
- eg:
✨ New Functionality
- [Orchestration] For streaming, add convenience configuration for output-filter-overlap, chunk-size, and delimiters via
OrchestrationModuleConfig#withStreamConfig. - [Orchestration] Added embedding generation support with new
OrchestrationClient#embed()methods.- Added
OrchestrationEmbeddingModelwithTEXT_EMBEDDING_3_SMALL,TEXT_EMBEDDING_3_LARGE,AMAZON_TITAN_EMBED_TEXTandNVIDIA_LLAMA_32_NV_EMBEDQA_1Bembedding models. - Introduced
OrchestrationEmbeddingRequestfor building requests fluently andOrchestrationEmbeddingResponse#getEmbeddingVectors()to retrieve embeddings.
- Added
- [Orchestration] Added new model
OrchestrationAiModel.MISTRAL_MEDIUM_INSTRUCT.
📈 Improvements
- [Orchestration] Added new API
DpiMasking#withRegexto apply custom masking patterns.
🐛 Fixed Issues
- [Orchestration] Tool calling works on all models
1.11.0 - September 12, 2025
🔧 Compatibility Notes
-
[Prompt Registry] breaking changes:
Templatehas been renamed toPromptTemplate.- Some endpoints have a new parameter
String aiResourceGroupScopewhich can be set tonull.
For more details please refer to the sample code.
✨ New Functionality
- Extend
OpenAiClientExceptionandOrchestrationClientExceptionto retrieve error diagnostics information received from remote service. New available accessors for troubleshooting:getErrorResponse(),getHttpResponse()and,getHttpRequest(). Please note: depending on the error response, these methods may returnnullif the information is not available. - [OpenAI] Added new models for
OpenAiModel:GPT_5,GPT_5_MINIandGPT_5_NANO. - [Orchestration] Added new models for
OrchestrationAiModel:GPT_5,GPT_5_MINIandGPT_5_NANO. - [Orchestration] Deprecated models for
OrchestrationAiModel:GEMINI_1_5_PROandOrchestrationAiModel.GEMINI_1_5_FLASH- Replacement are
GEMINI_2_5_PROandGEMINI_2_5_FLASH.
- Replacement are
- [Orchestration] Deprecated
OrchestrationAiModel.IBM_GRANITE_13B_CHATwith no replacement. - [OpenAI] Introduced SpringAI integration with our OpenAI client.
- Added
OpenAiChatModel
- Added
- [Prompt Registry] Using Prompt Registry Templates in SpringAI.
- Added
SpringAiConverter
- Added
- [Orchestration] Added convenience to add custom headers to individual orchestration calls.
- [OpenAI] Added convenience to add custom headers to individual LLM calls.
🐛 Fixed Issues
- [Orchestration] Fixed getting
OrchestrationFilterException.Inputfor bad requests with input filter.
1.10.0 - August 08, 2025
🔧 Compatibility Notes
- The Spring AI version has been increased from
1.0.0-M6to the GA release1.0.0.- The
OrchestrationChatOptionshave been, replacing all references toFunctionCallbackwithToolCallback. - Please follow the official Spring AI upgrade guide for further details.
- The
@Betaannotations on all classes related to Spring AI have been removed.
- The
- [Orchestration] The
completionendpoint have been moved to the latest version/v2/completionLLMModuleConfigis replaced byLLMModelDetailsinwithLLmConfigmethod ofOrchestrationModuleConfigclass.PromptTemplatingModuleConfigPromptreplacesTemplatingModuleConfigin thewithTemplateConfigmethod ofOrchestrationModuleConfigclass.- The generated model classes will reflect payload updates including restructuring of the module configurations and renaming of several fields.
- [Document Grounding] Breaking: The
messagefield inRetrievalPerFilterSearchResultWithErroris replaced byerrorandfilterIdwith more specific error details. - [Document Grounding] Extensive generated model class renaming for better specificity due to API spec changes.
SearchResults→VectorSearchResultsKeyValueListPairsplit into context-specific classes:VectorKeyValueListPairfor vector operationsRetrievalKeyValueListPairfor retrieval operationsVectorDocumentKeyValueListPairfor vector document operationsRetrievalDocumentKeyValueListPairfor retrieval document operations
Chunk→VectorChunkandRetrievalChunkfor different contextsSearchFilter→VectorSearchFilterandRetrievalSearchFilterSearchConfiguration→VectorSearchConfigurationandRetrievalSearchConfiguration
✨ New Functionality
- [Core] Added
ClientExceptionFactoryinterface to provide custom exception mapping logic for different service clients. - Extend
OpenAiClientExceptionandOrchestrationClientExceptionto retrieve error diagnostics information received from remote service usinggetErrorResponse. - [Orchestration] Introduced filtering related exceptions along with convenience methods to obtain additional contextual information.
OrchestrationInputFilterExceptionfor prompt filtering andOrchestrationOutputFilterExceptionfor response filtering.getFilterDetails(): Returns a map of all filter details.getAzureContentSafetyInput()andgetAzureContentSafetyInput(): Returns Azure Content Safety filter scoresgetLlamaGuard38b(): Returns LlamaGuard filter scores
- [Document Grounding] Extend
PipelineApioperations, notably:- Added new pipeline creation requests for SDM and WorkZone with
SDMPipelineCreateRequestandWorkZonePipelineCreateRequest. - S3 and SFTP pipeline configurations extended with
S3ConfigurationandSFTPConfigurationfor including data sources. - Support
/pipelines/triggerendpoint to trigger pipelines on-demand viaPipelinesApi#manualTriggerPipeline().
- Added new pipeline creation requests for SDM and WorkZone with
📈 Improvements
- Update AI Core client to 2.40.1
- [Document Grounding] Enhanced pipeline status reporting with additional metadata such as
createdAt,modifiedAt,lastCompletedAt.
🐛 Fixed Issues
- OpenAi: Fix AssistantMessage Bug by now being able to send Assistant Messages using our API Client.
1.9.0 - July 22, 2025
🔧 Compatibility Notes
-
The old OpenAI client (v1.0.0) is being deprecated in favor of the new OpenAI client (v1.4.0). See the documentation for more details
-
Generated classes for the following service specifications are subject to change:
- core
- openai
- orchestration
- document grounding
-
[Orchestration] Interfaces with only one implementation were reduced.
- As a result, the accessors for fields
OrchestrationModuleConfig.inputTranslationConfigandOrchestrationModuleConfig.outputTranslationConfignow handle the implementing class explicitly. - The same applies to helper methods
DpiMasking#createConfig()andMaskingProvider#createConfig().
- As a result, the accessors for fields
-
[Orchestration]
OrchestrationTemplate.withTemplate()has been deprecated. Please useOrchestrationTemplate.withTemplateMessages()instead. -
[Orchestration] The method
createConfig()is removed fromContentFilter,AzureContentFilterandLlamaGuardFilterand is replaced bycreateInputFilterConfig()andcreateOutputFilterConfig(). -
[Orchestration] Deprecated :
LLAMA3_1_70B_INSTRUCT,CLAUDE_3_SONNET,TITAN_TEXT_LITE,TITAN_TEXT_EXPRESS,GPT_4,GPT_4_0613,MIXTRAL_8X7B_INSTRUCT_V01.GPT_4andGPT_4_0613are replaced by :GPT_40orGPT_41.CLAUDE_3_SONNETis replaced byCLAUDE_4_SONNET.MIXTRAL_8X7B_INSTRUCT_V01is replaced byMISTRAL_SMALL_INSTRUCT.
-
[OpenAI] Deprecated :
GPT_4.GPT_4is replaced by :GPT_40orGPT_41.
-
[Prompt Registry] Resource group has been added as a optional parameter to all endpoints. Set it to
"default"if it was not set before. Examples:client.importPromptTemplate(File)-->client.importPromptTemplate("default", File).client.parsePromptTemplateById(id, false, inputParams)-->client.parsePromptTemplateById(id, "default", false, inputParams).
-
[Document Grounding] All classes with
Retrievalhave been renamed to fix the typo- for example:
RetievalSearchResultshas been renamed toRetrievalSearchResults
- for example:
-
[Document Grounding]
PipelinesApi#getAllPipelines()andPipelinesApi#getPipelineById()now any of these 3 classes implementing theGetPipelineinterface:MSSharePointPipelineGetResponse,S3PipelineGetResponseandSFTPPipelineGetResponse
✨ New Functionality
- [Orchestration] Added support for transforming a JSON output into an entity
- [Orchestration] Added
AzureContentFilter#promptShield()available for input filtering. - [Orchestration] Added new models for
OrchestrationAiModel:GEMINI_2_5_FLASH,GEMINI_2_5_PRO,ALEPHALPHA_PHARIA_1_7B_CONTROL,OPENAI_O4_MINI,CLAUDE_4_OPUS,CLAUDE_4_SONNET,OPENAI_O3.
🐛 Fixed Issues
- [Orchestration] Resolved duplicate JSON property issue, enabling Anthropic Claude chat completions.
- Remove logging of any request/response payloads to avoid potential exposure of sensitive data.
1.8.0 - May 26, 2025
🔧 Compatibility Notes
- The constructor of the
AssistantMessageclass now takesList<MessageToolCall>as input instead ofList<ResponseMessageToolCall>(the generated class got renamed).
✨ New Functionality
- [OpenAI] Add convenience for tool definition, parsing function calls and tool execution
- [OpenAI] Added the following new models:
o4-mini,o3,gpt-4.1,gpt-4.1-nano, andgpt-4.1-mini - [Orchestration] Added new model DeepSeek-R1:
OrchestrationAiModel.DEEPSEEK_R1 - [Orchestration] Tool execution fully enabled
- [Orchestration] Added translation
🐛 Fixed Issues
- [Orchestration] Fixed
OrchestrationAiModel.CLAUDE_3_7_SONNET.
1.7.0 - April 30, 2025
🔧 Compatibility Notes
- [Orchestration] Deprecated
OrchestrationAiModel.GEMINI_1_0_PRO. The replacements are either:OrchestrationAiModel.GEMINI_2_0_FLASHOrchestrationAiModel.GEMINI_2_0_FLASH_LITE.
✨ New Functionality
- [Orchestration] Added support to locally test prompt template files
- [Orchestration] Added new models:
OrchestrationAiModel.CLAUDE_3_7_SONNETOrchestrationAiModel.GEMINI_2_0_FLASHOrchestrationAiModel.GEMINI_2_0_FLASH_LITE
1.6.0 - April 03, 2025
✨ New Functionality
- [Prompt Registry] Add Prompt Registry client
com.sap.ai.sdk:prompt-registry:1.6.0
- [OpenAI] Add convenience for tool call execution
1.5.0 - March 13, 2025
✨ New Functionality
- [Orchestration] Add Spring AI Chat Memory support
- [Orchestration] Prompt templates can be consumed from registry.
- [Orchestration] Masking is now available on grounding.
- [Orchestration] Grounding via help.sap.com is enabled.
- [OpenAI] Spring AI integration for embedding calls.
1.4.0 - February 28, 2025
🔧 Compatibility Notes
- [Orchestration] The constructors
UserMessage(MessageContent)andSystemMessage(MessageContent)are removed. UseMessage.user(String),Message.user(ImageItem), orMessage.system(String)instead. - Deprecate
getCustomField(String)in favor oftoMap()on generated model classes.com.sap.ai.sdk.core.model.*com.sap.ai.sdk.orchestration.model.*
✨ New Functionality
- [Orchestration] Add Spring AI tool calling.
- [Orchestration] Add new convenient methods to set the response format for Orchestration.
- [Document Grounding] Add Document Grounding Client
com.sap.ai.sdk:document-grounding:1.4.0
- [OpenAI] New generated model classes introduced for AzureOpenAI specification dated 2024-10-21.
- [OpenAI] Introducing new user interface for chat completion wrapping the generated model classes.
OpenAiChatCompletionRequestandOpenAiChatCompletionResponse' for high level request and response handling.OpenAiUserMessage,OpenAiSystemMessage,OpenAiAssistantMessageandOpenAiToolMessagefor message creation for different content types.OpenAiToolChoicefor configuring chat completion requests with tool selection strategy.
- [OpenAI] Introducing new user interface for embedding calls using
OpenAiEmbeddingRequestandOpenAiEmbeddingResponse.
1.3.0 - February 13, 2025
🔧 Compatibility Notes
Message.content()returns aContentItemnow instead of aString. Use((TextItem) Message.content().items().get(0)).text()if the correspondingContentItemis aTextItemand the string representation is needed.
✨ New Functionality
- Upgrade to release 2502a of AI Core.
- Orchestration:
1.2.0 - January 30, 2025
🔧 Compatibility Notes
SingleChatMessage, as well as newMultiChatMessage, are now subtypes of new interfaceChatMessage. Most variables or methods previously typed asChatMessageinmodelpackage are now typed asSingleChatMessage.- Add missing
@Betaannotations to allcom.sap.ai.sdk.core.clientandcom.sap.ai.sdk.core.modelclasses.
✨ New Functionality
- New Orchestration features:
- Spring AI integration
- Add Grounding configuration convenience
- Images are now supported as input in newly introduced
MultiChatMessage. MultiChatMessagealso allows for multiple content items (text or image) in one object.- Grounding input can be masked with
DPIConfig. - LLama Guard can now be used for content filtering.
- Support for tool calling and response format
- Updated the list for supported models (e.g., added amazon nova models).
📈 Improvements
- Update Orchestration client to version 0.48.2 (2501a)
1.1.0 - January 07, 2025
🔧 Compatibility Notes
- Changed return type of
List<Double> getEmbedding()from experimental APIOpenAiEmbeddingDatatofloat[]to match recent Spring AI change.
✨ New Functionality
- Added
streamChatCompletion()andstreamChatCompletionDeltas()to theOrchestrationClient.
📈 Improvements
- Update AI Core client to 2.37.0
1.0.0 - December 03, 2024
✨ New Functionality
- Introduce AI Core client to consume the AI Core Rest APIs.
Here are a few features:
- Artifact management: register and organize datasets and model artifacts.
- Configuration management: set up configurations for various models and use cases.
- Deployment management: deploy AI models and manage their lifecycle within SAP AI Core.
- Introduce Orchestration client for consuming the following features of the orchestration service:
- Harmonized LLM access via orchestration
- Prompt templates
- Content filtering
- Masking
- Introduce the OpenAI client to consume the following features:
- Chat completion and streaming chat completion
- Text
- Images
- Tools
- Generate embeddings for input text.
- Chat completion and streaming chat completion
All classes under any of the ...model packages are generated from an OpenAPI specification.
This means that these model classes are not guaranteed to be stable and may change with future releases.
They are safe to use, but may require updates even in minor releases.