GEMINI LABEN
NANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定ですNANOLITE — Nano Banana 2 Liteが登場しました。Googleで最も速く、最もコスト効率の高いGemini Imageモデルで、軽量な画像生成を安く回したい用途に向いていますOMNIFLASH — Gemini Omni Flashがpublic previewになりました。ネイティブにマルチモーダルなモデルで、企業や開発者が独自の動的な動画ワークフローを構築できますAGENTS — Managed Agentsが拡張されました。background: trueでサーバー側の非同期実行とポーリング、リモートMCPサーバー連携、対話をまたぐ認証情報のリフレッシュに対応しますMEMORY — Memory BankのIngestEvents APIが一般提供になりました。イベントの取り込みとメモリ生成を分離し、コンテンツを継続的にストリームできますTHROUGHPUT — Provisioned Throughputで、同一モデル・同一リージョンに対して最大7件の保留オーダーを提出できるようになりましたDEPRECATE — 画像生成モデルは8月17日に、Gemini Enterprise Agent PlatformのGrok 4.1系は8月20日に停止される予定です
記事一覧/API / SDK
API / SDK/2026-04-21上級

Gemini のプロンプトを壊さない — Pytest で組むプロンプト回帰テストの実践パターン

プロンプトを1行直しただけで本番出力が別物になった経験はありませんか。 Gemini API のプロンプトを Pytest でテストし、スナップショットと LLM-as-Judge を組み合わせて回帰を自動検出する実装パターンを、個人開発者の実運用目線で解説します。

gemini-api279prompt-engineering13pytest2regression-testing2llm-as-judge5ci2python103

プレミアム記事

プロンプトは、ちょっとした一行修正から壊れる

個人開発で Gemini API を使い始めて一番怖いのは、モデルが落ちることでも、API キーの漏洩でもなく、「昨日までちゃんと動いていた処理が、今日の修正で静かに品質だけ下がる」瞬間だと私は思っています。

つい先日も、自分のアプリのレビュー要約プロンプトに「箇条書きで 5 点」と一行足しただけで、それまで自然に出ていた締めの一文が消え、事実と違う要約が混じるようになりました。テストらしいテストを書いていなかったので、気づいたのはリリース翌日、ユーザーから「最近の要約、なんか雑になった?」と問い合わせが来てからです。小さな修正だったので、Git の履歴を遡る時間より、そもそも「どのあたりが変わったのか」を特定する方に時間がかかりました。

この記事は、そういう事故を次からちゃんと止めたい人のためのガイドです。Pytest を使って Gemini API のプロンプトを回帰テストし、スナップショットと LLM-as-Judge の二段構えで「静かな劣化」を検知する仕組みを、実装コードとあわせて紹介していきます。対象は、Python で Gemini API を触り始めて数週間〜数ヶ月、CI で品質を守る段階に入りたい個人開発者の方を想定しています。チーム開発の方でも、最小構成の出発点として読んでいただけると思います。

この二段構えが大事な理由は、プロンプトが壊れるパターンに 2 種類あるからです。一つは「そもそも出力の形が変わった」タイプ。JSON を返すはずが自然文を返し始める、必須キーが抜ける、といった即死級の障害です。もう一つは「形は合っているけど内容が静かに下がった」タイプ。要約がユーザーの不満点を拾わなくなる、トーンが攻撃的になる、事実と違う情報を混ぜ始める、といった忍び寄る劣化です。前者は単純な型チェックで十分ですが、後者は人間の目や別の LLM の目で読まないと気づけません。

個人開発で一人で運用していると、特に後者に気づくのが遅れます。ユーザーからの問い合わせ経由で判明した時にはリリース後数日が経っていて、原因特定にさらに数日かかる、というサイクルに何度か嵌まりました。そこを短縮したい、というのがこの記事の一番の動機です。

プロンプト評価の総論として幅広くカバーしている Gemini API プロンプト評価・最適化パイプライン構築ガイド も併せて読んでいただけると、今日の話がその中のどの位置にあるか分かりやすくなるはずです。今日は「書いた後の変更を壊さないための継続的な仕組み」に絞って、深さを重視して進めていきます。

プロンプト回帰テストは、ユニットテストの拡張ではなく別物

「プロンプトもコードなんだから、ユニットテストと同じ発想で書けばいい」と最初は思いがちです。私もそう思っていました。ただ、実際にやってみると、従来のテストとは性質が違うと痛感します。

まず、出力が決定的ではありません。Temperature を 0 にしても、モデル側のバージョン更新や内部の丸め誤差で、厳密な一致はほぼ得られません。文字列 assertEqual は早々に破綻します。

次に、「正しい出力」は一意ではありません。要約記事の冒頭を「本稿は〜」で始めるか「今回は〜」で始めるかは、どちらも合格です。人間が書いても表記揺れは起きるので、そこをテストで締め付けるとほとんどの実行が赤になります。

そして、テストが落ちた時の原因がモデル側にもプロンプト側にもユーザー入力側にもあり得ます。Pytest の失敗メッセージだけ見ても、自分が直すべき箇所が分かりません。スタックトレースの代わりに、LLM の出力そのものを読み込むスキルが地味に要求されます。

ここから出てくる結論は、プロンプト回帰テストには「構造レベルの契約」と「意味レベルの合格基準」を分けて持つ必要がある、ということです。前者はスナップショットや JSON スキーマで縛り、後者は LLM-as-Judge で柔らかく見る。この二段構えが、私が数ヶ月運用してきた中で一番落ち着いた形になりました。

言い換えると、ユニットテスト的な「関数の入出力を固定する」発想から、契約テスト(Consumer-Driven Contract)的な「期待する形と許容範囲を合意する」発想に頭を切り替える必要があります。ここがまず、最初の山かもしれません。

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

この記事の続きを読む

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

この記事で得られること
プロンプト修正で本番出力が壊れた経験がある人が、Pytest で安心して改善を繰り返せる土台を手に入れられる
スナップショットテストと LLM-as-Judge を組み合わせた、動く Python コード一式をコピペから育てていける
CI で回帰を検知するパイプラインと、テスト失敗時のノイズとの付き合い方まで、個人運用に必要な判断軸が身につく
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

API / SDK2026-03-25
Gemini API プロンプト評価・最適化パイプライン構築ガイド — LLM-as-Judge で品質を自動計測する
Gemini API を使ったプロンプト評価パイプラインの構築方法を解説。LLM-as-Judge パターン、A/Bテスト、自動スコアリング、コスト対品質の最適化まで、本番運用に必要な実装を網羅します。
API / SDK2026-06-15
既定モデルが勝手に上がる時代に、プロンプト変更の劣化を数値で捕まえる — バリアント管理とカナリア評価の実装メモ
Gemini 3.5 Flash が既定に上がり、無効化もできなくなりました。プロンプトを触っていないのに応答が変わる前提で、バリアントを束ねて管理し、カナリアと LLM-as-judge で劣化を数値として捕まえる仕組みを、動くコードで組み立てます。
API / SDK2026-05-06
Gemini APIでRAG評価フレームワークを構築する:RAGAS・LLM-as-Judge・カスタム指標の統合本番実装マスタークラス
RAGAS・LLM-as-Judge・カスタム評価指標を組み合わせてGemini APIベースのRAGシステムを定量評価するフレームワークの完全実装ガイド。CI/CD組み込みと本番モニタリングまで解説します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →