GEMINI LABEN
MEMORY — Memory Bank の Memory Profiles が GA になりました。静的スキーマの構造化プロファイルにより、セッション中の検索を挟まずに情報へ到達できますSCOPE — プロファイルは取り込み時のスコープごとに分離され、スキーマとスコープの組み合わせに対して単一のプロファイルが維持されますINGEST — IngestEvents API が GA になり、イベントのストリーミング・メモリのリビジョン管理・メタデータの付与が扱えるようになりましたAUDIO — gemini-3.1-flash-tts-preview が streamGenerateContent 経由のストリーミングに対応し、読み上げ開始までの待ち時間が縮みましたCLASSROOM — 8月10日から、既にアクセス権を付与されている K-12 と高等教育の全年齢の学生が Gemini in Classroom を利用できるようになりますSUNSET — 停止日が迫っています。8月17日に画像生成モデル、20日に Grok 4.1 ファミリー、31日に gemini-robotics-er-1.6-preview ですMEMORY — Memory Bank の Memory Profiles が GA になりました。静的スキーマの構造化プロファイルにより、セッション中の検索を挟まずに情報へ到達できますSCOPE — プロファイルは取り込み時のスコープごとに分離され、スキーマとスコープの組み合わせに対して単一のプロファイルが維持されますINGEST — IngestEvents API が GA になり、イベントのストリーミング・メモリのリビジョン管理・メタデータの付与が扱えるようになりましたAUDIO — gemini-3.1-flash-tts-preview が streamGenerateContent 経由のストリーミングに対応し、読み上げ開始までの待ち時間が縮みましたCLASSROOM — 8月10日から、既にアクセス権を付与されている K-12 と高等教育の全年齢の学生が Gemini in Classroom を利用できるようになりますSUNSET — 停止日が迫っています。8月17日に画像生成モデル、20日に Grok 4.1 ファミリー、31日に gemini-robotics-er-1.6-preview です
記事一覧/開発ツール
開発ツール/2026-06-21中級

6/25 で止まる画像プレビューモデルを、コードベースから漏れなく洗い出す

gemini-3.1-flash-image-preview と gemini-3-pro-image-preview が 6/25 に停止します。普段動かない分岐やバッチに埋もれた参照を停止前に洗い出すための、依存監査の手順を具体的にまとめました。

Gemini76API11モデル移行8個人開発95運用8

プレビューモデルの停止で本当に怖いのは、よく使う経路ではなく、めったに動かない経路です。gemini-3.1-flash-image-previewgemini-3-pro-image-preview が 6/25 で止まります。日中の主要な生成で使っていれば嫌でも気づきますが、月初だけ走る集計バッチや、上位モデルが詰まったときだけ落ちるフォールバック分岐に書いてあると、停止の瞬間まで気づけません。

私自身、個人開発でアプリの画像処理を回していて、フォールバック側に古いモデル名が残っていたことに後から気づいた経験があります。普段は上位モデルで通るので、フォールバックが発火する稀な日にだけ静かに失敗していました。今回は、停止前にこうした取りこぼしを残さないための依存監査を、洗い出しから移行後の確認まで順に整理します。

「使っている場所」は一カ所ではない

モデル名は、思っているより多くの場所に散らばります。監査を始める前に、探すべき場所を洗い出しておくと漏れが減ります。

場所見落としやすい例
アプリのコードフォールバック分岐・リトライ時の別モデル指定
設定ファイル環境別の YAML/JSON に直書きされたモデル名
環境変数デプロイ環境にだけ設定された値
保存済みプロンプトDB やファイルに記録されたジョブ定義
バッチ・スケジュール月次・週次でしか起動しないジョブ

この五カ所のうち、コードだけを見て安心してしまうのが典型的な失敗です。設定ファイルや環境変数に直書きされていると、コード本体には文字列が出てきません。私は監査のとき、コードと同じ重みで設定と環境変数を見るようにしています。

まずは機械的に全件拾う

最初の一手は、対象のモデル名をリポジトリ全体から拾うことです。停止対象は二つなので、両方を一度に検索します。コメントや古いドキュメントに残っているだけの「死んだ参照」も、いったん全部出してから仕分けします。

# 停止対象モデルへの参照を、コードと設定からまとめて洗い出す
grep -rnE "gemini-3\.1-flash-image-preview|gemini-3-pro-image-preview" \
  --include="*.py" --include="*.ts" --include="*.js" \
  --include="*.json" --include="*.yaml" --include="*.yml" \
  --include="*.env*" . \
  | tee /tmp/preview_model_hits.txt
 
echo "--- ヒット件数 ---"
wc -l < /tmp/preview_model_hits.txt

ヒットが多くても慌てる必要はありません。重要なのは件数ではなく、それぞれが「いま動く経路か」です。次の仕分けで、対応が要る参照だけに絞り込みます。

ヒットを三つに仕分ける

洗い出した参照を、対応の緊急度で三つに分けます。仕分けの基準を先に決めておくと、判断が速くなります。

  • 稼働中: 現在のリクエストで実際に呼ばれている。最優先で差し替える
  • フォールバック/稀: 普段は通らないが、特定条件で発火する。ここが最も見落とされる。同じく差し替える
  • 死んだ参照: コメント・旧ドキュメント・到達しないコード。差し替え不要だが、混乱を避けるため削除する

稼働中とフォールバックは必ず差し替えます。私の経験では、停止事故のほとんどはフォールバック分岐で起きます。「上位モデルが動いているから大丈夫」という油断が、稀にしか走らない経路の点検を後回しにさせるからです。死んだ参照は機能には影響しませんが、次に誰かが監査するとき再びノイズになるので、この機会に消しておくと後が楽になります。

後継への差し替えと、設定への一本化

差し替え先は、停止対象に対応する後継の画像生成モデルです。ここで一つだけ運用上の工夫をお勧めします。差し替えるついでに、モデル名をコードへ直書きするのをやめて、一箇所の設定に集約することです。

# model_config.py — モデル名を一箇所に集約し、直書きを排除する
# 後継モデルへの差し替えは、今後この一行を変えるだけで済む
IMAGE_MODEL = os.environ.get("GEMINI_IMAGE_MODEL", "gemini-3-pro-image")
 
def generate_image(prompt: str):
    return client.models.generate_content(
        model=IMAGE_MODEL,   # 各呼び出しでモデル名を直書きしない
        contents=prompt,
    )

集約しておくと、次にモデルが移行するとき、監査でリポジトリ中を探し回る作業そのものが要らなくなります。今回の停止対応を、将来の移行コストを下げる機会として使うと、同じ作業を繰り返さずに済みます。私は Dolice Labs の個人開発でモデルを複数使い分けているので、この一本化は移行のたびに効いてきました。

差し替え後に、稀な経路を意図的に動かす

最後が一番大切です。差し替えたら、フォールバックや月次バッチのような稀な経路を、本番停止を待たずに意図的に発火させて確認します。差し替えたつもりで別の箇所が残っていた、というのを停止前に自分で見つけるためです。

# 差し替え漏れがないか、停止対象が一件も残っていないか最終確認する
if grep -rqE "gemini-3\.1-flash-image-preview|gemini-3-pro-image-preview" \
  --include="*.py" --include="*.ts" --include="*.js" \
  --include="*.json" --include="*.yaml" --include="*.yml" .; then
  echo "⚠️ まだ停止対象モデルへの参照が残っています"
else
  echo "✅ 停止対象モデルへの参照はゼロです"
fi

フォールバック分岐は、条件を満たさないと普段は動かないので、テストでは上位モデルをわざと失敗させて経路を通します。月次バッチは、本番の起動を待たずに手元で一度実行します。停止日に「動くはず」を確かめるのではなく、停止前に「動く」を確認しておく。この差が、稀な経路での静かな失敗を防ぎます。

期限のあるモデル停止は、慌てると稼働中の経路だけを直して終わりにしがちです。けれども取りこぼしは、いつも目の届きにくい経路に残ります。停止の前に、まずリポジトリ全体で対象モデル名を一度検索してみてください。ヒットを稼働中・稀・死んだ参照に分けるところから始めれば、6/25 を静かに迎えられるはずです。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

開発ツール2026-06-24
ローカルGemma 4を日々の作業に組み込む — Ollama APIと応答速度の実践メモ
対話で動かせるようになったローカルGemma 4を、実際の作業に組み込むところまで。OllamaのローカルAPIをスクリプトから叩く方法、応答速度を体感で上げる工夫、クラウドのGemini APIへ自動でフォールバックする二段構えの実装まで、コード込みで解説します。
開発ツール2026-07-18
難読化されたスタックトレースを Gemini に渡していました — retrace を前段に置くまで、診断はもっともらしく外れ続けます
release ビルドのスタックトレースは R8 で名前が潰れています。それをそのまま Gemini に渡すと、診断は落ち着いた文体のまま外れます。retrace を前段に置き、mapping を versionCode で突合し、復元できないときは断定させない。42件で数え直した記録です。
開発ツール2026-07-16
生成ログを丸ごと残すのをやめました — 3層の保持設計とプロンプト指紋で追跡性だけを残す
障害調査のために Gemini API のリクエストとレスポンスを丸ごと保存していました。3層の保持設計とプロンプト指紋に切り替え、本文を消しても原因を辿れる状態を保った記録です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →