APIコスト計算機:Tokens、Cache、リクエスト数
計算式とPython計算機を使い、input、output、cache write、cache readの費用を3つのシナリオで見積もります。
APIコスト計算機は、各利用カテゴリに現在の料金と呼び出し数を掛けます。input、output、cache write、cache readは分けて計算し、すべての料金を同じ通貨の100万tokens当たりにそろえてください。不明な値を黙ってゼロに置き換えてはいけません。まず基準となるリクエストを定義し、その後に呼び出し数とcache hit rateを加えます。
計算機に必要なデータ
テキストAPIでは、次の7つを準備します。
計算結果を実際の呼び出しと照合したいですか? BetterTokenアカウントとAPI Keyを作成し、価格ページから現在の料金を取り、管理された1件のリクエストを実行します。次にDashboardでモデル、status、input、output、該当するcache token、消費を比較すれば、修正すべき前提が分かります。
Cachingはモデルとプロトコルで異なります。入力前にBetterToken API reference、OpenAI Prompt Caching、Anthropic Prompt Cachingを確認してください。
共通の計算式
記号:
1回の呼び出しの費用:
Cextraは、web search、画像、audio、storage、toolsなど別途課金される単位です。なければゼロです。追加料金があるか不明なら、未知のままドキュメントを確認してください。ゼロにすると誤った精度になります。
手計算で最も多いミスは100万で割り忘れることです。料金が100万tokens当たりなら、まずtokensを1_000_000で割り、それから料金を掛けます。
コピー可能なPython計算機
このスクリプトには料金もAPI Keyも含まれません。入力値を尋ね、1つのシナリオを計算します。結果の通貨は入力した料金と同じです。
api_cost_calculator.pyとして保存し、実行します。
現在のEndpointがカテゴリを分離していない場合、cache write/read欄に実際のtokensを入れないでください。まずusageを相互排他的なグループへ変換し、同じtokenを二重計上しないようにします。
Cache hit rateを考慮する
連続した問い合わせでは、cache hitとmissを分けると便利です。
結果:
計画ではNhitsを切り捨て、Nmissを切り上げます。実際のログでは各種類の実数を使ってください。
1つの数字ではなく3つのシナリオ
基本シナリオ
最近のタスクのinputとoutputの中央値、予想呼び出し数、観測済みのcache hit rateを使います。履歴がなければ、値を仮定として明記します。
好条件シナリオ
安定した長いprefix、高いcache hit rate、限定的なoutput、再発するエラーなしです。下限は示せますが、予算の約束にしてはいけません。
最悪ケース
cache miss、長いoutput、1回の制限付きretry、別途課金されるtoolsを加えます。全パラメーターを任意に増やさず、各仮定を実際のプロセスリスクに対応させます。
結果を簡単なシートに記録します。
Agent workflowの評価
画面上のAgent実行1回が、常にモデル呼び出し1回とは限りません。内部にplanning、tool call、tool result、retry、最終応答が含まれます。したがって:
- 安全なテストタスクを1つ実行する。
- 実際のAPI呼び出しを数える。
- モデルとusageカテゴリでグループ化する。
- 各グループへ式を適用する。
- toolまたはsearchの単位を別に追加する。
- 金額をDashboardと比較する。
リクエストの長さが大きく異なるなら、任意の1呼び出しの費用にユーザー数を掛けないでください。短い質問、ファイルreview、Agentタスクなど、複数のタスククラスで計算します。
予測を実測と照合する
テスト後に次を照合します。
- 時刻とrequest status;
- Model ID;
- inputとoutput tokens;
- cacheカテゴリ;
- retriesの回数;
- 実際の消費;
- 通貨と料金の日付。
差は通常、料金の誤り、cached tokensの二重計上、隠れたretry、追加の課金対象トランザクションのいずれかを示します。BetterTokenでは現在の価格ページを使い、実際のDashboard記録を確認してください。古い画像や記事の価格を転記しないでください。
計算機の限界
式が対象にするのは既知のカテゴリだけです。料金変更、将来の価格、dynamic routing、Agentステップ数は予測しません。画像、audio、web search、storage、一部のtoolsには固有の単位があります。
また応答品質も評価しません。手作業でやり直す必要がある安価な呼び出しは、タスク全体の費用を増やす可能性があります。これは係数をでっち上げず、別の実験で測定します。
FAQ
Cacheを使わない場合は何を入力しますか?
Endpointが実際にcacheを使わなかった場合だけ、cache writeとcache readをゼロにします。不明なら先にusageを確認してください。
結果の通貨は何ですか?
結果は入力した料金とextra_per_callの通貨です。明示的な為替レートと日付なしにドルとルーブルを混在させないでください。
Cached tokensはinput tokensに含まれますか?
特定APIのusage形式によります。計算前にドキュメントを確認し、二重計上を避けるためフィールドを相互排他的なカテゴリに変換します。
月額費用はどう計算しますか?
まず1つのタスククラスの費用を計算し、実際または予測の呼び出し数を掛けます。モデルとタスクが異なる場合は別行にし、合計します。
実際の請求が見積もりより高いのはなぜですか?
output、retries、Agentステップ、cache miss、追加toolsを確認してください。合計だけでなく、各usage行をDashboardに対応付けます。