GEMINI LABEN
ROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応していますROBOTICS — 8月31日に停止した ER 1.6 preview には後継があります。Gemini Robotics ER 2 が公開プレビュー中で、通常版とストリーミング版の2種類が提供されていますVIDEO — ER 2 の成功・失敗判定は静止画ではなく生の映像フィード上で動きます。こぼれ・滑り・位置ずれのような、実行の途中で起きる失敗を捉えられる設計ですDEADLINE — 次の期限は9月30日、gemini-omni-flash-preview の廃止です。移行先は8月27日に GA になった gemini-omni-1.1-flash で、残り4週間を切りましたAPIKEY — 残りの標準 API キーは、制限付きのものも含めて9月中に全面停止します。移行先は Google Cloud サービスアカウントに紐付く auth キー形式ですPRICE — Gemini 3.7 Flash の導入価格 $0.75/$3.75 per 1M は12月31日までです。2027年1月1日から $1.50/$7.50 になるため、年を跨ぐ見積もりは2本立てが要りますAUDIO — Gemini 3.5 Transcribe は85言語以上の言語検出、話者ダイアライゼーション、単語単位タイムスタンプ、最大1,000語のカスタム語彙バイアスに対応しています
記事一覧/API / SDK
API / SDK/2026-05-23中級

Gemini 2.0 Flash の廃止スケジュールに個人開発を振り回されないための運用設計 — 5 月時点のリスク分散ノート

Gemini 2.0 Flash の廃止に向けて個人開発の本番ジョブを設計し直した運用ノート。プロバイダ抽象・新旧モデルの差分バッチ・フォールバック率の計測・コスト試算、そして廃止日を過ぎた 8 月時点の答え合わせまでを実測値つきで残します。

gemini-api285deprecation5個人開発111production105

プレミアム記事

5 月の中旬、Gemini 2.0 Flash の廃止スケジュールが 6 月に近づいているのを意識し始めて、自分が使っている個人開発のジョブを 1 件ずつ点検することにしました。年単位で動いている運用ジョブと、最近書いたばかりの実験ジョブが混在しており、廃止が来てから慌てて差し替えると確実にどこかが壊れます。

対象は 2 種類のバッチです。壁紙画像のメタデータを生成するジョブと、App Store の口コミを日次で要約するジョブ。どちらも人の目が毎日入るわけではないので、静かに品質が落ちると気付くのが遅れます。以下は、その 2 本を廃止スケジュールから切り離すためにやったことの記録です。

廃止アナウンスを「6 月に来るイベント」として扱わない

私が最初に変えたのは、廃止アナウンスを「6 月のイベント」として扱う発想を捨てたことです。アナウンスは確かに 6 月のどこかに区切りがありますが、本当に向き合うべきは「廃止前後でレスポンスのクセが変わってジョブの精度がぶれる」ほうです。

私の経験では、Gemini はモデル世代が変わると次のような部分でクセが移ります。

  • 日本語の敬体/常体のゆらぎ
  • JSON 出力時の null の扱い(フィールド省略か明示 null か)
  • 長文要約での句読点配分
  • ツール呼び出しの引数フォーマットの微差

これらは API のレスポンスコードでは検出できないので、廃止日だけ見ていると本番運用の中で静かに壊れます。しかも壊れ方が例外ではなく品質の劣化なので、監視のアラートも鳴りません。カレンダーではなく差分を見る。ここが出発点でした。

新旧モデルの差分を機械的に取る比較バッチ

「クセが変わる」と書いても、人間の目で 2 つの出力を並べて見比べるのは 10 件が限界です。私は 40 行ほどの比較バッチを書いて、代表的な入力 30 件を毎晩両モデルに流し、構造の差分だけを機械的に拾うようにしました。

import json
from difflib import SequenceMatcher
from google import genai
 
client = genai.Client(api_key=API_KEY)
OLD, NEW = "gemini-2.0-flash", "gemini-2.5-flash"
 
def run(model: str, prompt: str) -> str:
    res = client.models.generate_content(
        model=model,
        contents=prompt,
        config={"response_mime_type": "application/json", "temperature": 0},
    )
    return res.text
 
def shape(payload: str) -> dict:
    try:
        obj = json.loads(payload)
    except json.JSONDecodeError:
        return {"parsable": False, "keys": [], "empty": []}
    return {
        "parsable": True,
        "keys": sorted(obj.keys()),
        "empty": sorted(k for k, v in obj.items() if v in ([], "", None)),
        "chars": len(payload),
    }
 
def compare(prompt: str) -> dict:
    a, b = run(OLD, prompt), run(NEW, prompt)
    sa, sb = shape(a), shape(b)
    return {
        "dropped_keys": sorted(set(sa["keys"]) - set(sb["keys"])),
        "added_keys": sorted(set(sb["keys"]) - set(sa["keys"])),
        "similarity": round(SequenceMatcher(None, a, b).ratio(), 3),
        "old": sa,
        "new": sb,
    }

temperature を 0 に固定しているのは、モデル差ではなくサンプリングのゆらぎを拾ってしまうのを避けるためです。ここを既定値のままにすると、同じモデル同士でも similarity が 0.7 前後まで落ちて、何を見ているのか分からなくなります。

私が閾値にしたのは 2 つだけです。dropped_keys が空でなければその日のうちに parse 側を確認する。similarity が 0.80 を下回った入力は、翌朝に人間の目で読む。この 2 つに絞ったことで、毎晩の確認が 3 分で終わる作業になりました。差分バッチは精緻に作り込むほど見なくなるので、判断が 2 つで済む形に削ったのが結果的に良かったと感じています。

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

この記事の続きを読む

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

この記事で得られること
廃止前に潰しておくべき 4 つのチェックポイントと、フォールバック付きプロバイダ抽象の最小実装
新旧モデルへ同じ入力を流して構造差分を取る 40 行の比較バッチと、日次フォールバック率の計測コード
8 月追記の答え合わせ — 実測コストのずれと、切替日にだけ起きたコンテキストキャッシュの再加熱
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-07-05
使っているモデルの廃止予告だけを拾う — url-context に公式チェンジログを読ませる仕組み
画像モデルの停止を公開3日前に知って肝を冷やしました。url-context に公式チェンジログを直接読ませ、自分が実際に使っているモデルの廃止予告だけを構造化して差分通知する仕組みを、そのまま動く Python と運用で削った過検知の調整まで含めて組み立てます。
API / SDK2026-06-25
プレビュー画像モデル停止の朝に学んだこと — Gemini 画像モデル GA 移行と廃止に強いパイプライン設計
gemini-3.1-flash-image-preview と gemini-3-pro-image-preview の停止を機に、GA 版への移行手順と、廃止日に振り回されない画像生成パイプラインの設計をコード付きで整理します。動画から画像を生成するサムネイル自動化も扱います。
API / SDK2026-08-23
アプリに載せる AI 機能を、実行時呼び出しから配布前の一括処理に寄せました
アプリに Gemini を組み込むとき、実行時に呼ぶか配布前に呼び終えるかで呼び出し回数の増え方が変わります。素材数に比例させる設計へ切り替えた判断基準と、冪等な一括処理の実装をまとめました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →