「gemini-3.2-pro を指定したらエラーが出たのですが、正しいモデルIDは何ですか?」
先週、このような質問を開発者コミュニティで何件か見かけました。モデル名を検索すると Gemini 3.2 の一般向け紹介記事がたくさん出てくるのですが、API から呼び出すための具体的な実装ガイドがなかなか見つからないようです。
ここではGemini 3.2 を API 経由で使うために必要なことを実装者視点でまとめます。どのモデルIDを指定すべきか、3.1 からの移行で何が変わるか、そして本番環境に切り替えるときの確認ポイントを整理しています。
Gemini 3.2 のモデルID 一覧
まずはモデルIDの確認から始めましょう。2026 年 5 月時点での Gemini 3.2 系モデルIDは以下の通りです。
# 利用可能な Gemini 3.2 モデルID(2026年5月時点)
MODELS = {
"pro": "gemini-3.2-pro", # 最高性能・高コンテキスト処理
"flash": "gemini-3.2-flash", # 高速・コスト効率重視
"flash_lite": "gemini-3.2-flash-lite", # 軽量・低レイテンシ
}それぞれの使い分けは次のとおりです。
- gemini-3.2-pro: 長文分析、複雑な推論、マルチモーダル処理。コンテキストウィンドウ最大
- gemini-3.2-flash: テキスト生成・分類・チャットなど汎用タスク。速度とコストのバランスが良い
- gemini-3.2-flash-lite: リアルタイム応答が必要なアプリや高頻度 API 呼び出し向け
gemini-3.2 のような「バージョンのみ」指定は今のところ存在しません。-pro や -flash のサフィックスまで含めた正確なIDが必要です。モデルIDの命名規則や latest / stable エイリアスについては、Gemini API のモデルIDを正しく選ぶ — stable / latest / preview / experimental の違いと落とし穴 も参考にしてみてください。
Gemini 3.1 → 3.2 の API 変更点
次に、3.1 からの変更点を実装に影響する範囲で整理します。
① レスポンス構造に変化なし
安心してほしいのですが、レスポンスのデータ構造自体は 3.1 と互換性があります。既存の response.text やトークンカウントの取得方法は変更不要です。
# 3.1 でも 3.2 でも同じコードで動く
response = model.generate_content("簡単な質問")
print(response.text) # テキスト取得
print(response.usage_metadata) # トークン使用量② thinking_budget パラメータの動作変化
3.1 Pro では thinking_budget を設定しない場合、デフォルトで 8,000 トークン相当の思考が走っていました。3.2 Pro では同じ省略時の挙動が少し変わり、タスクの複雑さを自動判定して思考深度を動的に調整 するようになっています。
シンプルな質問では余分な思考トークンを消費せず、複雑な質問では自動的に深く考えるようになったため、コストと精度のバランスが取りやすくなりました。もし 3.1 と同じ固定の思考予算を維持したい場合は明示的に指定します。
import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY")
# 3.2 Pro — thinking_budget を明示的に設定する場合
model = genai.GenerativeModel(
model_name="gemini-3.2-pro",
generation_config=genai.GenerationConfig(
temperature=0.7,
max_output_tokens=4096,
)
)
# thinking_budget を固定したい場合(省略すると自動調整)
response = model.generate_content(
"この設計の問題点を論理的に分析してください: ...",
generation_config={
"thinking_config": {
"thinking_budget": 10000 # 明示的に設定
}
}
)③ Function Calling のスキーマ検証が厳格に
3.1 では曖昧な型定義("type": "string" に数値が渡されるなど)を暗黙的に許容していましたが、3.2 ではスキーマ不整合をエラーとして明示するようになっています。
既存の Function Calling 実装を 3.2 に切り替えたとき、INVALID_ARGUMENT エラーが増えた場合は、ツールのパラメータ定義を見直すのが先決です。
# 型定義を厳密にする例(3.2 対応)
weather_tool = {
"name": "get_weather",
"description": "指定した都市の天気情報を取得する",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string", # 文字列型を明示
"description": "都市名(日本語または英語)"
},
"days": {
"type": "integer", # 整数型を明示("number" ではなく)
"description": "予報日数(1〜7)",
"minimum": 1,
"maximum": 7
}
},
"required": ["city"]
}
}Python 実装例(最小構成)
実際に動くコードをひとつ示します。これが Gemini 3.2 Pro を呼び出す最小の実装です。
import google.generativeai as genai
import os
# APIキーの設定(環境変数から取得を推奨)
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# モデル初期化
model = genai.GenerativeModel("gemini-3.2-pro")
def ask_gemini(prompt: str) -> str:
"""Gemini 3.2 Pro にテキストを送信して応答を取得する"""
try:
response = model.generate_content(prompt)
return response.text
except genai.types.BlockedPromptException as e:
# セーフティフィルターによるブロック
print(f"コンテンツがブロックされました: {e}")
return ""
except Exception as e:
# その他のエラー(レート制限・ネットワークエラー等)
print(f"エラー: {e}")
raise
# 実行例
result = ask_gemini("Python でファイルを安全に読み込む方法を教えてください")
print(result)
# 期待する出力例:
# Pythonでファイルを安全に読み込むには、with 文を使うのが基本です...エラーハンドリングの詳細については Gemini API エラーハンドリング&リトライ完全ガイド で掘り下げています。
TypeScript / JavaScript 実装例
Node.js や Next.js から呼び出す場合の実装です。
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY!);
// Gemini 3.2 Flash(速度重視のタスクに)
const model = genAI.getGenerativeModel({ model: "gemini-3.2-flash" });
async function generateText(prompt: string): Promise<string> {
try {
const result = await model.generateContent(prompt);
const response = result.response;
return response.text();
} catch (error) {
// エラーの種類を判別してログに残す
if (error instanceof Error) {
console.error(`Gemini API エラー: ${error.message}`);
}
throw error;
}
}
// チャット形式(マルチターン)の場合
async function chatWithGemini() {
const chat = model.startChat({
history: [
{
role: "user",
parts: [{ text: "TypeScript の型推論について教えてください" }],
},
{
role: "model",
parts: [{ text: "TypeScript の型推論は..." }],
},
],
});
const response = await chat.sendMessage("具体的なコード例も見せてください");
console.log(response.response.text());
}3.1 からの移行であれば、モデル名を "gemini-3.1-flash" から "gemini-3.2-flash" に変えるだけで動作します。SDK のバージョンが古い場合は @google/generative-ai を最新版に更新しておきましょう。
# パッケージ更新
npm install @google/generative-ai@latest
# または
pip install google-generativeai --upgrade本番環境への移行チェックリスト
3.1 から 3.2 に切り替える前に確認しておくことをまとめました。
移行前の確認:
- [ ] 開発環境で
gemini-3.2-pro/gemini-3.2-flashどちらを使うか確定しているか - [ ] Function Calling を使っている場合、ツールのパラメータ型定義が正確か
- [ ]
thinking_budgetを明示的に設定しているか(自動調整で問題ない場合は省略可) - [ ] SDK が最新版に更新されているか(
google-generativeai/@google/generative-ai)
移行後の確認:
- [ ] 同じプロンプトで 3.1 と 3.2 の応答を比較し、品質・形式が期待通りか
- [ ] エラー率・レイテンシをモニタリングして異常値がないか
- [ ] トークン消費量に大きな変化がないか(
usage_metadataで確認) - [ ] Function Calling の成功率が低下していないか
レート制限周りの注意点は Gemini API レート制限・クォータ管理の完全実装ガイド で詳しく説明しています。
一般ユーザー向けの Gemini 3.2 の機能や特徴については、Gemini 3.2 完全ガイド — 何が変わったか・実際の使用感・前モデルとの違い が参考になります。
2026年5月 最新情報
この記事公開後に把握した情報を補足します。
Gemini 2.0 Flash の廃止スケジュール(6月1日)
2026年6月1日をもって Gemini 2.0 Flash が廃止されます。もし既存のプロジェクトで gemini-2.0-flash を指定していれば、早めに gemini-2.5-flash または gemini-3.2-flash への切り替えを進めてください。廃止後はモデルが応答しなくなります。移行の具体的な手順はGemini 2.0 Flash が6月1日に廃止されます — 今すぐ 2.5 Flash へ移行する手順にまとめています。
5月の Gemini API 変更点
5月は Gemini API にいくつかの変更がありました。本番環境を運用している方は、Gemini API 開発者向け 2026年5月アップデート — 今月何が変わり、何をすべきかを一度確認しておくことをお勧めします。特に Function Calling とストリーミングレスポンス周りの挙動に関するアップデートが含まれています。
2026年6月 追記 — I/O 2026 で Gemini 3.5 が登場
この記事は Gemini 3.2 を前提に書いていますが、2026年5月19日の Google I/O 2026 で次世代の Gemini 3.5 Flash が発表されました。フラッグシップ級の知能を Flash の速度で提供し、コーディングやエージェント系のベンチマークで 3.1 Pro を上回るとされ、長時間タスクのコストも大きく下がっています。Gemini 3.5 Pro も社内先行のうえ、翌月の一般展開が予告されました。
とはいえ、本文で扱った 3.1 → 3.2 の移行作法(モデルID の差し替えを起点に、Function Calling とストリーミングの差分を確認する進め方)は 3.5 への移行でもそのまま使えます。まず 3.2 で構成を固め、3.5 の一般提供が安定してきた段階でモデルID を切り替えて回帰テストする、という順序が安全だと考えています。あわせて、1回の API 呼び出しで隔離環境を確保できる Managed Agents も I/O で発表されているので、エージェント的な処理を組んでいる方は移行のタイミングで検討する価値があります。
まず試してほしい一歩
今日できる具体的なアクションをひとつだけ示すとすれば、既存プロジェクトのモデルIDを gemini-3.2-flash に変更してテスト実行してみること です。
3.1 Flash で動いているコードであれば、モデルIDを 1 行変えるだけで 3.2 の挙動を体感できます。Function Calling を使っていない汎用テキスト処理なら、ほぼ無修正でそのまま動くはずです。まずは開発環境でサクッと切り替えてみて、応答品質の変化を確認してみてください。
Gemini の API 開発について体系的に