mcpField
A
aicore-sdk-java

aicore-sdk-java

github.com/sap開発10122 回インストール6 日前に更新
リポジトリ

aicore-sdk-java について

SAP AI SDKでJavaコードを生成するスキルで、OrchestrationClientを中心に構成されています。検証済みテンプレートと資料を使い、チャット、ストリーミング、埋め込み、グラウンディング、フィルタリングなどを扱います。

主な機能

  1. 01OrchestrationClientを中心としたガイド
  2. 02チャットとストリーミングのテンプレート
  3. 03埋め込み・グラウンディング・フィルタリングの例
  4. 04Spring AIとバッチ処理の例
  5. 05検証済みアセットと参照資料による補完

活用シーン

  1. 01Javaのチャットや複数ターン会話の作成
  2. 02Spring Bootコントローラーでのレスポンス配信
  3. 03埋め込みやベクトルストアグラウンディングの追加
  4. 04Spring 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/ ディレクトリ) — 最初に一致するテンプレートを探し、見つかったらそのまま提供します。 アセットは常にオフラインで利用でき、実行可能なテスト済みコードが含まれています。
  2. Context7 MCP — 一致するアセットがない場合は、Context7 経由で最新のドキュメントを取得します。 resolve-library-id: SAP/ai-sdk-java、続いて get-library-docs を実行します。 Context7 からは、リポジトリの最新の API 仕様を直接取得できます。 Context7 がインストールされていない場合は、通知せずに手順 3 に進みます。
  3. references/SDK_JAVA.md — Context7 が利用できない場合のオフライン参照資料です。 推測するのではなく、こちらを使用してください。

クラス名、メソッドシグネチャ、設定形式を捏造してはいけません。 3 つのソースのどれにも質問に関する情報がない場合は、その旨を伝え、ユーザーに 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 が 2 つあります。それぞれを正しく使用してください。
    • 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 のバグや予期しない実行時の動作については、問題を認識したうえで、アセットまたは参照ドキュメントで検証済みの回避策のみを共有し、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 /ベクトルストアによるグラウンディングassets/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
LLM バッチ処理assets/BatchOrchestration.javacom.sap.ai.sdk:batch + openai + core
OpenAI Responses API のネイティブ利用assets/OpenAiNative.javacom.sap.ai.sdk:openai
RPT テーブル補完(SAP RPT model)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


引き継ぎ

  • 代わりに JS/TS コードが必要ですか? → aicore-sdk-js を呼び出してください
  • SDK のバグや予期しない動作がありますか? → https://github.com/SAP/ai-sdk-java/issues

参照ファイルを読み込むタイミング

トリガーアクション
ユースケースがアセット(チャット、ストリーミング、マルチターン、埋め込み、グラウンディング、Prompt Registry、Spring AI、フィルタリング、マスキング)に該当するassets/ から対応するアセットを提供します
ユースケースがアセットでカバーされていない(推論、構造化出力、Spring Boot ストリーミング)利用可能であれば Context7(SAP/ai-sdk-java)で API の使用パターンを確認し、利用できない場合は references/SDK_JAVA.md を使用します
コード生成全般上記のソースに照らして、クラス名とメソッドシグネチャを必ず確認します

コメント