🚀

Google AI Studio レポート:デモ①「JSON生成プロンプト」を設計し、Pythonで実行する

に公開

Google AI Studioを使えば、AIの力をアプリに組み込むためのプロトタイプを作成できます。本記事では、AI Studioで特定のJSON形式のデータを出力させるプロンプトを設計し、それをPythonに組み込むまでの工程を解説します。


🚀 ステップ 1:Google AI Studio でプロンプトを設計する

Google AI Studio は、Gemini の力を試す 「Playground(遊び場)」 です。ここでは、AI がどのように応答するかをコードを書かずにテストし、アプリ開発に必須な 「構造化データ(JSON)」 の出力を設計します。

1-1. 作業環境の準備

初めてGoogle AI Studioへアクセスする時はこちらを参考にしてください

ブラウザでGoogle AI StudioのWebサイトにアクセスし、Googleアカウントでログインします。

Google AI Studioのスタートページに表示されるメッセージ「Welcome to AI Studio」の主要な内容を確認し、同意します。

「Welcome to AI Studio」の要約
Google AI Studioは、Googleの次世代生成AIモデルファミリーであるGeminiを活用して、開発者がアプリケーションを構築できるようにするためのプラットフォームです。

このサービスを利用する際は、以下の点にご注意ください。

  1. 適用される規約: Gemini APIの追加利用規約とGoogleプライバシーポリシーが適用されます。
  2. データ利用: 入力したプロンプトとAIの応答は、Google AIのトレーニング(学習)のためにレビューされ、使用される可能性があります
  3. 機密情報の入力禁止: そのため、機密情報や個人情報を含んだコンテンツは絶対に入力しないでください
  4. AIの間違い: Geminiは間違いを犯す可能性があるため、生成されたコンテンツは**必ず確認(ダブルチェック)**してください。

要するに、AI StudioはGeminiを使った開発を可能にするツールですが、データプライバシーと出力の正確性について注意が必要です。

  1. AI Studioにアクセス: Google AI Studioにログインします。
  2. Playgroundへ移動: 左側メニューから「Playground」タブを選択します。
  3. モデル選択: 中央のリストから「Gemini Flash Latest」など、利用したいモデルをクリックして選択します。
  4. AI Studioでの試行は、多くのモデルで無料枠内で行えます。

ただし、「Run」ボタンを押すたびに無料枠のトークンは消費されます。

高性能なProモデルや動画生成などを使う際は、無料枠が少ないため、ご利用前に必ずGoogle AI for Developers の公式サイトで最新の無料枠と単価を確認してください。料金は頻繁に更新されますので、ご注意ください。
また、Get API キーのプロジェクトのUsage and Billingでどのくらいのtokenを消費したかを確認できます。

1-2. 構造化出力(JSON)の設定

アプリケーションに組み込むために、AI の出力を決まった形式(JSON)に固定します。

  1. 設定パネルを開く: 画面右側の「Run settings」パネルを開きます。
  2. Structured output を有効化: 「Tools」セクションにある「Structured output」のトグルスイッチをオンにします。
  3. JSONスキーマを定義: その横にある「Edit」ボタンをクリックし、表示されたポップアップで「Code Editor」を選択します。

1-3. JSONスキーマの定義

AI に生成してほしいデータの「設計図」を定義します。今回は、レストランレビューの構造を定義しました。

{
  "type": "object",
  "properties": {
    "restaurant_name": { /* ... レストランの名前 ... */ },
    "cuisine_type": { /* ... 料理のジャンル ... */ },
    "rating": { /* ... 評価点(integer) ... */ },
    "review_text": { /* ... レビュー本文 ... */ }
  },
  "required": [
    "restaurant_name",
    "cuisine_type",
    "rating",
    "review_text"
  ]
}
  1. スキーマを貼り付け、「Save」ボタンで保存します。

1-4. プロンプトの実行と結果の確認

AI Studioの画面下部にある入力欄に、AIへの具体的な指示(プロンプト)を入力し、「Run」ボタンを押します。

プロンプト: 以下の条件に基づき、架空のレストランレビューを1件生成してください。

  • 料理のジャンルは「フレンチ」か「中華」のどちらかであること。
    • 評価点(rating)は4点以上であること。
  • 結果: 画面に出力された JSON データ(画像参照)は、定義した構造と条件(フレンチ、評価5点)を満たしており、プロトタイプが成功したことを示します。

💾 Google Drive 保存に関して

プロンプトはGoogle Driveに保存することで、次回AI Studioを開いたときに、今回設定したJSONスキーマとプロンプトの内容がすぐに呼び出せます。下記を参考に検討してください。

判断項目 Yes (保存する) No (保存しない)
再利用の必要性 このプロンプトを今後も使って実験したい、またはAPIで実行するコードの基盤にしたい。 今回のデモの確認だけで、後で再利用する予定はない。
データ共有 チームメンバーや他のデバイスとプロンプトの設定を共有したい。 個人で一時的に試すだけで、共有の必要はない。
機密性 入力したプロンプトや生成された内容に機密情報や個人情報を含んでいない 入力・出力データに機密性の高い情報が含まれており、AI Studioの外部にファイルを残したくない
Driveの容量 Google Driveの容量に余裕がある。 Driveのファイルを増やしたくない。

🚀 ステップ 2:Google AI Studio 生成のコードを実行する

2-1. APIキーの作成

Google AI Studioの左下メニューから「Get API Key」を選択します。
「APIキーを作成」をクリックし、新しいキーを作成します。

今回の個人のデモの目的なので、**新しいプロジェクトを作成する(GCP連携)必要はなく、デフォルトで利用できる「Default Gemini Project」**を選択するのが最も簡単です。キー名はわかりやすい名前をつけます。

生成されたAPIキー(AIzaSy...から始まる文字列)をコピーして、安全な場所にメモしておきます。

2-2. 開発環境のセットアップ

以下の手順でファイルを準備します。

作業用のフォルダ(例:gemini_demo)を作成します。
そのフォルダ内に、以下の2つのファイルを作成します。

  • A. .env ファイルの作成

キーを安全に扱うためのファイルです。

.env
GEMINI_API_KEY="ここにステップ1でコピーしたAPIキーを貼り付けます"
  • B. requirements.txt ファイルの作成

必要なライブラリをインストールするためのファイルです。

requirements.txt
google-genai
pydantic
python-dotenv

2-3. ライブラリのインストール

コマンドプロンプトやターミナルを開き、作成したフォルダに移動します。
以下のコマンドを実行し、必要なライブラリをインストールします。

pip install -r requirements.txt

2-4.「Get code」機能の活用して、Pythonコードを取得

  1. JSONスキーマを設定し、プロンプトを実行したGoogle AI StudioのPlayground画面に戻ります。

2.「Get code」をクリック: 画面右上の設定パネルの隅にある「< > Get code」というボタン(またはタブ)をクリックします。

  1. 言語の選択: ポップアップまたは表示されたパネルで、コードを生成したいプログラミング言語(例: Python、Node.js、cURLなど)を選択します。

  1. コードの取得: AI Studioは、現在設定されているすべての情報(モデル名、プロンプト、そしてStructured outputで設定したJSONスキーマ)を含んだ、完全なAPI呼び出しコードを自動生成して表示します。右上のダウンロードボタンで、コードをダウンロードします。

2-5.AI Studioから生成されたコードの修正

AI Studioから生成されたコード(ai_studio_code.py)は次のように修正します。

  1. APIキーの読み込み方法

APIキーを環境変数から読み込む設定になっています。set envコマンドを使って,環境変数にAPIキー(GEMINI_API_KEY)を設定する方法もあります。

AI Studioから生成されたコードのAPIキー読み込み部分:

ai_studio_code.py
client = genai.Client(
    api_key=os.environ.get("GEMINI_API_KEY"),
)

ここでは前回作成した.envファイルを自動で読み込む処理(dotenvライブラリ)を組み込みます。
ai_studio_code.pyを以下のように修正しました。

🛠️ ai_studio_code.pyの修正

ファイルの先頭に以下のコードを追加し、APIキーを.envから読み込むように修正します。

ai_studio_code.py
# 必要なライブラリを追加
import os
from dotenv import load_dotenv # <-- この行を追加

# ... (既存のコード) ...

def generate():
    # .envファイルから環境変数を読み込む処理を呼び出す <-- この行を追加
    load_dotenv() 

    # APIキーの読み込み方法を修正し、キーを直接渡す
    client = genai.Client(
        api_key=os.environ.get("GEMINI_API_KEY"), # .envから読み込まれた値がここで使われます
    )

    # ... (以降の既存のコードはそのまま) ...
  1. プロンプトの設定
    プロンプトのテキストが空欄(INSERT_INPUT_HERE)になっているため、設計したプロンプトを組み込みます。
🛠️ ai_studio_code.pyの修正
ai_studio_code.py
contents = [
       types.Content(
           role="user",
           parts=[
               types.Part.from_text(text="""
以下の条件に基づき、架空のレストランレビューを1件生成してください。
- 料理のジャンルは「フレンチ」か「中華」のどちらかであること。
- 評価点(rating)は4点以上であること。
"""),
  1. 不要な設定の削除
    generate_content_configから、画像関連の設定を削除します。
🛠️ ai_studio_code.pyの修正

ai_studio_code_c.py ファイルの generate 関数内、generate_content_config を定義している部分を、以下のように修正します。

ai_studio_code.py
    # 修正前:
    # generate_content_config = types.GenerateContentConfig(
    #     thinking_config = types.ThinkingConfig(
    #         thinking_budget=-1,
    #     ),
    #     image_config=types.ImageConfig(  <-- ★このブロックがエラーの原因★
    #         image_size="1K",
    #     ),
    #     response_mime_type="application/json",
    # ...
    # )

    # 修正後:
    generate_content_config = types.GenerateContentConfig(
        # ThinkingConfigもこのデモでは不要なので削除またはコメントアウトしてもOK
        # thinking_config = types.ThinkingConfig(
        #     thinking_budget=-1,
        # ), 
        # image_configブロックを完全に削除
        
        response_mime_type="application/json",
        response_schema=genai.types.Schema(
            # ... (response_schemaはそのまま) ...
        ),
    )

2-6. コードの実行

ターミナルで次のコマンドを実行します。

python3 ai_studio_code_c.py

これで、Web上のAI Studioで設計した通りのJSONデータが、Pythonプログラム経由で生成され、画面に出力されます!


💻 実行中に発生したエラーと警告のまとめ

今回のデモでAI Studioで生成されたコードを実行する際に発生したエラーをまとめます。時間をおけば解決するものや無視して良いものも含めます。

No. 種類 エラー/警告メッセージの概要 原因 対応策
1 警告 NotOpenSSLWarning: urllib3 v2 only supports OpenSSL... お使いのMac環境(Python 3.9)のSSLライブラリ(LibreSSL)と、Pythonライブラリ(urllib3)のバージョン間の互換性に関する警告。 無視して問題ありません。
2 エラー 503 UNAVAILABLE: The model is overloaded. Please try again later. GoogleのGeminiモデルを提供するサーバー側の一時的な過負荷。 時間をおいて再実行することで解消しました。
3 エラー ValueError: Missing key inputs argument! To use the Google AI API, provide (api_key) arguments. AI Studioが生成したコードが、APIキーを認識できなかった。 コードに from dotenv import load_dotenv を追加し、generate() 関数内で load_dotenv() を実行するように修正しました。
4 エラー ValidationError: 1 validation error for ImageConfig. Extra inputs are not permitted テキスト生成タスクであるにもかかわらず、AI Studioが生成したコードに、画像生成モデル用の不要な設定(image_config)が含まれていたため、Pydanticによるデータ検証に失敗した。 generate_content_configから、image_configブロックを削除することで解消しました。

🔑 まとめ

1件の出力を得るだけなら通常のチャットでも可能ですが、「アプリケーションに組み込むための、エラーの起きない安定した構造化データ」を設計し、「その設定をすぐにコードに移植する」ためには、Google AI StudioのStructured Output機能が強力な助っ人となります。

Discussion