読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud Skills Boost

Google Cloud コンソールでスキルを試す

04

Prompt Design in Vertex AI

700 以上のラボとコースにアクセス

Google Gen AI SDK を使用した Google 生成 AI 活用のスタートガイド

ラボ 1時間 universal_currency_alt 無料 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

GSP1209

概要

Google Gen AI SDK は、Google の生成 AI API サービスへの統合インターフェースを提供します。この SDK を利用することで、生成 AI 機能をアプリケーションやサービスに統合するプロセスが簡素化され、デベロッパーが Google の高度な AI モデルをさまざまなタスクに活用できるようになります。このラボでは、Google Gen AI SDK の全体像を探り、AI サービスへの接続、さまざまなプロンプトの送信、Gemini から得られる応答の微調整について学びます。また、より高度な手法を実際に使用してみることで、生成 AI の機能を実際のプロジェクトに活用する準備を整えます。

目標

このラボでは、Google Gen AI SDK for Python を使用して、Gemini などの Google の生成 AI サービスやモデルとのやりとりを行う方法を学びます。具体的な内容は次のとおりです。

  • Google Gen AI SDK のインストール
  • API サービスへの接続
  • テキストとマルチモーダル プロンプトの送信
  • システム指示の設定
  • モデル パラメータと安全フィルタの構成
  • モデルとのやりとり(マルチターン チャット、コンテンツ ストリーミング、非同期リクエスト)の管理
  • 高度な機能(トークン カウント、コンテキスト キャッシュ、関数呼び出し、バッチ予測、テキスト エンベディング)の使用

前提条件

このラボを開始する前に、以下について理解しておく必要があります。

  • 基本的な Python プログラミング。
  • 一般的な API のコンセプト。
  • Vertex AI Workbench の Jupyter ノートブックでの Python コードの実行。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

タスク 1. Vertex AI Workbench でノートブックを開く

  1. Google Cloud コンソールのナビゲーション メニュー)で、[Vertex AI] > [ワークベンチ] の順にクリックします。

  2. インスタンスを見つけて、[JupyterLab を開く] ボタンをクリックします。

Workbench インスタンスの JupyterLab インターフェースが新しいブラウザタブで開きます。

タスク 2. ノートブックを設定する

ノートブック ファイルを開き、ライブラリをインポートしてモデルを選択します。

  1. ファイルを開きます。

  2. [Select Kernel] ダイアログで、使用可能なカーネルのリストから [Python 3] を選択します。

  3. ノートブックの以下のセクションを実行します。

    • 使ってみる
    • Google Gen AI SDK を使用する
    • 生成 AI API サービスに接続する

[Project ID] に を使用し、[Location] に を使用します。

注: 「Colab only」(Colab のみ)と記載されているノートブック セルは省略してください。いずれかのノートブック セルの実行で 429 応答が返される場合は、1 分待ってから再度セルを実行し、次に進んでください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ライブラリをインポートしてノートブックを設定する

タスク 3. モデルとのやりとりを行う

Vertex AI の AI モデルと API の全体に関する詳細は、「Google のモデル」と「Model Garden」をご覧ください。

モデルを選択する

  • ノートブックの「Choose a model」(モデルを選択)セクションを実行します。

テキスト プロンプトを送信する

generate_content メソッドを使用して、プロンプトに対する回答を生成します。generate_content にテキストを渡し、.text プロパティを使用して回答のテキスト コンテンツを取得できます。

  • ノートブックの「Send text prompts」(テキスト プロンプトを送信する)セクションを実行します。

マルチモーダル プロンプトを送信する

プロンプト リクエストに含められるのはテキスト、PDF ドキュメント、画像、音声、動画です。取得できる回答はテキストまたはコードです。

ファイルの URL をリクエストの Part.from_uri でモデルに直接渡すこともできます。

  • ノートブックの「Send multimodal prompts」(マルチモーダル プロンプトを送信する)セクションを実行します。

システム指示を設定する

システム指示を使用してモデルの動作を制御できます。システム指示を設定すると、タスクを理解するための追加のコンテキストがモデルに提供され、よりカスタマイズされた回答が得られます。また、ユーザー インタラクションをガイドラインに準拠させることができます。

  • ノートブックの「Set system instructions」(システム指示を設定する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 モデルとのやりとりを行う

タスク 4. モデルの構成と制御を行う

モデル パラメータを構成する

モデルに送信する呼び出しの一つひとつに、モデルがどのように回答を生成するかを制御するパラメータ値を組み込むことができます。詳しくは、「パラメータ値を試す」をご覧ください。

  • ノートブックの「Configure model parameters」(モデル パラメータを構成する)セクションを実行します。

安全フィルタを構成する

Gemini API で提供されている安全フィルタは、特定の種類のコンテンツを制限または許可するように複数のフィルタ カテゴリにわたって調整できます。これらのフィルタを使用して、ユースケースに適切なコンテンツとなるように調整できます。詳しくは、「安全フィルタを構成する」のページをご覧ください。

モデルに対してリクエストを行うと、コンテンツが分析され、安全性評価が割り当てられます。生成されたコンテンツの安全性評価は、モデルの回答をプリントすることで確認できます。この例をご覧ください。

  • ノートブックの「Configure safety filters」(安全フィルタを構成する)セクションを実行します。

マルチターン チャットを開始する

Gemini API を使って、マルチターンの会話を自由形式で行うことができます。

  • ノートブックの「Start a multi-turn chat」(マルチターン チャットを開始する)セクションを実行します。

生成された出力を制御する

Gemini API の生成制御機能を使用すると、モデルの出力を構造化された形式に制限できます。スキーマは Pydantic モデルまたは JSON 文字列として指定できます。

Python 辞書でレスポンス スキーマを定義することもできます。使用できるのは以下のフィールドに限られます。他のフィールドはすべて無視されます。

  • enum
  • items
  • maxItems
  • nullable
  • properties
  • required

この例では、商品レビューデータを分析し、主要なエンティティを抽出し、感情分類(多岐選択)を実行し、追加の説明を提示し、結果を JSON 形式で出力するようモデルに指示します。

  • ノートブックの「Control generated output」(生成された出力を制御する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 モデルの構成と制御を行う

タスク 5. モデルとのやりとりを管理する

コンテンツ ストリーミングを生成する

デフォルトでは、モデルは生成プロセス全体が完了した後に回答を返します。generate_content_stream メソッドを使用して、回答を生成と同時にストリーミングすることもできます。モデルはひとまとまりの内容が生成されるたびに回答を返します。

  • ノートブックの「Generate content stream」(コンテンツ ストリーミングを生成する)セクションを実行します。

非同期リクエストを送信する

client.aio モジュールを使用して非同期リクエストを送信できます。このモジュールによって、client で使用できる類似の非同期メソッドがすべて公開されます。

たとえば、client.aio.models.generate_contentclient.models.generate_content の非同期バージョンです。

  • ノートブックの「Send asynchronous requests」(非同期リクエストを送信する)セクションを実行します。

トークンをカウントして計算する

Gemini API にリクエストを送信する前に、count_tokens メソッドを使用して入力トークンの数を計算できます。詳細については、「トークンの一覧表示とカウント」のページをご覧ください。

トークンのカウント

  • ノートブックの「Count tokens」(トークンをカウントする)セクションを実行します。

トークンの計算

  • ノートブックの「Compute tokens」(トークンを計算する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 モデルとのやりとりを管理する

タスク 6. 高度な機能

関数呼び出し

関数呼び出しを使用することで、ユーザー プロンプトに対する応答の際に使用可能なツールを用意してモデルに渡すことができます。コード内で関数を記述し、その記述をリクエストで言語モデルに渡します。モデルからのレスポンスには、説明に対応する関数の名前と、その関数を呼び出す引数が含まれます。

関数呼び出しのその他の例については、こちらのノートブックをご覧ください。

  • ノートブックの「Function calling」(関数呼び出し)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 関数呼び出し

コンテキスト キャッシュ保存を使用する

コンテキスト キャッシュ保存を使用すると、よく使用する入力トークンを専用キャッシュに保存し、その後のリクエストで参照できるようになります。これにより、同じトークンセットをモデルに繰り返し渡す必要がなくなります。

: コンテキスト キャッシュ保存は、修正版の安定したモデル(gemini-2.0-flash-001 など)でのみ使用できます。バージョンの接尾辞(例: -001)を含める必要があります。

キャッシュを作成する

  • ノートブックの「Create a cache」(キャッシュを作成する)セクションを実行します。

キャッシュを使用する

  • ノートブックの「Use a cache」(キャッシュを使用する)セクションを実行します。

キャッシュを削除する

  • ノートブックの「Delete a cache」(キャッシュを削除する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 コンテキスト キャッシュ保存を使用する

バッチ予測

オンラインによる回答の取得(同期)では、1 回につきリクエストの入力が 1 つに制限されるのに対し、Vertex AI の Gemini API を使用したバッチ予測では、多数のリクエストを 1 回のバッチ リクエストで Gemini に送信できます。リクエストが行われると、モデルによる回答が Cloud Storage または BigQuery のストレージ出力先に非同期で入力されます。

一般的に、バッチ予測の方がオンライン予測よりも効率的で費用対効果が高くなるのは、遅延の影響を受けにくい大量の入力内容を処理する場合です。

バッチ入力を準備する

バッチ リクエストを入力する際、予測用のモデルに送信するアイテムを指定します。

Gemini のバッチ リクエストは、BigQuery ストレージのソースと Cloud Storage のソースに対応しています。バッチ入力の形式に関する詳細は、バッチテキスト生成のページをご覧ください。

このラボでは、Cloud Storage を例として使用します。Cloud Storage 入力の要件は次のとおりです。

  • ファイル形式: JSON Lines(JSONL)
  • 場所: us-central1
  • サービス アカウントに適切な読み取り権限

モデルに送信するリクエストごとに、モデルがどのように回答を生成するのかを制御するパラメータを組み込むことができます。Gemini のパラメータに関する詳細は、「パラメータ値を試す」のページをご覧ください。

これは、入力 JSONL ファイル batch_requests_for_multimodal_input_2.jsonl 内のリクエストの一例です。

{"request":{"contents": [{"role": "user", "parts": [{"text": "List objects in this image."}, {"file_data": {"file_uri": "gs://cloud-samples-data/generative-ai/image/office-desk.jpeg", "mime_type": "image/jpeg"}}]}],"generationConfig":{"temperature": 0.4}}}
  • ノートブックの「Prepare batch inputs」(バッチ入力を準備する)セクションを実行します。

バッチ出力先を準備する

バッチ予測タスクが完了すると、リクエストで指定した出力先に出力が保存されます。

  • 出力先は、Cloud Storage または BigQuery URI 接頭辞の形式で指定します。たとえば、gs://path/to/output/databq://projectId.bqDatasetId のような形式です。

  • 指定されていない場合、Cloud Storage ソースであれば gs://STAGING_BUCKET/gen-ai-batch-prediction が使用され、BigQuery ソースであれば bq://PROJECT_ID.gen_ai_batch_prediction.predictions_TIMESTAMP が使用されます。

このラボでは、出力先の例として Cloud Storage バケットを使用します。

BUCKET_URI に Cloud Storage バケットの URI を指定できます。指定しなかった場合は、gs://PROJECT_ID-TIMESTAMP という形式の新しい Cloud Storage バケットが作成されます。

  • ノートブックの「Prepare batch output location」(バッチ出力先を準備する)セクションを実行します。

バッチ予測リクエストを送信する

バッチ予測リクエストを行うには、ソースモデル ID、入力ソース、Vertex AI がバッチ予測結果を保存する出力先を指定します。

詳細については、「バッチ予測 API」のページをご覧ください。コンソール(https://console.cloud.google.com/vertex-ai/batch-predictions)でもステータスを確認できます。

  • ノートブックの「Send a batch prediction request」(バッチ予測リクエストを送信する)セクションを実行します。
注: バッチ予測が完了するまで数分かかる場合があります。

バッチ予測の結果を取得する

バッチ予測タスクが完了すると、リクエストで指定した出力先に予測の出力が保存されます。batch_job.dest.bigquery_uribatch_job.dest.gcs_uri でも使用できます。

出力例:

{"status": "", "processed_time": "2024-11-13T14:04:28.376+00:00", "request": {"contents": [{"parts": [{"file_data": null, "text": "List objects in this image."}, {"file_data": {"file_uri": "gs://cloud-samples-data/generative-ai/image/gardening-tools.jpeg", "mime_type": "image/jpeg"}, "text": null}], "role": "user"}], "generationConfig": {"temperature": 0.4}}, "response": {"candidates": [{"avgLogprobs": -0.10394711927934126, "content": {"parts": [{"text": "Here's a list of the objects in the image:\n\n* **Watering can:** A green plastic watering can with a white rose head.\n* **Plant:** A small plant (possibly oregano) in a terracotta pot.\n* **Terracotta pots:** Two terracotta pots, one containing the plant and another empty, stacked on top of each other.\n* **Gardening gloves:** A pair of striped gardening gloves.\n* **Gardening tools:** A small trowel and a hand cultivator (hoe). Both are green with black handles."}], "role": "model"}, "finishReason": "STOP"}], "modelVersion": "gemini-2.0-flash-001@default", "usageMetadata": {"candidatesTokenCount": 110, "promptTokenCount": 264, "totalTokenCount": 374}}}
  • ノートブックの「Retrieve batch prediction results」(バッチ予測結果を取得する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 バッチ予測の結果を取得する

テキスト エンベディングを取得する

embed_content メソッドを使用して、テキスト スニペットのテキスト エンベディングを取得できます。どのモデルも、デフォルトで 768 ディメンションの出力を生成します。ただし、モデルによっては、1768 の範囲で出力の次元数を選択できます。詳細については、Vertex AI テキスト エンベディング API をご覧ください。

  • ノートブックの「Get text embeddings」(テキスト エンベディングを取得する)セクションを実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 テキスト エンベディングを取得する

お疲れさまでした

これで完了です。Google Gen AI SDK の全体像を探り、AI サービスへの接続、さまざまなプロンプトの送信、Gemini モデルから得られる回答の微調整について学びました。また、モデルとのやりとりの管理、コンテキスト キャッシュ保存の使用、さらにはエンベディングの操作といった、より高度な手法も実際に使用してきました。これで、実際のプロジェクトで生成 AI の機能を活用できるようになりました。

次のステップと詳細情報

以下のリソースで Gemini に関する理解を深めましょう。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 5 月 5 日

ラボの最終テスト日: 2025 年 5 月 5 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

前へ 次へ

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
プレビュー