关于 aicore-sdk-java
使用 SAP AI SDK 生成 Java 代码的 Skill,以 OrchestrationClient 为核心,通过经过验证的模板和参考资料覆盖聊天、流式处理、嵌入、grounding、过滤等集成。
主要功能
- 01以 OrchestrationClient 为核心的指引
- 02聊天与流式处理模板
- 03嵌入、grounding 和过滤示例
- 04Spring AI 与批处理示例
- 05经验证的资源和参考资料回退
适用场景
- 01创建 Java 聊天或多轮对话流程
- 02在 Spring Boot 控制器中流式传输响应
- 03添加嵌入或向量存储 grounding
- 04集成 Spring AI 或批处理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sap/ ai-skills-library --skill aicore-sdk-java安装后在 Claude Code 中输入/aicore-sdk-java确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdassets/BatchOrchestration.javaChatOrchestration.javaEmbeddingsOrchestration.javaFilteringOrchestration.javaGroundingOrchestration.javaMaskingOrchestration.javaMultiTurnOrchestration.javaOpenAiNative.javaPromptRegistryOrchestration.javaRptOrchestration.javaSpringAiOpenAi.javaSpringAiOrchestration.javaStreamingOrchestration.javaevals/evals.jsontrigger_evals.jsonreferences/SDK_JAVA.md详细介绍
来源与回退方案
按以下优先顺序查找答案:
- Assets(
assets/目录)——先检查是否有匹配的模板;如果有,直接提供。 Assets 始终可离线使用,并包含可运行且经过测试的代码。 - Context7 MCP——如果没有匹配的 asset,则通过 Context7 获取实时文档:
resolve-library-id: SAP/ai-sdk-java,然后调用get-library-docs。 Context7 会直接从仓库返回最新的 API 结构。 如果未安装 Context7,则静默回退到第 3 步。 references/SDK_JAVA.md——Context7 不可用时使用的离线参考资料。 使用此资料,不要猜测。
不要编造类名、方法签名或配置结构。 如果这三个来源都未涵盖该问题,请如实说明,并引导用户直接访问 https://sap.github.io/ai-sdk/docs/java/。
规则
- 如果尚未创建部署,请先检查 SAP AI Core 控制台或联系管理员,列出或创建部署,然后再生成代码。
- 生成的代码注释中始终包含凭证相关指导;设置详情请参阅 连接到 AI Core。
- 使用
OrchestrationAiModel常量(例如OrchestrationAiModel.GPT_4O_MINI),绝不要使用原始模型名称字符串。 - 始终将
OrchestrationClient用作聊天、流式传输、嵌入、落地和过滤的主要客户端。OpenAiClient(openai构件)仅用于直接使用 OpenAI 代理的场景——不要将其推荐用于一般聊天。 - 流式传输有两种不同的 API,必须正确使用:
- Spring Boot 控制器中的
OrchestrationClient.streamChatCompletion():始终使用ResponseBodyEmitter和ThreadContextExecutors.getExecutor().execute()转发增量内容。绝不要使用SseEmitter、Thread.ofVirtual(),也不要从控制器暴露原始Flux。 - Spring AI
ChatModel.stream()(OrchestrationChatModel/OpenAiChatModel):此方法属于 Spring AIChatModel接口,返回Flux<ChatResponse>完全合理。直接组合Flux(例如.doOnNext(…).blockLast())是正确的——不要将其替换为ResponseBodyEmitter。
- Spring Boot 控制器中的
- 生成代码前,请收集以下信息——只询问用户尚未提供的内容:
- 使用场景:聊天 / 流式传输 / 多轮对话 / 嵌入 / 落地 / 过滤?
- 模型:查看 SAP AI Core 控制台或 SAP GenAI Hub 文档,了解可用模型
- 构建工具:Maven 还是 Gradle?
- 框架:纯 Java 还是 Spring Boot?
- 对于 SDK 错误或意外的运行时行为:承认问题,只分享 Assets 或参考文档中经过验证的解决方法,并引导用户访问 https://github.com/SAP/ai-sdk-java/issues。不要猜测 SDK 内部实现,也不要诊断上述来源未涵盖的错误。
资产映射
| 用例 | 模板 | 依赖 |
|---|---|---|
通过 OrchestrationClient 聊天 | assets/ChatOrchestration.java | com.sap.ai.sdk:orchestration |
通过 OrchestrationClient 流式处理 | assets/StreamingOrchestration.java | com.sap.ai.sdk:orchestration |
| 多轮对话 | assets/MultiTurnOrchestration.java | com.sap.ai.sdk:orchestration |
| 文本嵌入 | assets/EmbeddingsOrchestration.java | com.sap.ai.sdk:orchestration |
| RAG / 向量存储 grounding | assets/GroundingOrchestration.java | com.sap.ai.sdk:orchestration |
| Prompt Registry 模板 | assets/PromptRegistryOrchestration.java | com.sap.ai.sdk:orchestration |
| Spring AI + Orchestration | assets/SpringAiOrchestration.java | com.sap.ai.sdk:orchestration |
| Spring AI + OpenAI 客户端 | assets/SpringAiOpenAi.java | com.sap.ai.sdk:openai |
| 大模型批处理 | assets/BatchOrchestration.java | com.sap.ai.sdk:batch + openai + core |
| 原生 OpenAI Responses API | assets/OpenAiNative.java | com.sap.ai.sdk:openai |
| RPT 表格补全(SAP RPT 模型) | assets/RptOrchestration.java | com.sap.ai.sdk:sap-rpt |
| 内容过滤(Azure + LlamaGuard) | assets/FilteringOrchestration.java | com.sap.ai.sdk:orchestration |
| 数据脱敏(DPI 匿名化) | assets/MaskingOrchestration.java | com.sap.ai.sdk:orchestration |
安装选项
<dependency>
<groupId>com.sap.ai.sdk</groupId>
<artifactId>orchestration</artifactId>
<version>1.22.0</version>
</dependency>
<dependency>
<groupId>com.sap.ai.sdk</groupId>
<artifactId>core</artifactId>
<version>1.22.0</version>
</dependency>
// Gradle
implementation 'com.sap.ai.sdk:orchestration:1.22.0'
// Add core if using AiCoreService (custom resource groups):
implementation 'com.sap.ai.sdk:core:1.22.0'
请在 Maven Central 查看最新版本。
快速入门(OrchestrationClient)
import com.sap.ai.sdk.orchestration.OrchestrationClient;
import com.sap.ai.sdk.orchestration.OrchestrationModuleConfig;
import com.sap.ai.sdk.orchestration.OrchestrationPrompt;
import com.sap.ai.sdk.orchestration.OrchestrationAiModel;
// Credentials auto-loaded from AICORE_SERVICE_KEY env var or VCAP_SERVICES
var client = new OrchestrationClient();
var config = new OrchestrationModuleConfig()
.withLlmConfig(OrchestrationAiModel.GPT_4O_MINI);
var response = client.chatCompletion(
new OrchestrationPrompt("What is SAP AI Core?"), config);
System.out.println(response.getContent());
凭据设置
将包含 SAP AI Core 服务密钥的 JSON 设置为 AICORE_SERVICE_KEY 环境变量:
export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}'
或者运行 aicore configure(Python CLI),将凭据保存到 ~/.aicore/config.json。
参见:https://sap.github.io/ai-sdk/docs/java/connecting-to-ai-core
移交
- 想要 JS/TS 代码? → 调用
aicore-sdk-js - SDK 有缺陷或行为异常? → https://github.com/SAP/ai-sdk-java/issues
何时加载参考文件
| 触发条件 | 操作 |
|---|---|
| 用例与某个资产匹配(聊天、流式处理、多轮对话、嵌入、grounding、prompt registry、Spring AI、过滤、脱敏) | 提供 assets/ 中匹配的资产 |
| 用例未被资产覆盖(推理、结构化输出、Spring Boot 流式处理) | 如果可用,使用 Context7(SAP/ai-sdk-java)了解 API 用法模式,否则使用 references/SDK_JAVA.md |
| 任何代码生成 | 始终根据上文的源代码验证类名和方法签名 |
评论
支持 Markdown