- Skill ID
- secondsky/sap-skills/sap-cloud-sdk-ai-python
- Publisher
- secondsky
- Repository
- sap-skills
- Installs
- 0
- Files
- 8
- License
- GPL-3.0
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
secondsky/sap-skills/sap-cloud-sdk-ai-pythonInstalls these files- README.md
- SKILL.md
- agents/openai.yaml
- references/getting-started-auth.md
- references/langchain-guide.md
- references/native-clients-guide.md
- references/orchestration-guide.md
- references/troubleshooting.md
What this skill tells the agent
SAP Cloud SDK for AI (Python)
Package rename: The PyPI packagegenerative-ai-hub-sdkis deprecated (v4.12.4 is the last release). Its successor is `sap-ai-sdk-gen` (currently v6.10.0 per public PyPI registry evidence from 2026-06-15). Code and tutorials referencinggenerative-ai-hub-sdkshould migrate tosap-ai-sdk-gen; the import name remainsgen_ai_hub.
The official Python SDK for SAP Generative AI Hub and Orchestration Service. It wraps the native SDKs of model providers (OpenAI, Amazon Bedrock, Google GenAI) and offers a harmonised LangChain integration and a full Orchestration client — all routed through SAP AI Core with unified authentication. Package freshness is registry-verified; AI Core runtime behavior and exact model availability still require target-tenant validation.
Related Skills
- sap-ai-core: Platform setup, deployments, resource groups, and model management in SAP AI Core
- sap-cloud-sdk-ai: JavaScript/TypeScript and Java equivalents of this SDK
- sap-hana-ml: HANA-side machine learning in Python
- sap-dependency-security: Pip dependency hygiene and upgrade patterns
Related external skills
If your task involves working inside Databricks (notebooks, Unity Catalog, Spark, SAP Databricks in SAP Business Data Cloud), consider installing the Databricks agent skills plugin. Ask whether you would like help installing it — never install unprompted.
When to Use This Skill
Use this skill when:
- Building Python applications that call LLMs through SAP AI Core / Generative AI Hub
- Using the
gen_ai_hubPython package (installed assap-ai-sdk-gen) - Integrating OpenAI, Amazon Bedrock, or Google GenAI models via SAP's proxy
- Implementing LangChain chains with SAP AI Core as the backend
- Using the Orchestration Service from Python (templating, filtering, masking, grounding)
- Migrating code from the deprecated
generative-ai-hub-sdktosap-ai-sdk-gen - Generating embeddings through SAP AI Core
- Working with SAP RPT-1 (Relational Pretrained Transformer) for tabular predictions
Table of Contents
- Quick Start
- Installation
- Authentication
- Available Modules
- Supported Models
- Core Features
- Bundled Resources
Quick Start
Native OpenAI Chat Completion
from gen_ai_hub.proxy.native.openai import chat
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is SAP BTP?"}
]
response = chat.completions.create(
model_name="gpt-4o-mini",
messages=messages
)
print(response.choices[0].message.content)Orchestration Service
from gen_ai_hub.orchestration_v2 import (
OrchestrationConfig, OrchestrationService,
ModuleConfig, PromptTemplatingModuleConfig,
Template, UserMessage, LLMModelDetails
)
config = OrchestrationConfig(
modules=ModuleConfig(
prompt_templating=PromptTemplatingModuleConfig(
prompt=Template(
template=[UserMessage(role="user", content="{{?question}}")]
),
model=LLMModelDetails(name="gpt-4o-mini")
)
)
)
service = OrchestrationService(config=config)
response = service.run(placeholder_values={"question": "What is SAP?"})
print(response.final_result.choices[0].message.content)Installation
# All providers + LangChain support
pip install "sap-ai-sdk-gen[all]"
# Default (OpenAI only, no LangChain)
pip install sap-ai-sdk-gen
# Specific providers (without LangChain)
pip install "sap-ai-sdk-gen[google, amazon]"Authentication
The SDK reads credentials via AICoreV2Client.from_env(), which resolves credentials in this order:
- Keyword arguments passed to
GenAIHubProxyClient(...) - Environment variables —
AICORE_CLIENT_ID,AICORE_CLIENT_SECRET,AICORE_AUTH_URL,AICORE_BASE_URL,AICORE_RESOURCE_GROUP - Config file —
$AICORE_HOME/config.json(or path set byAICORE_CONFIG); useAICORE_PROFILEto select a named profile - VCAP_SERVICES — automatic on Cloud Foundry/Kyma when the AI Core service is bound
Local Development (Environment Variables)
export AICORE_CLIENT_ID="sb-..."
export AICORE_CLIENT_SECRET="..."
export AICORE_AUTH_URL="https://<tenant>.authentication.sap.hana.ondemand.com/oauth/token"
export AICORE_BASE_URL="https://api.ai.prod.eu-central-1.aws.ml.hana.ondemand.com/v2"
export AICORE_RESOURCE_GROUP="default"Config File Profile
# ~/.aicore/config.json
{
"AICORE_CLIENT_ID": "sb-...",
"AICORE_CLIENT_SECRET": "...",
"AICORE_AUTH_URL": "https://<tenant>.authentication.sap.hana.ondemand.com/oauth/token",
"AICORE_BASE_URL": "https://api.ai.prod.eu-central-1.aws.ml.hana.ondemand.com/v2",
"AICORE_RESOURCE_GROUP": "default"
}For detailed auth setup and troubleshooting, see references/getting-started-auth.md.
Available Modules
| Module | Import Path | Purpose |
|---|---|---|
| Proxy (native clients) | gen_ai_hub.proxy.native.* | Direct model access per provider |
| LangChain integration | gen_ai_hub.proxy.langchain | init_llm, init_embedding_model, ChatOpenAI, etc. |
| Orchestration | gen_ai_hub.orchestration_v2 | Templating, filtering, masking, grounding |
| Document Grounding | gen_ai_hub.document_grounding | Pipeline, Vector, Retrieval APIs |
| Prompt Registry | gen_ai_hub.prompt_registry | Template management and config storage |
| Evaluations | gen_ai_hub.evaluations | Model evaluation runs and metrics |
| SAP RPT-1 | gen_ai_hub.proxy.native.sap | Tabular prediction (classification, regression) |
Native Clients by Provider
| Provider | Import | Key Classes |
|---|---|---|
| OpenAI | gen_ai_hub.proxy.native.openai | OpenAI, completions, chat, embeddings, responses |
| Amazon Bedrock | gen_ai_hub.proxy.native.amazon | Session, ClientWrapper |
| Google GenAI | gen_ai_hub.proxy.native.google_genai | Client |
| SAP RPT-1 | gen_ai_hub.proxy.native.sap | RPTClient, RPTRequest |
Supported Models
The Generative AI Hub catalog includes models from multiple providers. Check SAP's model catalog and the target tenant catalog for the authoritative model IDs. Example families:
| Provider | Example Families |
|---|---|
| OpenAI | GPT-family chat, multimodal, reasoning, and embedding models |
| Anthropic (via Bedrock) | Claude-family models |
| Amazon | Nova/Titan-family models |
| Gemini-family models | |
| Mistral | Mistral-family models |
| SAP | RPT-family tabular prediction models where enabled |
Core Features
Chat Completion with OpenAI Client
from gen_ai_hub.proxy.native.openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Explain CAP in one paragraph."}]
)
print(response.choices[0].message.content)Streaming
from gen_ai_hub.proxy.native.openai import OpenAI
client = OpenAI()
stream = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Explain SAP CAP."}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")Embeddings
from gen_ai_hub.proxy.native.openai import embeddings
response = embeddings.create(
input="Every decoding is another encoding.",
model_name="text-embedding-3-small"
)
print(response.data[0].embedding)LangChain Integration
from gen_ai_hub.proxy.langchain import init_llm, init_embedding_model
llm = init_llm("gpt-4o-mini", max_tokens=300)More from secondsky
Use this skill in a project
Open any RiverX project, search the Skills panel for secondsky/sap-skills/sap-cloud-sdk-ai-python, and install it in one click.
