生成 AI は研究室の外へ飛び出し、今やビジネス現場の常識を塗り替えています。SAPは全速力でその波に乗っています。このブログシリーズでは、SAP AI Core の既定モデルを最速で呼び出し、実務で使える AI エージェントへ拡張する“秒速ハンズオン”をお届けします。
お知らせ
You can find the English version here.
本シリーズで学べること
SAP AI Core 上でカスタム AI Agent を “秒速” で動かす方法LangChain・Google 検索ツール・RAGを使った実装AI Agent を REST API 化し、SAPUI5/Fiori の UI に載せ、Cloud Foundryにデプロイする手順
学習時間
各章は 10–15 分 で読める&手を動かせるを予定しています。
️ 連載ロードマップ
Part 0 プロローグPart 1 環境構築: SAP AI CoreとAI LaunchpadPart 2 LangChain でチャットモデルを構築Part 3 Agentツール: Google 検索を統合Part 4 RAG 基礎 ①: HANA Cloud VectorEngineと埋め込み処理Part 5 RAG 基礎 ②: Retriever Toolの構築Part 6 AI Agent を REST API 化Part 7 SAPUI5 でチャットUI を構築Part 8 CloudFoundry にデプロイ [現在のブログ]
注記
続編は順次公開予定です。
この記事がお役に立ったら、ぜひ Kudos を押していただけると励みになります。 「ここをもっと詳しく知りたい」「別のテーマも取り上げてほしい」など、ご要望があればお気軽にコメントください!
CloudFoundry にデプロイ
1 | はじめに
これまでローカルで開発してきた Python API と Fiori UI を、ビジネス向け PaaS である Cloud Foundry 環境へデプロイしましょう。
Cloud Foundry はアプリケーションのビルドパックを自動判定し、必要なランタイムを用意したうえでスケールやサービス連携を簡素化してくれるのが魅力です。今回は 「UI を mta build → cf deploy」「Python を manifest.yaml → cf push」 の 2 本立てで、“秒速” 本番デプロイを目指します。
2 | 事前準備
BTP サブアカウントSAP AI Core インスタンスSAP AI LaunchpadのサブスクリプションPython 3.13環境 & pipVSCodeやBASなどのIDE
Trial 環境の注意
Trial の HANA Cloud インスタンスは 毎晩自動停止 されます。日をまたぐ作業の場合は翌日インスタンスを再起動してください
3 | Cloud Foundry にデプロイ
ローカルで完成した UI と API をクラウドへ持ち上げるために、まずはプロジェクトのフォルダ構成を再確認します。UI 側は MTA プロジェクトとして my-ai-agent-ui/ に、バックエンドの Python API は my-ai-agent-api/ に分かれているはずです。
# フォルダ構成
PROJECTS
├── my-ai-agent-ui/
│ ├── mta.yaml
│ └── …
└── my-ai-agent-api/
├── main.py
└── …
最初にバックエンドからデプロイします。my-ai-agent-api 直下に manifest.yaml を用意し、必要なメモリやビルドパック、起動コマンドを宣言しておきます。
applications:
– name: my-ai-agent-api
memory: 256M
disk_quota: 2G
instances: 1
buildpack: python_buildpack
command: gunicorn -w 1 -k uvicorn.workers.UvicornWorker main:app –bind 0.0.0.0:${PORT:-8000}
random-route: true
次に Cloud Foundry CLI でサブアカウントへログインします。
cf login -a <CF_API_Endpoint>
次に、my-ai-agent-api フォルダで cf push を実行します。
cd my-ai-agent-api
cf push
デプロイが完了するとコンソールに routes: が表示され、そこが公開 URL になります。ブラウザで <route>/docs にアクセスして FastAPI の Swagger UI が開けば、API は正しくホストされています!
フロントエンドをデプロイする前に、チャット画面がクラウド上の API に正しく接続できるようエンドポイントを差し替えておきます。my-ai-agent-ui/webapp/controller/ChatEntity.controller.js の冒頭付近にある ENDPOINT 定数を、先ほど Cloud Foundry にデプロイした Python API の URL に置き換えてください。
// 環境によってエンドポイントを切り替え
const ENDPOINT = (
[“localhost”, “applicationstudio”].some(h => window.location.hostname.includes(h)) ||
window.location.port === “8080”
) ? “” : “https://my-ai-agent-api-relaxed-raven-ie.cfapps.us10-001.hana.ondemand.com”;
ローカル開発中は空文字列(UI5 ミドルウェアのプロキシ経由)を使い、Cloud Foundry にデプロイされたアプリが実行される環境ではフル URL が使われる仕組みです。
続いて、フロントエンドを Cloud Foundry に載せます。my-ai-agent-ui フォルダに移動して mbt build を実行すると、mta_archives ディレクトリに MTAR ファイルが生成されます。生成物を cf deploy でアップロードすれば、UI 側もクラウドへ反映されます.
cd ../my-ai-agent-ui
mbt build
cf deploy mta_archives/my-ai-agent-ui_0.0.1.mtar -f
デプロイ後、BTP Cockpit の HTML5 Applications を開くと、先ほどのアプリがタイルとして表示されるのでクリックして起動します。
もしチャットが API に接続できていなければ、ENDPOINT 定数や Destination の URL を先ほど控えた API ルートに合わせて修正してください。
4 | チャレンジ – WorkZone に載せよう
SAP Build Work Zone, Standard Edition を使うと、今デプロイした HTML5 アプリを社内ポータルにワンクリックで追加できます。Integrate Your Application with SAP Build Work Zone, Standard Edition を参考に、次の流れでチャレンジしてみましょう。
コンテンツ同期 — BTP Cockpit の Channel Manager で Fetch Updated Content を実行。Content Explorer でアプリを追加 — 対象アプリを選択し Add を押すだけ。グループ & ロール設定 — 例えば Everyone に割り当てて全社員へ公開。Site 作成 — Site Directory で新規サイトを作り、タイルをドラッグ&ドロップで配置。
5 | 終わりに
SAP BTP でカスタム AI を組む意義はシンプルです。業務データとモデルを同じ基盤に置けるため データ移送やガバナンス調整が最小限 になり、Fiori や Work Zone にそのまま埋め込めるので ユーザは慣れた SAP 画面から AI を呼び出せます。さらに MTA や AI Core が開発〜再学習までを一貫して支えるため、PoC から本番までの距離が短い——これが SAP でやる最大のメリットです。
今回の流れをテンプレート化しておけば、プロンプトと UI を差し替えるだけで新しい AI アプリを量産できます。ぜひ自社のユースケースに合わせて拡張してみてください!
ここまで、お疲れ様でした!ありがとうございました!
免責事項
本ブログに記載された見解および意見はすべて私個人のものであり、私の個人的な立場で発信しています。SAP は本ブログの内容について一切の責任を負いません。
生成 AI は研究室の外へ飛び出し、今やビジネス現場の常識を塗り替えています。SAPは全速力でその波に乗っています。このブログシリーズでは、SAP AI Core の既定モデルを最速で呼び出し、実務で使える AI エージェントへ拡張する“秒速ハンズオン”をお届けします。お知らせYou can find the English version here. 本シリーズで学べることSAP AI Core 上でカスタム AI Agent を “秒速” で動かす方法LangChain・Google 検索ツール・RAGを使った実装AI Agent を REST API 化し、SAPUI5/Fiori の UI に載せ、Cloud Foundryにデプロイする手順学習時間各章は 10–15 分 で読める&手を動かせるを予定しています。
連載ロードマップPart 0 プロローグPart 1 環境構築: SAP AI CoreとAI LaunchpadPart 2 LangChain でチャットモデルを構築Part 3 Agentツール: Google 検索を統合Part 4 RAG 基礎 ①: HANA Cloud VectorEngineと埋め込み処理Part 5 RAG 基礎 ②: Retriever Toolの構築Part 6 AI Agent を REST API 化Part 7 SAPUI5 でチャットUI を構築Part 8 CloudFoundry にデプロイ [現在のブログ]注記続編は順次公開予定です。この記事がお役に立ったら、ぜひ Kudos を押していただけると励みになります。 「ここをもっと詳しく知りたい」「別のテーマも取り上げてほしい」など、ご要望があればお気軽にコメントください!CloudFoundry にデプロイ1 | はじめに これまでローカルで開発してきた Python API と Fiori UI を、ビジネス向け PaaS である Cloud Foundry 環境へデプロイしましょう。Cloud Foundry はアプリケーションのビルドパックを自動判定し、必要なランタイムを用意したうえでスケールやサービス連携を簡素化してくれるのが魅力です。今回は 「UI を mta build → cf deploy」「Python を manifest.yaml → cf push」 の 2 本立てで、“秒速” 本番デプロイを目指します。 2 | 事前準備BTP サブアカウントSAP AI Core インスタンスSAP AI LaunchpadのサブスクリプションPython 3.13環境 & pipVSCodeやBASなどのIDETrial 環境の注意Trial の HANA Cloud インスタンスは 毎晩自動停止 されます。日をまたぐ作業の場合は翌日インスタンスを再起動してください 3 | Cloud Foundry にデプロイローカルで完成した UI と API をクラウドへ持ち上げるために、まずはプロジェクトのフォルダ構成を再確認します。UI 側は MTA プロジェクトとして my-ai-agent-ui/ に、バックエンドの Python API は my-ai-agent-api/ に分かれているはずです。# フォルダ構成
PROJECTS
├── my-ai-agent-ui/
│ ├── mta.yaml
│ └── …
└── my-ai-agent-api/
├── main.py
└── … 最初にバックエンドからデプロイします。my-ai-agent-api 直下に manifest.yaml を用意し、必要なメモリやビルドパック、起動コマンドを宣言しておきます。applications:
– name: my-ai-agent-api
memory: 256M
disk_quota: 2G
instances: 1
buildpack: python_buildpack
command: gunicorn -w 1 -k uvicorn.workers.UvicornWorker main:app –bind 0.0.0.0:${PORT:-8000}
random-route: true 次に Cloud Foundry CLI でサブアカウントへログインします。cf login -a <CF_API_Endpoint>次に、my-ai-agent-api フォルダで cf push を実行します。cd my-ai-agent-api
cf pushデプロイが完了するとコンソールに routes: が表示され、そこが公開 URL になります。ブラウザで <route>/docs にアクセスして FastAPI の Swagger UI が開けば、API は正しくホストされています! フロントエンドをデプロイする前に、チャット画面がクラウド上の API に正しく接続できるようエンドポイントを差し替えておきます。my-ai-agent-ui/webapp/controller/ChatEntity.controller.js の冒頭付近にある ENDPOINT 定数を、先ほど Cloud Foundry にデプロイした Python API の URL に置き換えてください。 // 環境によってエンドポイントを切り替え
const ENDPOINT = (
[“localhost”, “applicationstudio”].some(h => window.location.hostname.includes(h)) ||
window.location.port === “8080”
) ? “” : “https://my-ai-agent-api-relaxed-raven-ie.cfapps.us10-001.hana.ondemand.com”;ローカル開発中は空文字列(UI5 ミドルウェアのプロキシ経由)を使い、Cloud Foundry にデプロイされたアプリが実行される環境ではフル URL が使われる仕組みです。 続いて、フロントエンドを Cloud Foundry に載せます。my-ai-agent-ui フォルダに移動して mbt build を実行すると、mta_archives ディレクトリに MTAR ファイルが生成されます。生成物を cf deploy でアップロードすれば、UI 側もクラウドへ反映されます.cd ../my-ai-agent-ui
mbt build
cf deploy mta_archives/my-ai-agent-ui_0.0.1.mtar -fデプロイ後、BTP Cockpit の HTML5 Applications を開くと、先ほどのアプリがタイルとして表示されるのでクリックして起動します。 もしチャットが API に接続できていなければ、ENDPOINT 定数や Destination の URL を先ほど控えた API ルートに合わせて修正してください。 4 | チャレンジ – WorkZone に載せようSAP Build Work Zone, Standard Edition を使うと、今デプロイした HTML5 アプリを社内ポータルにワンクリックで追加できます。Integrate Your Application with SAP Build Work Zone, Standard Edition を参考に、次の流れでチャレンジしてみましょう。コンテンツ同期 — BTP Cockpit の Channel Manager で Fetch Updated Content を実行。Content Explorer でアプリを追加 — 対象アプリを選択し Add を押すだけ。グループ & ロール設定 — 例えば Everyone に割り当てて全社員へ公開。Site 作成 — Site Directory で新規サイトを作り、タイルをドラッグ&ドロップで配置。 5 | 終わりにSAP BTP でカスタム AI を組む意義はシンプルです。業務データとモデルを同じ基盤に置けるため データ移送やガバナンス調整が最小限 になり、Fiori や Work Zone にそのまま埋め込めるので ユーザは慣れた SAP 画面から AI を呼び出せます。さらに MTA や AI Core が開発〜再学習までを一貫して支えるため、PoC から本番までの距離が短い——これが SAP でやる最大のメリットです。今回の流れをテンプレート化しておけば、プロンプトと UI を差し替えるだけで新しい AI アプリを量産できます。ぜひ自社のユースケースに合わせて拡張してみてください!ここまで、お疲れ様でした!ありがとうございました! 免責事項本ブログに記載された見解および意見はすべて私個人のものであり、私の個人的な立場で発信しています。SAP は本ブログの内容について一切の責任を負いません。 Read More Technology Blog Posts by SAP articles
#SAP
#SAPTechnologyblog