mcpField
A
aicore-sdk-java

aicore-sdk-java

github.com/sap开发10122 次安装6 天前更新
代码仓库

关于 aicore-sdk-java

使用 SAP AI SDK 生成 Java 代码的 Skill,以 OrchestrationClient 为核心,通过经过验证的模板和参考资料覆盖聊天、流式处理、嵌入、grounding、过滤等集成。

主要功能

  1. 01以 OrchestrationClient 为核心的指引
  2. 02聊天与流式处理模板
  3. 03嵌入、grounding 和过滤示例
  4. 04Spring AI 与批处理示例
  5. 05经验证的资源和参考资料回退

适用场景

  1. 01创建 Java 聊天或多轮对话流程
  2. 02在 Spring Boot 控制器中流式传输响应
  3. 03添加嵌入或向量存储 grounding
  4. 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.md
assets/
BatchOrchestration.java
ChatOrchestration.java
EmbeddingsOrchestration.java
FilteringOrchestration.java
GroundingOrchestration.java
MaskingOrchestration.java
MultiTurnOrchestration.java
OpenAiNative.java
PromptRegistryOrchestration.java
RptOrchestration.java
SpringAiOpenAi.java
SpringAiOrchestration.java
StreamingOrchestration.java
evals/
evals.json
trigger_evals.json
references/
SDK_JAVA.md

详细介绍

来源与回退方案

按以下优先顺序查找答案:

  1. Assets(assets/ 目录)——先检查是否有匹配的模板;如果有,直接提供。 Assets 始终可离线使用,并包含可运行且经过测试的代码。
  2. Context7 MCP——如果没有匹配的 asset,则通过 Context7 获取实时文档: resolve-library-id: SAP/ai-sdk-java,然后调用 get-library-docs。 Context7 会直接从仓库返回最新的 API 结构。 如果未安装 Context7,则静默回退到第 3 步。
  3. references/SDK_JAVA.md——Context7 不可用时使用的离线参考资料。 使用此资料,不要猜测。

不要编造类名、方法签名或配置结构。 如果这三个来源都未涵盖该问题,请如实说明,并引导用户直接访问 https://sap.github.io/ai-sdk/docs/java/。


规则

  1. 如果尚未创建部署,请先检查 SAP AI Core 控制台或联系管理员,列出或创建部署,然后再生成代码。
  2. 生成的代码注释中始终包含凭证相关指导;设置详情请参阅 连接到 AI Core。
  3. 使用 OrchestrationAiModel 常量(例如 OrchestrationAiModel.GPT_4O_MINI),绝不要使用原始模型名称字符串。
  4. 始终将 OrchestrationClient 用作聊天、流式传输、嵌入、落地和过滤的主要客户端。OpenAiClient(openai 构件)仅用于直接使用 OpenAI 代理的场景——不要将其推荐用于一般聊天。
  5. 流式传输有两种不同的 API,必须正确使用:
    • Spring Boot 控制器中的 OrchestrationClient.streamChatCompletion():始终使用 ResponseBodyEmitter 和 ThreadContextExecutors.getExecutor().execute() 转发增量内容。绝不要使用 SseEmitter、Thread.ofVirtual(),也不要从控制器暴露原始 Flux。
    • Spring AI ChatModel.stream()(OrchestrationChatModel / OpenAiChatModel):此方法属于 Spring AI ChatModel 接口,返回 Flux<ChatResponse> 完全合理。直接组合 Flux(例如 .doOnNext(…).blockLast())是正确的——不要将其替换为 ResponseBodyEmitter。
  6. 生成代码前,请收集以下信息——只询问用户尚未提供的内容:
    • 使用场景:聊天 / 流式传输 / 多轮对话 / 嵌入 / 落地 / 过滤?
    • 模型:查看 SAP AI Core 控制台或 SAP GenAI Hub 文档,了解可用模型
    • 构建工具:Maven 还是 Gradle?
    • 框架:纯 Java 还是 Spring Boot?
  7. 对于 SDK 错误或意外的运行时行为:承认问题,只分享 Assets 或参考文档中经过验证的解决方法,并引导用户访问 https://github.com/SAP/ai-sdk-java/issues。不要猜测 SDK 内部实现,也不要诊断上述来源未涵盖的错误。

资产映射

用例模板依赖
通过 OrchestrationClient 聊天assets/ChatOrchestration.javacom.sap.ai.sdk:orchestration
通过 OrchestrationClient 流式处理assets/StreamingOrchestration.javacom.sap.ai.sdk:orchestration
多轮对话assets/MultiTurnOrchestration.javacom.sap.ai.sdk:orchestration
文本嵌入assets/EmbeddingsOrchestration.javacom.sap.ai.sdk:orchestration
RAG / 向量存储 groundingassets/GroundingOrchestration.javacom.sap.ai.sdk:orchestration
Prompt Registry 模板assets/PromptRegistryOrchestration.javacom.sap.ai.sdk:orchestration
Spring AI + Orchestrationassets/SpringAiOrchestration.javacom.sap.ai.sdk:orchestration
Spring AI + OpenAI 客户端assets/SpringAiOpenAi.javacom.sap.ai.sdk:openai
大模型批处理assets/BatchOrchestration.javacom.sap.ai.sdk:batch + openai + core
原生 OpenAI Responses APIassets/OpenAiNative.javacom.sap.ai.sdk:openai
RPT 表格补全(SAP RPT 模型)assets/RptOrchestration.javacom.sap.ai.sdk:sap-rpt
内容过滤(Azure + LlamaGuard)assets/FilteringOrchestration.javacom.sap.ai.sdk:orchestration
数据脱敏(DPI 匿名化)assets/MaskingOrchestration.javacom.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


移交


何时加载参考文件

触发条件操作
用例与某个资产匹配(聊天、流式处理、多轮对话、嵌入、grounding、prompt registry、Spring AI、过滤、脱敏)提供 assets/ 中匹配的资产
用例未被资产覆盖(推理、结构化输出、Spring Boot 流式处理)如果可用,使用 Context7(SAP/ai-sdk-java)了解 API 用法模式,否则使用 references/SDK_JAVA.md
任何代码生成始终根据上文的源代码验证类名和方法签名

评论

支持 Markdown