すべての記事
複数アプリのFAQを1つの File Search ストアに同居させる — customMetadata と chunk 設定で検索を分ける
複数アプリのFAQを1つの File Search ストアにまとめると、metadataFilter が無言で空を返したり、回答がチャンク境界で割れて引用されなかったりします。customMetadata の設計、AIP-160 フィルタ構文の落とし穴、chunkingConfig の実測チューニングを実装ベースでまとめました。
構造化出力のストリーミングで、完成したフィールドから順に画面へ出す — 不完全なJSONを安全に読む部分パース
responseSchema でストリーミングすると、JSONが閉じるまで画面は真っ白なまま待たされます。不完全なJSONを安全に補完して読む部分パースと、一度出した値を後退させない逆流防止を組み、最初のフィールドまでの体感を実測とともに縮める設計を残します。
モデルの提供終了通知が届くたびに慌てないために — Gemini 依存を一枚の層に閉じ込める個人アプリ設計
画像生成モデルの停止通知が届いた朝、依存が散らばっていると差し替えは半日仕事になります。Gemini 依存を一枚のポート層に閉じ込め、フォールバックと廃止期限のCI監視まで含めた個人アプリ設計を、動くコードとともに残します。
Omni Flash で短尺動画から SNS 告知メタデータを1パス抽出する
公開プレビューの Gemini Omni Flash に短尺動画を1回渡すだけで、告知文・チャプター・見せ場タイムスタンプを構造化 JSON で受け取る実装をまとめます。フレーム抽出を挟む多コール構成との違い、fps と media_resolution の効かせどころ、1本あたりのコスト試算まで、個人開発の告知作業を回す視点で扱います。
利用者データを『どのリージョンで処理したか』を後から言えるようにする — Gemini(Vertex AI) のエンドポイント固定とレジデンシ・ポリシーゲート
既定の global エンドポイントは便利ですが、EU 利用者のデータがどこで処理されたかを後から説明できません。Vertex AI のリージョン固定クライアント・グローバル暗黙フォールバックを禁じるポリシーゲート・呼び出し台帳の三点を、動くコードと実測レイテンシとともに設計します。
Context Caching を入れたのに Gemini の請求が減らなかったとき — 命中率を計測して立て直す運用メモ
Context Caching を有効化したのに Gemini API の請求がほとんど減らないとき、命中率と書き込みコストの回収点を usage_metadata から計測し、TTL チャーンと断片化を切り分けて段階的に立て直す運用メモです。
Managed Agents を本番に上げる前に、固定シナリオで挙動を測る — 非決定的なエージェントに回帰スイートと段階昇格を敷く
公開プレビューの Managed Agents は隔離サンドボックスで自律的に動く分、プロンプトや設定を少し変えただけで挙動が静かにずれます。単発プロンプトのように出力を一度突き合わせるだけでは足りません。固定シナリオを何度も回して合格率で測る回帰ハーネスと、影→カナリア→全面の段階昇格、逸脱時の自動ロールバックまでを、動く Python とともに設計します。
取り込んだのに一度も引かれない資料 — File Search ストアを引用ログで棚卸しする隔離つき剪定設計
File Search ストアに積んだドキュメントの多くは一度も引用されないまま費用と検索精度を蝕みます。grounding metadata から引用ログを取り、一度も引かれない資料を隔離期間つきで安全に剪定する運用設計を、動くコードとともに解説します。
Omni Flash で動画理解を1パスに畳む — フレーム抽出前提の構成をどこで手放すか
Omni Flash の公開プレビューで、ffmpeg のフレーム抽出と個別呼び出しに頼っていた動画理解を1回のネイティブ呼び出しへ畳む最小構成と、フレーム抽出を残すべき境界を実測ベースで整理します。
Nano Banana 2 Lite で大量画像生成のコストを設計する — 実測で使い分けを決める
最速・最安の画像モデル Nano Banana 2 Lite を大量生成の現場に組み込むコスト設計メモです。1枚あたりコストを式で持つ考え方、品質モデルと組み合わせる二層構成、静かなリトライにしない失敗の扱い、移行と廃止スケジュールの見方まで実測を交えて書きます。
Nano Banana 2 Lite で大量画像生成のコストを二段に分ける — 一次生成と本番レンダを切り離した設計メモ
Nano Banana 2 Lite を一次生成に、標準の Nano Banana 2 を採用後の本番レンダに回す二段構成のコスト設計メモです。一次生成・採用判定・本番レンダの三工程への分割、最小の Python ルーター実装、Lite に寄せすぎない線引きを共有します。
アプリに会話翻訳を組み込む — Live API で音声から音声へ、遅延と切断に耐える設計
Gemini 3.5 Live Translate と Live API で、音声から音声への会話翻訳をアプリに組み込む設計をまとめました。セッション寿命・言語の自動切り替え・遅延バジェット・ストリーミング課金の勘所を、動くコードとともに整理しています。