LLM API の予算を守るコツは「請求書より先に上限をかける」ことです。部門とメンバーごとに月次予算を設定し、自動化サービスには専用の API キーを発行して個別に上限を付けます。上限に達したリクエストは処理される前に拒否される(HTTP 402 insufficient_quota)ため、暴走した Agent のループも上限で止まり、月の予算を食い潰しません。HopBase では部門とメンバーの予算が、指定した締め日(毎月 1〜28 日)に一斉にリセットされます。企業残高には複数段階のアラートを設定でき、しきい値を下回るとメールとコンソール内通知が届きます。さらに、タスクごとに安いモデルを選ぶこと、プロンプトキャッシュを活用すること、週 1 回 CSV を書き出して振り返ることを組み合わせれば、使いすぎは「月末に気づく」ものから「その日のうちに止まる」ものに変わります。
AI の利用料が膨らみやすい理由
- トークン課金はリクエスト量に比例する:定額ではないため、新機能のリリースや誤ったリトライ処理ひとつで、数時間のうちにコストが倍になることがあります。
- 自動化処理は誰も見ていない:Agent、バッチ、定期ジョブは夜間も動きます。終了条件のないループは呼び出しを続けます。
- キーの共用で持ち主が分からない:1 本のキーを複数プロジェクトで使うと、誰がいくら使ったか後から追えません。
- 何にでも最上位モデル:分類や抽出のような単純タスクまでフラッグシップモデルを使うと、単価の差がそのまま請求額の差になります。
トークンコスト管理のゴールは明確です。すべての利用に持ち主があり、すべての持ち主に上限があり、上限に達したらシステムが自動で止める。人が毎日ダッシュボードを見張る必要はありません。
ステップ 1:部門・メンバー・キーの 3 段階で上限を組む
HopBase の企業アカウントでは、企業オーナー(または企業管理者)がメンバーと部門を作成し、利用料はすべて企業残高から引き落とされます。上限は 3 段階です。
| 階層 | 何を制限するか | リセット | 向いている対象 |
|---|---|---|---|
| 部門予算 | 部門全体(所属メンバーと部門のキーを含む)の月間利用額 | 締め日に一斉リセット | 部門別に予算を組む経理部門 |
| メンバー予算 | メンバー 1 人の月間利用額 | 締め日に一斉リセット | エンジニア、運用担当などの個人利用 |
| キー上限 | キー 1 本あたりの利用上限 | 必要に応じて手動で変更 | Agent、バッチ、本番サービス |
先に押さえておきたいルールは 3 つです。
- メンバー予算の合計は部門予算を超えて設定できます。その場合は早い者勝ちで、部門予算を使い切ると部門内のすべてのリクエストが拒否されます。
- 部門責任者は自部門とメンバーの予算アラートを受け取り、自部門メンバーの管理(追加・編集・削除、予算設定、停止、グループ変更)ができます。ただし部門予算、締め日、責任者そのものは変更できず、企業オーナーまたは企業管理者が決めます。
- メンバーに紐づかないキーは部門に直接所属させられます。自動化サービスの利用も部門予算に計上されます。
ステップ 2:自動化サービスのキーに個別の上限を付ける
チームに AI 予算を設けるとき、いちばん漏れやすいのが「機械の利用」です。サービスごとに専用キーを発行し、作成時に次を設定します。
- 上限額:通常利用額の 1.5〜2 倍が目安。揺れは吸収しつつ、暴走は止めます。
- グループ:キーには 1〜10 個のグループを含められ、そのグループのモデルしか呼べません。バッチ用キーには軽量モデルのグループだけを付ければ、コードを間違えてもフラッグシップモデルは呼ばれません。
- 有効期限・IP リスト・同時実行数:一時的なジョブには期限を、本番サービスには送信元 IP の制限を、突発的なアクセスには同時実行数の上限を設定します。
キーの上限に達すると、次のリクエストは処理される前に 402 で返されます。生成してから課金されることはありません。コード側では 402 をリトライではなく「停止」の合図として扱ってください。
from openai import OpenAI, APIStatusError
client = OpenAI(api_key="sk-your-key", base_url="https://api.hop-base.com/v1")
def step(messages):
try:
return client.chat.completions.create(model="your-model", messages=messages)
except APIStatusError as e:
if e.status_code == 402: # insufficient_quota:上限に到達
raise SystemExit("キーの上限に到達。Agent ループを止めて担当者に通知")
raise
緊急時はコンソールからキーをいつでも無効化・失効でき、即時に反映されます。
ステップ 3:残高アラートの段階設定と締め日リセット
予算は「誰がいくら使えるか」、残高アラートは「会社にあといくら残っているか」を管理します。利用可能残高に対して「残り 2 週間分」「残り 1 週間分」「残り 3 日分」のように複数のしきい値を設定すると、下回るたびにメールとコンソール内通知が届きます。全リクエストが 402 になってから気づくのではなく、チャージの判断を前倒しで経理に渡せます。
締め日は社内の月次決算に合わせるのがおすすめです(毎月 1〜28 日から選択)。締め日になると部門とメンバーの月次予算が一斉にリセットされ、新しい月はゼロから計上されます。
ステップ 4:単価を下げる 2 つのレバー
- タスクに合わせてモデルを選ぶ:分類・書き換え・抽出は軽量モデル、難しい推論やコードはフラッグシップモデル。HopBase は各ベンダーの公式定価 × グループ割引で精算し、同じモデルでもグループによって割引が異なります。選び方はグループルーティングでコストを下げる方法を参照してください。
- プロンプトキャッシュを使う:長いシステムプロンプトや資料、会話履歴の固定部分がキャッシュにヒットすると、ベンダーのキャッシュ読み取り価格で課金され、通常の入力価格より大幅に安くなるのが一般的です。詳しくはプロンプトキャッシュの節約ガイドへ。
ステップ 5:週 15 分の振り返り
- 利用状況ページで直近 7 日を選び、CSV を書き出します(キー、メンバー、部門、キー作成者で絞り込み可能。1 ファイル最大 5 万行・最大 400 日)。
- 「実際の引き落とし額」で並べ替え、上位 5 本のキーと上位 5 モデルを先週と比べます。
- 数行を抜き出し「公式コスト × 割引 ÷ 為替レート = 引き落とし額」で検算します。失敗したリクエストは課金されません。
- 急増したキーは作成者に理由を確認し、必要なら上限を下げるか安いグループに移します。
- アラート履歴を確認します。同じ段階が 1 週間に何度も発火するなら、予算かチャージの頻度を見直します。
行ごとの照合と部門別配賦の詳しい手順はLLM API の使用量照合と部門別チャージバックにまとめています。
例:従業員 30 名の会社の予算表(数字はすべて仮定)
以下は配分の考え方を示すための架空の数字です。実在の顧客ではなく、HopBase の価格でもありません。
| 対象 | 例の上限(米ドル/月) | メモ |
|---|---|---|
| 開発部 | 1,800 | エンジニア 8 名 × 200(合計 1,600)、ほかにサービス用キー 2 本 |
| 開発部 · コードレビュー Agent のキー | 150 | 軽量モデルのグループのみ、CI の送信元 IP に限定 |
| サポート部 | 700 | メンバー 4 名 × 200(合計 800 > 700、早い者勝ち) |
| マーケティング部 | 300 | メンバー 2 名 × 150 |
| 残高アラート | 1,500 / 800 / 300 | 利用可能残高が各段階を下回るとメール |
ある日、コードレビュー Agent が解析エラーでループに陥ったとします。キーの上限 150 を使い切るまで呼び出しが続き、その後のリクエストはすべて 402 になります。開発部の他のメンバーは影響を受けず、部門責任者には予算アラートが届き、次の週次振り返りではこのキーが 1 位に並びます。損失は 150 までに抑えられます。
よくある質問
LLM API の予算管理は最低限なにをすればいい?
3 つです。部門とメンバーに月次予算を設定する、自動化サービスごとに上限付きの専用キーを発行する、企業残高に 2 段階以上のアラートを設定する。これで、壊れたスクリプト 1 本が月の予算を使い切ることはなくなります。
予算を使い切るとどうなる?先に課金される?
課金されません。リクエストは処理前に HTTP 402 insufficient_quota で拒否され、費用は発生しません。失敗したリクエストも課金対象外です。上限を引き上げるか、締め日のリセット後に再開できます。
チームメンバーの AI 利用枠は毎月自動でリセットできる?
できます。メンバー予算と部門予算は月次で、指定した締め日(毎月 1〜28 日)に一斉にリセットされます。キー上限はキー単位の上限で、必要に応じて手動で変更します。
この手順でチームの予算を組むなら、HopBase の企業アカウントを作成してください。部門作成、予算配分、キー発行まで数分で終わります。