From 41d5072b5ff1f685762eb58381b574de0e96732e Mon Sep 17 00:00:00 2001 From: Vasilisa Parshikova Date: Thu, 5 Mar 2026 13:17:20 +0400 Subject: [PATCH] (sap) update docs, solve merge conflict in transformation.py --- docs/my-website/docs/providers/sap.md | 52 +++++++++++++++++++++++++ litellm/llms/sap/chat/transformation.py | 6 +++ 2 files changed, 58 insertions(+) diff --git a/docs/my-website/docs/providers/sap.md b/docs/my-website/docs/providers/sap.md index 07ffa2fa57e..eee8c98e33e 100644 --- a/docs/my-website/docs/providers/sap.md +++ b/docs/my-website/docs/providers/sap.md @@ -680,6 +680,58 @@ except Exception as e: ``` For more information about all available content filtering configurations, see the [documentation](https://help.sap.com/docs/sap-ai-core/generative-ai/content-filtering?locale=en-US) +#### List of moduls configuration for fallback +SAP GEN AI Hub supports a fallback mechanism for handling errors. This mechanism allows you to specify a list of fallback modules to use in case of errors. The fallback modules should contain all parameters that are required for configuring the request. + +Required parameters: +- `model` +- `messages` + +Optional parameters: +- `filterings` +- `groundings` +- `translations` +- `masking` +- `tools` + +- and any of model's specific parameters. + + +```python showLineNumbers title="Fallback Example" +from litellm import completion + +from litellm import completion + +translation_config = { + 'input': + {'type': 'sap_document_translation', + 'config': + {'source_language': 'en-US', + 'target_language': 'de-DE'} + }, + 'output': + {'type': 'sap_document_translation', + 'config': + {'source_language': 'de-DE', + 'target_language': 'fr-FR'} + } +} + +response = completion(model="sap/gpt-4o", + messages=[{"role": "user", "content": "Hello world!"}], + translation=translation_config, + fallback_sap_modules=[{ + "model":"sap/gemini-2.5-flash", + "messages":[{"role": "user", "content": "Hello world!"}], + "translation":translation_config + }]) + +# In case of error with the first configuration (model gpt-4o), the fallback module is used. + +print(response.choices[0].message.content) + +``` + ## Reference diff --git a/litellm/llms/sap/chat/transformation.py b/litellm/llms/sap/chat/transformation.py index 0c397d0b7a9..656e69ab77a 100755 --- a/litellm/llms/sap/chat/transformation.py +++ b/litellm/llms/sap/chat/transformation.py @@ -220,6 +220,12 @@ class GenAIHubOrchestrationConfig(OpenAIGPTConfig): ) -> dict: optional_params.pop("deployment_url", None) + # Filter strict for GPT models only - SAP AI Core doesn't accept it as a model param + # LangChain agents pass strict=true at top level, which fails for GPT models + # Anthropic models accept strict, so preserve it for them + if model.startswith("gpt") and "strict" in optional_params: + optional_params.pop("strict") + def _build_prompt_module( *, model_name: str,