メインコンテンツまでスキップ

AI Proxy を導入する

AI Proxy を、ネットワーク内の Linux ホスト上に Docker Compose スタックとして導入します。スタックが稼働したら、それを OpenLM Platform に接続し、AI Proxy を設定する でプロバイダーをセットアップします。

はじめる前に​

次の前提条件を確認します。

  • システム要件を満たす Linux ホスト。
  • Docker Engine と Docker Compose v2 プラグインがインストールされていること。docker compose version で確認してください。
  • OpenLM が提供する AI Proxy コンテナーイメージへのアクセス。イメージがプライベートレジストリにある場合は、まず docker login でサインインしてください。
  • システム要件に記載されているネットワークアクセス。
  • MongoDB パスワード、Redis パスワード、暗号化キーの独自の値。開始する前に生成してください。独自のパスワードとキーを設定するを参照してください。

スタックを導入する​

スタックを導入するには、2 つのファイルを作成し、値を確認して、コンテナーを起動します。AI Proxy UI は /aiproxy/ パスで提供され、API 呼び出しを同じアドレスの /api/ に送信するため、前段にリバースプロキシが必要です。ホスト上の作業ディレクトリ(例: ~/aiproxy/)に、aiproxy-ui-proxy.conf という名前のファイルを作成します。

server {
listen 8092;

# The AI Proxy UI, with the /aiproxy prefix stripped.
location /aiproxy/ {
proxy_pass http://aiproxyui:8092/;
}

# API calls from the browser, forwarded to the AI Proxy API.
location /api/ {
proxy_pass http://aiproxyapi:8088/api/;
}
}

同じディレクトリに、次の内容で docker-compose.yml という名前のファイルを作成します。

services:
mongodb:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=admin
restart: unless-stopped
healthcheck:
test: ["CMD", "mongosh", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5

redis:
image: redis:7-alpine
command: redis-server --save 60 1 --loglevel warning --requirepass openlm
ports:
- "6379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "-a", "openlm", "ping"]
interval: 10s
timeout: 5s
retries: 5

aiproxyapi:
image: public.ecr.aws/r3q3q2f4/olm-aiproxyapi:1.260630.1851
ports:
- "8088:8088"
depends_on:
mongodb:
condition: service_healthy
redis:
condition: service_healthy
environment:
- MONGODB_CONNECTION=mongodb://admin:admin@mongodb:27017
- REDIS__CONNECTIONSTRING=redis,password=openlm
- CLOUD_MODE=false
- ENCRYPTION_KEY=default-dev-key
# Required. The API does not start without it.
- hangfire__dashboard__enabled=false
restart: unless-stopped

aiproxyui:
image: public.ecr.aws/r3q3q2f4/olm-aiproxyui:1.260625.0620
depends_on:
- aiproxyapi
environment:
- LB_FQDN=localhost
restart: unless-stopped

# Serves the UI under /aiproxy/ and forwards its API calls to the API.
aiproxy-proxy:
image: nginx:stable
ports:
- "8092:8092"
depends_on:
- aiproxyui
- aiproxyapi
volumes:
- ./aiproxy-ui-proxy.conf:/etc/nginx/conf.d/default.conf:ro
restart: unless-stopped

volumes:
mongodb_data:
redis_data:

独自のパスワードとキーを設定する​

スタックを起動する前に、docker-compose.yml のサンプル値を独自の値に置き換えます。

  1. MongoDB のパスワードを決めます。mongodb サービスの MONGO_INITDB_ROOT_PASSWORD 設定と、aiproxyapi サービスの MONGODB_CONNECTION 設定に入力します。2 つは一致している必要があります。

  2. Redis のパスワードを決めます。redis サービスの --requirepass オプションと、aiproxyapi サービスの REDIS__CONNECTIONSTRING 設定に入力します。2 つは一致している必要があります。

  3. 暗号化キーを生成し、aiproxyapi サービスの ENCRYPTION_KEY 設定に入力します。

    openssl rand -base64 32

    出力された文字列をそのまま貼り付けてください。

  4. データベースのポートを公開しないでください。API は Compose ネットワーク経由で MongoDB と Redis に接続するため、mongodb サービス (27017) と redis サービス (6379) の ports エントリを削除します。

サンプルや別の環境のパスワードやキーを再利用しないでください。MongoDB はデータボリュームが空のときにのみアカウントを作成するため、後から MongoDB のパスワードを変更しても、既存のアカウントは変わりません。

暗号化キーを保管する

AI Proxy は ENCRYPTION_KEY を使用して、保存する認証情報と API キーを保護します。キーを安全な場所に保管し、コンテナーを再作成するたびに同じ値を使用してください。変更すると、AI Proxy は保存されたシークレットを読み取れなくなり、再入力が必要になります。

API (8088) と UI プロキシ (8092) のホストポートも確認してください。ホスト上の別のサービスが使用している場合は変更します。OpenLM Platform の接続とプロバイダーは、後で UI で設定します。

スタックを起動する​

スタックをバックグラウンドで起動します。初回実行時には Compose がイメージをプルします。

docker compose up -d

すべてのコンテナーが実行中の状態であることを確認します。

docker compose ps

導入を検証する​

各項目を順に確認してください。最後の 2 項目は、スタックが OpenLM Platform にレポートしていることを証明するため、AI Proxy を OpenLM Platform に接続した後に確認できます。

使用状況が AI FinOps に届いていることを確認するには、AI FinOps にデータが届いていることを確認するに従います。

アップグレード​

アップグレードする前に、実行中のビルドを確認し、新しいビルドを調べ、お使いの Compose ファイルとこのガイドのファイルを比較します。

  1. 実行中のビルドを一覧表示します。

    docker compose images
  2. 最新のビルドを調べます。タグは 1.<yymmdd>.<hhmm> 形式のビルド番号で、レジストリに latest タグはありません。レジストリはアクセストークンを匿名で発行するため、アカウントは不要です。Linux で、curl と jq を使用します。

    repo=olm-aiproxyapi # or olm-aiproxyui
    token=$(curl -s "https://public.ecr.aws/token/?service=public.ecr.aws&scope=repository:r3q3q2f4/$repo:pull" | jq -r .token)
    curl -s -H "Authorization: Bearer $token" "https://public.ecr.aws/v2/r3q3q2f4/$repo/tags/list" | jq -r '(.tags // [.errors[0].message])[]' | sort

    各イメージについてコマンドを 1 回ずつ実行します。タグはビルド順に並ぶため、最後の行が最新のビルドです。出力が Rate exceeded の場合は、5 秒待ってからコマンドを再実行してください。

  3. お使いの docker-compose.yml とこのガイドのファイルを比較します。新しいビルドには、お使いのファイルにまだない設定が必要な場合があります。それらをファイルに追加し、独自のパスワードと ENCRYPTION_KEY は維持してください。

  4. MongoDB のデータをバックアップします。たとえば mongodump を使用するか、mongodb_data ボリュームをコピーします。

  5. docker-compose.yml のイメージタグを更新し、イメージをプルしてコンテナーを再作成します。Compose は変更があった部分のみを再作成します。

    docker compose pull
    docker compose up -d

利用データと設定は、アップグレードをまたいで MongoDB ボリュームに保持されます。AI Proxy は起動時に保存データをアップグレードするため、同じ ENCRYPTION_KEY を維持してください。AI Proxy 変更履歴には、OpenLM Platform における AI Proxy の変更点が記載されています。イメージタグは記載されていないため、レジストリで確認してください。

アンインストール​

AI Proxy を削除するには、ホスト上のスタックを削除し、OpenLM Platform でエージェントを削除し、クライアントの接続先をプロバイダーに戻します。

  1. 存在しないエンドポイントをクライアントが呼び出さないように、まずクライアントのルーティングを AI Proxy から外します。Claude Code の場合は、Claude Code CLI を AI Proxy 経由でルーティングするの元に戻す手順に従ってください。AI Proxy に向けた他のクライアントもリセットします。

  2. docker-compose.yml があるディレクトリで、コンテナーを停止して削除します。

    docker compose down

    データは Docker ボリュームに残るため、後でスタックを再び起動できます。

  3. データも削除するには、次の警告に記載されたコマンドを実行します。

    これは保存されているデータを削除します

    このコマンドは MongoDB と Redis のボリュームを削除します。まだ送信されていない利用レコード、プロバイダーの設定、OpenLM Platform の接続 (Client ID とシークレットを含む)、保存されている API キーが消去されます。同じホスト上の新しいスタックは新しい ID で起動し、Broker Hub に新しいエージェントとして表示されます。

    docker compose down -v
  4. OpenLM Platform で Broker Hub を開き、AI Proxy タブを選択し、エージェントのチェックボックスをオンにして、Delete を選択します。

  5. AI Proxy 用に Identity クライアントを作成した場合は、OpenLM Platform で削除します。

  6. 必要に応じて、作業ディレクトリとイメージ (docker image rm) を削除します。

次のステップ

スタックを OpenLM Platform に接続するには、AI Proxy を設定するに進んでください。問題が発生した場合は、AI Proxy のトラブルシューティングを参照してください。

ドキュメントチームは、大規模言語モデルを使ってこのページを下書きすることがあります。公開前に、テクニカルライターがすべてのページをレビューし、製品と照らし合わせて検証します。最終的な判断は人間が行います。