maestro/ui/src/content/help/15-llm-gateway.md
oss-sync a6d1879d63
Some checks failed
CI / build-and-test (push) Has been cancelled
sync: update from private repo (c764df2f)
2026-06-29 01:32:25 +00:00

5.9 KiB
Raw Blame History

id, title, category, order, keywords
id title category order keywords
llm-gateway LLM Gateway 連携 advanced 150
LLM Gateway
LiteLLM
プロキシ
モデル
Virtual Keys
使用量
Usage
トークン

LLM Gateway とは

LLM Gateway は、複数の物理 GPU / llama-server バックエンドへの呼び出しを 1 か所に集約する OpenAI 互換のプロキシです。MAESTRO は自身を Gateway として動かせるほか、外部の LiteLLM Proxy を Gateway として使うこともできます。

主な価値:

  • ルーティングの一元化: 要求された性能ティア(ロール)を担うバックエンドの中から least-busy で振り分け、空いている GPU に送る
  • 仮想キー管理: チームごとに発行する API キー (virtual key) で利用を分離・追跡
  • 観測性: すべての LLM 呼び出しが 1 か所に集まる

直接接続 (各 worker が GPU を直に叩く) でも 1 インスタンス内のロードバランスはできますが、複数の MAESTRO が同じ GPU プールを共有すると互いの占有を知らずに衝突します。Gateway を間に挟むとこれを解消できます。個人利用や専有 GPU しか使わない場合は Gateway は不要です。

どこで設定するか

admin は 設定 → LLM → Gateway Server で同一プロセス Gateway を設定します (admin 専用)。設定変更は hot reload され、サーバー再起動は不要です。設定画面全般は 設定 を参照してください。

このフォームには 2 つのブロックがあります。

  • Enable Gateway トグル + ステータスバッジ
  • Backends — 物理バックエンドのリスト
  • Virtual Keys — 仮想キーの発行・rotate・revoke

config.yaml では gateway セクションに対応します (キーは snake_case)。

Backends

バックエンドを 1 件以上追加します。各行のフィールド:

フィールド 意味
id バックエンド識別子 (例 gpu-rtx-a)。x-aao-backend-id / /v1/models に現れる
endpoint llama-server の URL (例 http://gpu-host:8080/v1)
model 厳密一致ルーティングに使うモデル名 (例 qwen3:8b)
roles このバックエンドが担う性能ティア (auto / fast / quality / reflection)。クライアントが要求したロールに合うバックエンドの中から振り分けます。未指定なら全ロールを担当
max_slots 同時スロット数 (llama-server の -np と合わせる)
api_key バックエンドが bearer を要求する場合のみ (任意)

注意: フォームに入力した api_keyconfig.yaml に平文で保存されます。${VAR} 形式の環境変数参照を使いたい場合は、フォームではなく config.yaml を直接編集してください (フォーム保存では literal 文字列になります)。

Virtual Keys

Gateway を経由してアクセスするためのクライアント側 bearer キーです。Gateway Server フォーム内の Virtual Keys セクションで発行・管理します。

要点:

  • 形式は sk-aao-*。発行時に生キーが一度だけ表示され、以後は再表示できません (失くしたら rotate / revoke + 再発行)
  • DB には hash のみ保存される
  • チーム単位で発行し、allowed_models でモデルを絞れる
  • 月次 token 予算 (tokens_budget) と RPM レート制限 (rate_limit_rpm) を設定可能。超過時はそれぞれ HTTP 402 / 429 で拒否される
  • rotate は新キー発行 + 旧キー失効をアトミックに行う

config.yamlgateway.virtual_keys[] に書いたキーは起動時に DB へ idempotent に import されます (bootstrap / バックアップ用途)。通常の運用では UI / admin API での発行が推奨です。

外部 LiteLLM Proxy を使う場合

MAESTRO 内蔵 Gateway の代わりに、リファレンス実装の LiteLLM Proxy を Gateway として使うこともできます。クライアント側 (MAESTRO worker) は Gateway の URL と virtual key を worker の endpoint / api_key に設定するだけです。

LiteLLM の構築手順・モデル定義・料金体系・Enterprise 機能といった運用詳細はこのページには含めていません。docs/aao-gateway-overview.md (内蔵 Gateway の機能概要と運用パターン) および LiteLLM の公式ドキュメントを参照してください。

監視

Gateway / Worker いずれも Prometheus 互換の /metrics を公開できます (デフォルト有効)。team / backend / key prefix などのラベルで per-team の利用量・レイテンシ・バックエンド稼働を集計できます。/metrics は機密情報を含むため、内部ネットワークに限定して公開してください。

詳細な metric 一覧・Grafana クエリ例・scrape 設定は docs/aao-gateway-overview.md を参照してください。

使用量Usageタブ

上部の 使用量 タブでは、LLM のトークン使用量を日次で確認できます。Gateway 経由と Direct各 worker が直接接続)の両方を合算し、お使いの環境のローカル日付で集計します。

  • 内訳の切り替え: 経路・モデル・バックエンド・ユーザー・組織で分解して見られます
  • 時間帯別プロファイル: 0〜23 時の時間帯ごとの使用傾向も確認でき、いつ負荷が集中するかが分かります
  • 集計の対象: 入力 / 出力トークンとリクエスト数。ユーザー別の一覧も出ます
  • Virtual Keys のキー別課金パネルadmin の Gateway 設定内)とは 別集計 です。Usage タブは「実際に消費したトークン量の可視化」、課金パネルは「キーごとの予算管理」と捉えてください

このタブは管理者専用ではなく、ログインユーザーが自分の使用量を確認できます。