GEMINI LABEN
API — temperature・top_p・top_k の非推奨は、エラーではなく無言の no-op です。リクエストは 200 で通り、値だけが受け取られたうえで無視されますAUDIT — 実行時に検知する手段がないため、コードベースを静的に検索して指定を洗い出すしかありません。監査の方法が開発者フォーラムで議論になっていますCHECK — 同じプロンプトを temperature 0 と 1 で複数回投げ、出力の分散が変わらないことを実測すれば、効いていないことを自分の目で確認できますMODELS — Gemini 3.7 Flash は DeepSWE v1.1 で 65.3%、FrontierCode 1.1 Main で 43.6% を記録しています。導入価格は2026年12月31日までですSEARCH — File Search が gemini-embedding-2 によるマルチモーダル検索に対応しました。画像を書き起こさずに、そのまま埋め込んで検索できますDEPRECATION — gemini-robotics-er-1.6-preview が8月31日に停止します。残り4日で、移行先は7月30日から公開プレビューの ER 2 系ですAPI — temperature・top_p・top_k の非推奨は、エラーではなく無言の no-op です。リクエストは 200 で通り、値だけが受け取られたうえで無視されますAUDIT — 実行時に検知する手段がないため、コードベースを静的に検索して指定を洗い出すしかありません。監査の方法が開発者フォーラムで議論になっていますCHECK — 同じプロンプトを temperature 0 と 1 で複数回投げ、出力の分散が変わらないことを実測すれば、効いていないことを自分の目で確認できますMODELS — Gemini 3.7 Flash は DeepSWE v1.1 で 65.3%、FrontierCode 1.1 Main で 43.6% を記録しています。導入価格は2026年12月31日までですSEARCH — File Search が gemini-embedding-2 によるマルチモーダル検索に対応しました。画像を書き起こさずに、そのまま埋め込んで検索できますDEPRECATION — gemini-robotics-er-1.6-preview が8月31日に停止します。残り4日で、移行先は7月30日から公開プレビューの ER 2 系です
記事一覧/API / SDK
API / SDK/2026-08-27中級

temperature が効いているかを測るより渡した値を記録する方が先です

非推奨になったサンプリングパラメータは 200 が返るまま無視されます。grep と AST が取りこぼした箇所を実行時に拾い、設定の組み立て元まで記録して CI の合否に変えるまでを、実際に動かした結果とともにまとめます。

Gemini API220temperature4非推奨2静的解析2CI7個人開発108

プレミアム記事

更新履歴の一行を読んで、手元のコードを grep したのが最初でした。temperature・top_p・top_k が非推奨になった、という記載です。

3 箇所。思ったより少ない、と安心しかけました。

その安心が間違いだったと気づいたのは、実際に送られているリクエストを覗いたときです。5 箇所ありました。

厄介なのは、この種の変更がエラーとして現れないことです。非推奨のパラメータを付けたリクエストは 200 で返ってきます。値は受け取られたうえで、無視されます。温度を 0 に固定したつもりのコードが、何も固定しないまま動き続けます。例外もログも出ません。

個人開発で使っているツールチェーンを一通り調べたとき、誤った設定キーへの反応がきれいに三層に分かれたことがあります。TypeScript のコンパイラと ESLint は落ちます。wrangler は警告だけ出して先へ進みます。npm と vitest は完全に黙ります。原因にたどり着くまでの時間が一番長くなるのは、いつも三層目でした。

Gemini のサンプリングパラメータ非推奨は、この三層目に当たります。

「効いているか」を測る道は、監査には使えません

公式のフォーラムでも、棚卸しの手段が話題になっています。実行時に検知する方法がないためです。

素直に思いつくのは、同じプロンプトを temperature 0 と 1 で複数回投げ、出力の散らばりが変わらないことを確かめる方法です。効いていないことを自分の目で確認する手段としては、これで足ります。

ただ、監査の道具にはなりません。私が回している分類系のジョブは、そもそも temperature 1 でも出力がほとんど揺れません。選択肢が閉じた課題では、値を上げても同じ答えが返ります。この場合、分散が変わらないことは「無視されている」証拠にも「効いている」証拠にもなりません。判定が原理的に成り立たない領域が残ります。

そして、測定が成功したところで分かるのは「このジョブでは効いていない」という一点だけです。移行のときに要るのは、そこではありません。どこで何を渡しているかの、漏れのない一覧です。

順番を入れ替えました。効き目を測るのは後回しにして、まず渡した値を記録することにしました。

grep が見つけた 3 箇所

検証のために、設定の作り方が違う 5 つのジョブを用意しました。実際のコードベースで見かける形をひととおり並べたものです。

# app/jobs/a_direct.py — 型付き config に直接渡す
from google.genai import types
 
def build():
    return types.GenerateContentConfig(temperature=0.2, top_k=40)
# app/jobs/b_dict_literal.py — 辞書リテラル
def build():
    return {"temperature": 0.9, "response_mime_type": "application/json"}
# app/jobs/c_assigned.py — 後から代入
def build(t: float):
    cfg = {"max_output_tokens": 512}
    cfg["temperature"] = t
    return cfg
# app/jobs/d_profile.py — 外部 JSON プロファイル由来
from app.common.config import load_profile
 
def build():
    return load_profile("caption")   # caption.json に {"temperature": 0.9, "top_p": 0.95}
# app/jobs/e_merged.py — 共通ヘルパでマージ
from app.common.config import merged
 
def build():
    return merged("extract", candidate_count=1)   # extract.json に {"temperature": 0.0}

この 5 本に対して grep を当てます。

$ grep -rn --include='*.py' 'temperature\|top_p\|top_k' app | wc -l
3

d と e は Python ファイルに文字列が存在しないため、出てきません。

対象を JSON まで広げると 5 行ヒットします。ただし増えた 2 行はプロファイル定義そのものであって、どのジョブがそれを読むかは分かりません。1 つのプロファイルを 3 本のジョブが共有していれば 1 行に見えますし、誰も読んでいない残骸でも 1 行に見えます。箇所の数え上げには使えない情報です。

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

この記事の続きを読む

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

この記事で得られること
grep では 3 箇所にしか見えない設定が実際には 5 箇所から送られている、という取りこぼしの構造を自分のコードで確かめられるようになります
外部プロファイルや共通ヘルパを経由する設定を、移行の途中で取りこぼす前に監査の穴を塞げるようになります
非推奨パラメータの棚卸しが終わったことを、人の記憶ではなく CI の合否として示せるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-06-20
Gemini のモデル非推奨を CI で先回りして止める仕組み
ハードコードされた Gemini のモデル ID を CI で走査し、シャットダウン期限が近いものを残り日数つきで検知する仕組みを動くコードで組み立てます。稼働中モデル一覧との突き合わせ、GitHub Actions と日次 cron への組み込み、運用の工夫まで扱います。
API / SDK2026-08-16
Gemini 3.7 Flash の値上げ分は、バッチ層へ移すとちょうど相殺されます
Gemini 3.7 Flash の導入価格は2026年12月31日で終わり、翌日から単価が倍になります。値上げの対象になるモデルとならないモデルを価格表で切り分け、自分の使用量から年明けの請求を先に出すところまでを整理しました。
API / SDK2026-08-03
Memory profiles の更新ポリシーを測って選ぶ — 確定値を守るガードが精度を16ポイント下げた記録
Memory Bank の Memory profiles が GA になり、構造化された記憶を後段へ渡せるようになりました。更新ポリシーを3種類つくって同条件で比較したところ、直感的に正しく見えた防御が精度を下げていました。計測コード一式と、フィールド別TTLへ切り替えるまでの記録です。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →