AI Studio で通ったプロンプトが API では静かに崩れるとき — 差分を計測して切り分ける運用メモ
AI Studio では完璧に動いたプロンプトが、自分のコードから Gemini API を呼ぶと空応答や 404 になる。目視ではなく、設定差と finish_reason・使用トークン・解決モデル名を機械的に記録する小さなハーネスで、原因別に切り分ける運用手順をまとめました。
Gemini APIのFunction Callingが無限ループする原因と止め方
Function Callingを組んでいたら、同じツールを何度も呼び続けて処理が終わらなくなる。そんなときに原因を特定し、最短で止めるための診断と対策をまとめました。デフォルトモデルの世代交代で再発するループの検知や、結果ベースのストール検出まで実装で示します。
Gemini API の本文が途中で切れる — finish_reason: MAX_TOKENS を検知して続きを継ぎ直す実装メモ
長文生成で末尾が文の途中でぷつりと切れる。原因の多くは finish_reason: MAX_TOKENS です。例外も 200 のまま静かに混入するこの事故を検知し、続きを継ぎ足して全文を取り戻す実装を、思考トークンの落とし穴とあわせてまとめました。
Gemini API の空応答を finish_reason から逆引きする — 診断フロー・再試行分類・監視の実務
response.text が空になる問題は candidates・prompt_feedback・finish_reason の3層で診断できます。思考トークンによる出力枯渇の検出、再試行可否の分類器、空応答率の監視まで、本番で運用している実装をまとめました。
Firebase AI Logic で iOS から Gemini を呼ぶと 403 になる原因と対処
Firebase AI Logic(旧 Vertex AI in Firebase)で iOS アプリから Gemini を呼び出すと 403 PERMISSION_DENIED が返る問題。App Check の強制適用・API 未有効化・Blaze 未設定の3つの原因を切り分けて解決する手順を、実機検証の経験から整理します。
Gemini 2.5/3 で本文が空なのに finish_reason が MAX_TOKENS になるときの原因と対処
プロンプトはほんの数行なのに、maxOutputTokens を絞った gemini-2.5-flash が空文字を返し finish_reason が MAX_TOKENS になる — 犯人は思考トークンです。原因と3通りの対処を実装コードで整理します。
Gemini APIで「Unsupported MIME type」エラーが出るときの原因と対処
画像や音声をGemini APIに渡したときに発生する『Unsupported MIME type』エラーを、MIMEタイプの綴り間違い・octet-stream問題・非対応フォーマットの3つの観点から切り分けて、確実に動くコードで解決します。
Gemini 2.5 Pro で thinkingBudget を 0 にすると INVALID_ARGUMENT になる原因と対処
Gemini 2.5 Pro で thinkingBudget を 0 にすると 400 INVALID_ARGUMENT が返る原因を、モデルごとの思考予算レンジの違いから解説します。Pro でレイテンシを抑える正しい書き方と Flash への切り替え判断を Python・JavaScript のコード付きで紹介します。
Gemini API キーに HTTP リファラー制限をかけたら本番サイトから 403 エラーになる原因と対処
Google Cloud Console で API キーに HTTP リファラー制限を設定したら、ブラウザから叩く本番サイトでも 403 エラーが返るようになった、というつまずきの原因と対処を、リファラー文字列の書式・SDK 別の挙動・サーバー側プロキシへの逃し方、さらにブラウザ直叩きで起きる CORS エラーとの切り分けまで含めて整理します。
Gemini API の chat で send_message ごとに温度やトークン上限が変わらない原因
google-genai SDK の chat セッションで send_message ごとに generationConfig や temperature を渡しているのに、応答の挙動が変わらない・前の設定が引きずられる場合の切り分け手順をまとめました。SDK の設計意図を踏まえた回避策と、現場で使っているラッパー実装まで動くコードで整理しています。
gemini-2.5-flash-image で参照画像が反映されない・別物が生成される時の原因と対処
gemini-2.5-flash-image(Nano Banana)で参照画像を渡したのに別物が生成される、編集指示が無視されるといった症状の切り分け手順をまとめました。parts の順序・response_modalities・画像サイズ・chat session ごとの落とし穴を、動くコードと一緒に整理しています。
Gemini API のストリーミングが本番で「途中で切れる」とき、私が試している原因切り分けの順序
Gemini API のストリーミング応答が本番で途中で切れる症状を、ネットワーク・SDK・サーバー側のどこから疑うかの順序を、個人開発で実際に踏んだ事例ごとに整理しました。