◉GEMINI LABEN
●TTS — Gemini 3.8 Flash TTS と Flash-Lite TTS が GA(9/22)。声の複製に対応するのは Flash だけで、Lite に渡すと 400 が返ります●2.5 — 2.5 系モデルのアクセスは、過去に利用実績のあるユーザーに限定されました(9/18)。廃止ではなく、新規は 3.5 Flash-Lite か 3.8 Flash へ●9/30 — gemini-omni-flash-preview の提供終了まで残り2日、10/2 には gemini-2.5-flash-image も停止。後者の実務上の差し替え先は gemini-3.1-flash-image です●AUTH — 「Workspace の Enterprise アカウントだけ Gemini CLI の認証が通らない」という報告が続いています。個人アカウントとの切り分けが焦点●NEW — 3.8 Flash-Lite TTS への置き換えで、案内音声の声を選び直した記録●429 — 新規プロジェクトが Free tier 表示なのに limit: 0 で 429 が返る。最初の1時間で確かめる点を整理しています●TTS — Gemini 3.8 Flash TTS と Flash-Lite TTS が GA(9/22)。声の複製に対応するのは Flash だけで、Lite に渡すと 400 が返ります●2.5 — 2.5 系モデルのアクセスは、過去に利用実績のあるユーザーに限定されました(9/18)。廃止ではなく、新規は 3.5 Flash-Lite か 3.8 Flash へ●9/30 — gemini-omni-flash-preview の提供終了まで残り2日、10/2 には gemini-2.5-flash-image も停止。後者の実務上の差し替え先は gemini-3.1-flash-image です●AUTH — 「Workspace の Enterprise アカウントだけ Gemini CLI の認証が通らない」という報告が続いています。個人アカウントとの切り分けが焦点●NEW — 3.8 Flash-Lite TTS への置き換えで、案内音声の声を選び直した記録●429 — 新規プロジェクトが Free tier 表示なのに limit: 0 で 429 が返る。最初の1時間で確かめる点を整理しています
記事一覧/API / SDK
◈ API / SDK/2026-06-18上級

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

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

Gemini API242countTokens2コスト管理16バッチ処理9本番運用49

✦ プレミアム記事

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

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

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

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

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

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

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

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

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

✦

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

この記事の続きを読む

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

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

この記事を購入する

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

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

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

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

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

関連記事

◈ API / SDK2026-06-26
Gemini API の月額上限に当てた瞬間、有料ユーザーまで止まる — Project Spend Caps の影響範囲をプロジェクト分割で閉じ込める
Project Spend Caps はプロジェクト全体を一度に止めます。無料ユーザーの暴走が有料ユーザーを巻き込まないよう、上限の影響範囲をティア別プロジェクトで分離し、約10分の遅延を埋めるソフト予算ゲートを実装する設計メモです。
◈ API / SDK2026-09-08
値上げの日をまたぐ費用の見積もりを、はじめから二段で書く
Gemini Flash の導入価格は2026年12月31日で終わり、2027年1月1日から標準価格に切り替わります。世代を据え置いても避けられないこの日を、はじめての費用見積もりでどう扱うか。動くコードとともに書き残します。
◈ API / SDK2026-07-27
消えないプロンプト資産をたたむ — 静的参照だけでは見えない稼働経路を炙り出す退役台帳
一本化したはずの旧プロンプトがまだ毎日呼ばれている——そんな見えない稼働経路を炙り出す退役台帳の設計です。静的参照、フラグ既定値、観測窓、モデル停止日、キャッシュ実効率の5つを突き合わせる判定基準と、実運用で得た設計の勘所を実行結果とともにまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます