Table of Contents [expand]
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2025年09月04日(木)
Heroku Managed Inference and Agents アドオンは、サービスを提供するためにサードパーティの生成 AI モデルを採用する場合があります。生成 AI の性質上、生成される出力は予測不可能であり、不正確な応答や有害な応答が含まれる可能性があります。お客様は、出力の正確性、安全性、適用法および許容可能なサードパーティの利用規約への準拠の徹底を含め、かかる出力に関するすべての責任を負うものとします。詳細は、「Heroku Notices and License Information」(Heroku の通知およびライセンス情報) のドキュメントを参照してください。
Heroku Managed Inference and Agents アドオンを使用すると、対応している言語 (チャット) モデル、埋め込みモデル、拡散 (画像) モデルなど、さまざまな大規模な基盤 AI モデルに簡単にアクセスできます。
これらのモデルを使用するには、Heroku Managed Inference and Agents アドオンから 1 つ以上のモデルリソースを Heroku アプリにアタッチします。アドオンはアプリに環境設定を追加し、プロビジョニングされたモデルの呼び出しを可能にします。Heroku AI CLI プラグインまたは直接 curl リクエストを介してモデルを呼び出すことができます。
すべての利用可能なモデルは Amazon Bedrock でホストされています。Heroku はモデルにアクセスするために OpenAI と同様の API を提供します。
Python、Ruby、JavaScript (Node.js) のクイックスタートガイドを参照してください。
ツール
このアドオンを使用すると、大規模言語モデル (LLM) は組み込みの再試行機能とエラー修正機能を利用して、Heroku でツールを自動的に実行できるようになります。ユーザーが作成したカスタムツールと、Heroku が提供するコード実行などの組み込みツールの両方がサポートされます。
有効にするとアプリの LLM は、バックグラウンドで Heroku の制御ループをトリガーして dyno をプロビジョニング、実行、プロビジョニング解除するツールを呼び出します。このアクションの追跡情報はモデルの出力に含まれます。
詳細は、Heroku ツールおよびMCP の使用に関する記事を参照してください。
利点
Heroku がアドオンを所有し、管理します。安全な AWS アカウントの外部にデータが送信されることはありません。推論プロンプトと完了は、ユーザーが制御する Heroku Logplex を介して一時的にのみログに記録されます。
使用可能なモデル
us および eu リージョンで使用可能なモデルの完全なリストについては、Managed Inference and Agents API のモデルカードを参照してください。
CLI プラグインをインストールする
Heroku はモデルリソースを操作するための AI CLI プラグインを提供します。
まだインストールしていない場合は、Heroku CLI をインストールします。次に、Heroku AI プラグインをインストールします。
heroku plugins:install @heroku/plugin-ai
すべてのプラグインコマンドについての詳細は、Heroku AI CLI プラグインコマンドリファレンスを参照してください。
AI モデルリソースへのアクセスをプロビジョニングする
モデルを使用するには、まずモデルリソース $MODEL_ID を作成してアプリ $APP_NAME にアタッチする必要があります。
アプリがない場合は、heroku create <your-new-app-name> を使用してアプリを作成できます。
heroku ai:models:list を実行すると利用可能なモデルを表示できます。使用するモデルを決定したら、次のコマンドを実行します。
heroku ai:models:create -a $APP_NAME $MODEL_ID
デフォルトでは、us リージョンのアプリがプロビジョニングできるのは us モデルのみ、eu リージョンのアプリがプロビジョニングできるのは eu モデルのみです。同様に、oregon、virginia、montreal リージョンの Private Space アプリがプロビジョニングできるのはデフォルトで us モデルのみ、それ以外の Private Space リージョンのアプリがプロビジョニングできるのは eu モデルのみです。これを上書きするには、--region フラグを使用すると共に、ai:models:create の代わりに addons:create を使用してモデルリソース (heroku addons:create heroku-inference:$MODEL_ID -a $APP_NAME -- --region=us/eu) を作成します。
1 つのアプリに複数のモデルリソースをアタッチできます。デフォルトでは、アプリにアタッチする最初のモデルリソースには INFERENCE というエイリスがあります。以降のアタッチメントにはランダムなエイリアス名が付けられるため、エイリアスに --as フラグを指定することをお勧めします。具体的には、埋め込みモデルと拡散モデルに対して EMBEDDING と DIFFUSION の --as 値を使用することをお勧めします。
heroku ai:models:create -a $APP_NAME cohere-embed-multilingual --as EMBEDDING
heroku ai:models:create -a $APP_NAME stable-image-ultra --as DIFFUSION
チャットモデルには INFERENCE というエイリアス、埋め込みモデル (cohere-embed-multilingual) には EMBEDDING というエイリアス、画像モデル (stable-image-ultra) には DIFFUSION というエイリアスを使用することをお勧めします。コード例はこのパターンに従っているため、コマンドの簡単なコピーと貼り付けにもこれらのエイリアスを使用することをお勧めします。
同じタイプの複数のモデルリソースを 1 つのアプリにアタッチする場合は、独自のエイリアスを指定し、使用しているコード例を結果の環境設定に置き換える必要があります。
モデルリソースの環境設定
モデルリソースをアプリにアタッチすると、アプリには 3 つの新しい環境設定が追加されます。これらの変数は、heroku config -a $APP_NAME を呼び出すと確認できます。アプリのモデルリソースに INFERENCE というエイリアス (デフォルト) がある場合、3 つの新しい環境設定は次のようになります。
INFERENCE_KEY
INFERENCE_MODEL_ID
INFERENCE_URL
これらの環境設定を現在の環境の環境変数として保存するには、次のコマンドを実行します。
export INFERENCE_KEY=$(heroku config:get INFERENCE_KEY -a $APP_NAME)
export INFERENCE_MODEL_ID=$(heroku config:get INFERENCE_MODEL_ID -a $APP_NAME)
export INFERENCE_URL=$(heroku config:get INFERENCE_URL -a $APP_NAME)
または、次を使用して環境設定を一度に表示およびエクスポートすることもできます。
eval $(heroku config -a $APP_NAME --shell | grep '^INFERENCE_' | tee /dev/tty | sed 's/^/export /')
後続のコマンドでは、アプリの <MODEL_RESOURCE> をいずれかの --as エイリアス (デフォルトで "INFERENCE") で指定できます。または、inference-production-curved-41276 など、モデルリソースの Slug で指定することもできます。heroku ai:models:info -a $APP_NAME を実行し、アタッチされたモデルリソースの Slug とエイリアスを表示します。
言語固有の例
各エンドポイントには、Python、Ruby、JavaScript の言語固有のクイックスタートガイドがあります。
AI モデルリソースの呼び出し
API / curl リクエスト経由
標準的なモデル呼び出しは次のようになります。
curl $INFERENCE_URL/v1/chat/completions \
-H "Authorization: Bearer $INFERENCE_KEY" \
-d '{
"model": '"\"$INFERENCE_MODEL_ID\""',
<other model keyword-arguments, varies model to model>
}'
ただし、完全なエンドポイント URL は使用しているモデルによって異なります。たとえば、次のようになります。
- チャットモデルは
/v1/chat/completions エンドポイントを使用します。 - 埋め込みモデル
cohere-embed-multilingual は/v1/embeddings エンドポイントを使用します。 - 拡散モデル
stable-image-ultra はv1/images/generations エンドポイントを使用します。
各モデルについての詳細は、モデルカードを参照してください。
リクエストが 29 秒を超えてタイムアウトするのを防ぐために、すべての推論リクエストでストリーミングを使用することをお勧めします。重要な注意事項: ツール呼び出しでストリーミングを使用する場合、アドオンは増分更新ではなく、各ツール呼び出しの後に完全な応答をストリーミングします。個々のツール呼び出しに 55 秒以上かかる場合は、タイムアウトが発生します。
Heroku AI プラグイン経由
標準的なモデル呼び出しは次のようになります。
heroku ai:models:call <MODEL_RESOURCE> -a $APP_NAME --prompt 'What is 1+2?'
各モデルについての詳細は、モデルカードを参照してください。
モニタリングとログ記録
モデルリソースの統計情報と現在の状況を表示するには、ai プラグインを使用します。
heroku ai:models:info <MODEL_RESOURCE> -a $APP_NAME # model resource can be the resource ID or alias.
AI モデルリソースのプロビジョニング解除
heroku ai:models:create コマンドのみを使用してモデルリソースを作成およびアタッチする場合は、heroku ai:models:destroy を使用してそのリソースを破棄できます。
ただし、場合によってはユーザーが heroku ai:models:attach を介して単一のモデルリソースを複数のアプリにアタッチすることもあります。複数のアプリに接続されたモデルリソースを破棄するには、まず、heroku ai:models:detach を指定した 1 つのアプリを除き、すべてのアプリからリソースをデタッチする必要があります。次に、heroku ai:models:destroy を実行するか、--force フラグを指定して destroy コマンドを実行します。
AI モデルリソースの破棄
警告 この操作により、すべての関連データが破棄され、元に戻すことはできません。
AI モデルリソースを破棄するには、次のコマンドを実行します。
heroku ai:models:destroy <MODEL_RESOURCE> --app $APP_NAME
モデルリソースを破棄するときに、モデルリソースのエイリアスまたはリソース ID を指定できます。
AI モデルリソースのデタッチ
特定のアプリに対して create の次に attach モデルリソースを選択する場合、次を指定して AI モデルリソースを特定のアプリからデタッチできます。
heroku ai:models:detach <MODEL_RESOURCE> --app $APP_NAME
モデルリソースをデタッチするときに、モデルリソースのエイリアスまたはリソース ID を指定できます。
このアドオンは使用した分が請求されます。デタッチされた AI モデルリソースに対しては請求されません。また、アクティブに使用されていないアタッチされた AI モデルリソースに対しても請求されません。