GEMINI LABEN
SUNSET — imagen-4.0 系の停止まで残り5日です。8月17日に imagen-4.0-generate-001 ほか3モデルが止まりますSAMPLING — 7月21日から temperature・top_p・top_k が非推奨になっています。停止日は示されていませんが、実装を点検しておく段階ですAPI — Interactions API が GA になり、最新の機能とモデルを使う際はこちらを推奨すると案内されていますROBOTICS — gemini-robotics-er-1.6-preview の停止は8月31日です。後継の ER 2 は7月30日から公開プレビューになっていますENTERPRISE — サードパーティの ID プロバイダを使う組織向けに、Gemini Enterprise のモバイルアプリが GA になりましたRENAME — NotebookLM Enterprise は Gemini Notebook Enterprise へ改称されています。資料を探すときの語も変わりますSUNSET — imagen-4.0 系の停止まで残り5日です。8月17日に imagen-4.0-generate-001 ほか3モデルが止まりますSAMPLING — 7月21日から temperature・top_p・top_k が非推奨になっています。停止日は示されていませんが、実装を点検しておく段階ですAPI — Interactions API が GA になり、最新の機能とモデルを使う際はこちらを推奨すると案内されていますROBOTICS — gemini-robotics-er-1.6-preview の停止は8月31日です。後継の ER 2 は7月30日から公開プレビューになっていますENTERPRISE — サードパーティの ID プロバイダを使う組織向けに、Gemini Enterprise のモバイルアプリが GA になりましたRENAME — NotebookLM Enterprise は Gemini Notebook Enterprise へ改称されています。資料を探すときの語も変わります
記事一覧/API / SDK
API / SDK/2026-06-18上級

countTokens でバッチ投入前にコスト超過を止める — 既定モデルが変わっても崩れない予算ゲートの設計

夜間バッチが想定外に高くつく原因は、投入後にしかコストが分からないことです。countTokens を起点に、思考トークンまで織り込んだ予算ゲートを設計し、既定モデルが入れ替わっても見積もりが崩れない運用に立て直します。

Gemini API207countTokens2コスト管理15バッチ処理7本番運用49

プレミアム記事

既定モデルが入れ替わった日に、月次コストの見積もりが静かにずれた

私は個人開発のかたわら、壁紙アプリのレビューを夜間にまとめて分類するバッチと、AdMob の日次レポートを要約するバッチを Gemini API で回しています。どちらも件数が読めるので、月初に「だいたい月いくら」と当たりをつけ、その範囲に収まる前提で運用していました。

ところが先日、既定モデルが新しい世代の Flash に切り替わったタイミングで、その当たりが静かに外れました。件数も入力の中身も変えていないのに、月の半ばで想定の予算枠を一日分ほど超えていたのです。ログを追って分かったのは、出力テキストの長さは変わっていないのに、課金対象のトークンが増えていたことでした。原因は思考(thinking)トークンです。私の見積もりは「入力トークン+見えている出力トークン」だけを数えていたため、モデルが内部で消費する思考トークンをまるごと取りこぼしていました。

この経験で痛感したのは、コストを「投入してから請求で知る」運用の脆さです。バッチは一度走り出すと数千件を一気に処理します。途中で気づいても、止める頃には大半が課金済みです。そこで、投入の直前にコストを見積もり、予算を超えるなら走らせない「予算ゲート」を入口に置く設計へ作り変えました。私自身が実際に作り直した設計を、そのまま再現できる形で以下に残します。

なぜ「投入後に気づく」超過が起きるのか

バッチのコスト超過には、個人開発者が踏みやすい型がいくつかあります。

ひとつは、入力サイズのばらつきです。レビュー分類のように1件あたりの入力が短い処理でも、たまに極端に長い本文が混ざると、その数件が全体のトークンを押し上げます。平均で見積もると、こうした裾の長い分布を取りこぼします。

もうひとつは、出力トークンの過小評価です。要約や分類の出力は短く見えますが、構造化出力で JSON スキーマを返させると、フィールド名や区切り記号がトークンを食います。「見た目の文章量」と「課金トークン」は一致しません。

そして最大の盲点が、思考トークンです。新しい世代のモデルは応答前に内部で推論を行い、その分のトークンも出力側として課金されます。可視テキストだけを数える静的な試算は、ここを構造的に取りこぼします。私の環境では、分類タスクで出力課金の3割前後が思考トークンでした。既定モデルが入れ替わると、この比率がそのまま見積もりの誤差として表面化します。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
countTokens を起点に、バッチ投入前へ projected_cost を算出して予算超過を止めるゲートのPythonコード
Gemini 3.5 Flash の思考トークンを見積もりへ織り込み、出力だけ数える静的試算の30%前後の取りこぼしを補正する手順
既定モデルが入れ替わっても校正係数1つで追従させる、運用に乗せやすい設計判断
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Gemini Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

API / SDK2026-06-26
Gemini API の月額上限に当てた瞬間、有料ユーザーまで止まる — Project Spend Caps の影響範囲をプロジェクト分割で閉じ込める
Project Spend Caps はプロジェクト全体を一度に止めます。無料ユーザーの暴走が有料ユーザーを巻き込まないよう、上限の影響範囲をティア別プロジェクトで分離し、約10分の遅延を埋めるソフト予算ゲートを実装する設計メモです。
API / SDK2026-07-27
消えないプロンプト資産をたたむ — 静的参照だけでは見えない稼働経路を炙り出す退役台帳
一本化したはずの旧プロンプトがまだ毎日呼ばれている——そんな見えない稼働経路を炙り出す退役台帳の設計です。静的参照、フラグ既定値、観測窓、モデル停止日、キャッシュ実効率の5つを突き合わせる判定基準と、実運用で得た設計の勘所を実行結果とともにまとめました。
API / SDK2026-07-13
structured output の任意フィールドが null・空文字・キー欠落で三様にぶれる — 正規化ゲートで一つの表現に畳む
Gemini の structured output で任意フィールドが null・空文字・キー欠落の三態にぶれ、下流が壊れる問題を、responseSchema の nullable 宣言と出力後の正規化ゲートで一つの表現に畳む実装として整理します。個人開発の夜間バッチでの実測つきです。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →