総額を「回数×1回あたりの費用」に分解する
昨日も今日も1,000回呼び出しているのに、利用額が30ドルから55ドルへ増えた。この場合、原因はアクセス数ではなく1回の処理内容にあります。最初に、総入力トークン÷呼び出し回数と総出力トークン÷成功回数を出し、前週の同曜日と比較してください。
平均だけでなく95パーセンタイルも見ると、一部の極端に長い会話や文書が費用を押し上げているのか、全リクエストが少しずつ長くなったのかを分けられます。
平均値が同じでも分布は違います。中央値2,000トークン、95パーセンタイル20,000トークンなら、全処理を一律に短くするより、上位5%を生む入力経路を特定する方が品質への影響を抑えられます。記事種別、会話ターン数、添付有無で分け、どの群から長い処理が出ているかを確認します。
入力側で起きやすいのは、履歴と検索結果の肥大化
会話履歴を毎回すべて付ける実装では、質問が進むほど入力が雪だるま式に増えます。RAGでも、検索件数を増やした、本文全体を渡すようになった、重複チャンクを除かなくなった、といった小さな変更が1回あたりのトークンを押し上げます。
調査のためにプロンプト本文や顧客文書を丸ごとログへ残す必要はありません。用途名、入力トークン、検索チャンク数、履歴ターン数、添付種別といったメタデータだけでも肥大箇所は追えます。原因分析のためのログが新たな個人情報リスクを作らないよう、保存項目と保存期間を先に限定します。
- 会話履歴の保持ターン数が増えていないか
- システム指示や共通テンプレートが重複していないか
- 検索結果の件数・1件の文字数・重複率が変わっていないか
- 添付本文やHTMLを整形せず丸ごと送っていないか
- モデルまたはプロバイダーの価格が変わっていないか
出力側は、成功率を落とさず短くできるかを見る
出力上限を一律に半分にすると、回答が途中で切れて再質問が増え、かえって総費用が上がることがあります。目的別に必要な長さを決め、FAQなら結論と手順、商品説明なら指定文字数、要約なら元文書比など、完成条件と一緒に上限を置きます。
短縮前後で、人が修正した割合、再生成率、問い合わせ解決率を比べてください。トークンが減っても業務が増えれば、最適化ではありません。
たとえば出力上限を1,000から500トークンへ下げて1回の費用が30%減っても、再生成率が10%から45%へ増えれば総費用と離脱率が悪化します。合格条件は『1回答が安い』ではなく、『解決した質問1件あたりの費用が下がり、解決率と有人修正時間が悪化しない』ことです。
変更案は、節約額と品質リスクで並べる
まず重複した指示と不要なHTMLを除く、次に検索件数を調整する、その後に会話履歴や出力上限を触る、という順なら品質への影響を小さくできます。各案について、削減できる入力・出力トークン、失敗率、担当者の修正時間を同じ期間で記録します。
- 影響小:重複プロンプト、タグ、空白、不要メタデータの除去
- 影響中:検索チャンク数、履歴保持数、モデルの切り替え
- 影響大:回答上限の大幅短縮、機能そのものの停止
件数だけでなく、推定費用の平常値を持つ
改善後は、正常に完了した処理1件あたりの入力トークン・出力トークン・推定費用を基準値として残します。AI Cost Guardrails-CNXTで確認できる値はあくまで推定であり、最終請求はプロバイダー側が基準です。それでも、標準のAI Clientを通るリクエストの傾きをWordPress内で早く知る補助線にはなります。要因分解シートには、トークン削減量と並べて回答完了率、再生成率、有人修正時間も載せます。安くなった代わりに顧客や編集者の作業が増えていないことを確認して、初めて改善完了とします。
「呼び出し回数は同じなのに、トークン費用だけ増える5つの原因」で整理した判断を「トークン費用上昇の要因分解シート」だけで終わらせないでください。AI Cost Guardrails-CNXTを無料でダウンロードし、次の費用急増に備えてBasic hard-stop protectionを設定しましょう。