
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Set up the notebook
/ 10
Interact with the model
/ 15
Configure and control the model
/ 15
Manage the model interaction
/ 20
Function calling
/ 10
Use context caching
/ 10
Retrieve batch prediction results
/ 10
Get text embeddings
/ 10
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 Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Google Cloud コンソールのナビゲーション メニュー()で、[Vertex AI] > [ワークベンチ] の順にクリックします。
Workbench インスタンスの JupyterLab インターフェースが新しいブラウザタブで開きます。
ノートブック ファイルを開き、ライブラリをインポートしてモデルを選択します。
[Select Kernel] ダイアログで、使用可能なカーネルのリストから [Python 3] を選択します。
ノートブックの以下のセクションを実行します。
[Project ID] に
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Vertex AI の AI モデルと API の全体に関する詳細は、「Google のモデル」と「Model Garden」をご覧ください。
generate_content
メソッドを使用して、プロンプトに対する回答を生成します。generate_content
にテキストを渡し、.text
プロパティを使用して回答のテキスト コンテンツを取得できます。
プロンプト リクエストに含められるのはテキスト、PDF ドキュメント、画像、音声、動画です。取得できる回答はテキストまたはコードです。
ファイルの URL をリクエストの Part.from_uri
でモデルに直接渡すこともできます。
システム指示を使用してモデルの動作を制御できます。システム指示を設定すると、タスクを理解するための追加のコンテキストがモデルに提供され、よりカスタマイズされた回答が得られます。また、ユーザー インタラクションをガイドラインに準拠させることができます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
モデルに送信する呼び出しの一つひとつに、モデルがどのように回答を生成するかを制御するパラメータ値を組み込むことができます。詳しくは、「パラメータ値を試す」をご覧ください。
Gemini API で提供されている安全フィルタは、特定の種類のコンテンツを制限または許可するように複数のフィルタ カテゴリにわたって調整できます。これらのフィルタを使用して、ユースケースに適切なコンテンツとなるように調整できます。詳しくは、「安全フィルタを構成する」のページをご覧ください。
モデルに対してリクエストを行うと、コンテンツが分析され、安全性評価が割り当てられます。生成されたコンテンツの安全性評価は、モデルの回答をプリントすることで確認できます。この例をご覧ください。
Gemini API を使って、マルチターンの会話を自由形式で行うことができます。
Gemini API の生成制御機能を使用すると、モデルの出力を構造化された形式に制限できます。スキーマは Pydantic モデルまたは JSON 文字列として指定できます。
Python 辞書でレスポンス スキーマを定義することもできます。使用できるのは以下のフィールドに限られます。他のフィールドはすべて無視されます。
enum
items
maxItems
nullable
properties
required
この例では、商品レビューデータを分析し、主要なエンティティを抽出し、感情分類(多岐選択)を実行し、追加の説明を提示し、結果を JSON 形式で出力するようモデルに指示します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
デフォルトでは、モデルは生成プロセス全体が完了した後に回答を返します。generate_content_stream
メソッドを使用して、回答を生成と同時にストリーミングすることもできます。モデルはひとまとまりの内容が生成されるたびに回答を返します。
client.aio
モジュールを使用して非同期リクエストを送信できます。このモジュールによって、client
で使用できる類似の非同期メソッドがすべて公開されます。
たとえば、client.aio.models.generate_content
は client.models.generate_content
の非同期バージョンです。
Gemini API にリクエストを送信する前に、count_tokens
メソッドを使用して入力トークンの数を計算できます。詳細については、「トークンの一覧表示とカウント」のページをご覧ください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
関数呼び出しを使用することで、ユーザー プロンプトに対する応答の際に使用可能なツールを用意してモデルに渡すことができます。コード内で関数を記述し、その記述をリクエストで言語モデルに渡します。モデルからのレスポンスには、説明に対応する関数の名前と、その関数を呼び出す引数が含まれます。
関数呼び出しのその他の例については、こちらのノートブックをご覧ください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
コンテキスト キャッシュ保存を使用すると、よく使用する入力トークンを専用キャッシュに保存し、その後のリクエストで参照できるようになります。これにより、同じトークンセットをモデルに繰り返し渡す必要がなくなります。
注: コンテキスト キャッシュ保存は、修正版の安定したモデル(gemini-2.0-flash-001
など)でのみ使用できます。バージョンの接尾辞(例: -001
)を含める必要があります。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
オンラインによる回答の取得(同期)では、1 回につきリクエストの入力が 1 つに制限されるのに対し、Vertex AI の Gemini API を使用したバッチ予測では、多数のリクエストを 1 回のバッチ リクエストで Gemini に送信できます。リクエストが行われると、モデルによる回答が Cloud Storage または BigQuery のストレージ出力先に非同期で入力されます。
一般的に、バッチ予測の方がオンライン予測よりも効率的で費用対効果が高くなるのは、遅延の影響を受けにくい大量の入力内容を処理する場合です。
バッチ リクエストを入力する際、予測用のモデルに送信するアイテムを指定します。
Gemini のバッチ リクエストは、BigQuery ストレージのソースと Cloud Storage のソースに対応しています。バッチ入力の形式に関する詳細は、バッチテキスト生成のページをご覧ください。
このラボでは、Cloud Storage を例として使用します。Cloud Storage 入力の要件は次のとおりです。
us-central1
モデルに送信するリクエストごとに、モデルがどのように回答を生成するのかを制御するパラメータを組み込むことができます。Gemini のパラメータに関する詳細は、「パラメータ値を試す」のページをご覧ください。
これは、入力 JSONL ファイル batch_requests_for_multimodal_input_2.jsonl
内のリクエストの一例です。
バッチ予測タスクが完了すると、リクエストで指定した出力先に出力が保存されます。
出力先は、Cloud Storage または BigQuery URI 接頭辞の形式で指定します。たとえば、gs://path/to/output/data
や bq://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 バケットが作成されます。
バッチ予測リクエストを行うには、ソースモデル ID、入力ソース、Vertex AI がバッチ予測結果を保存する出力先を指定します。
詳細については、「バッチ予測 API」のページをご覧ください。コンソール(https://console.cloud.google.com/vertex-ai/batch-predictions)でもステータスを確認できます。
バッチ予測タスクが完了すると、リクエストで指定した出力先に予測の出力が保存されます。batch_job.dest.bigquery_uri
や batch_job.dest.gcs_uri
でも使用できます。
出力例:
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
embed_content
メソッドを使用して、テキスト スニペットのテキスト エンベディングを取得できます。どのモデルも、デフォルトで 768 ディメンションの出力を生成します。ただし、モデルによっては、1
~ 768
の範囲で出力の次元数を選択できます。詳細については、Vertex AI テキスト エンベディング API をご覧ください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
これで完了です。Google Gen AI SDK の全体像を探り、AI サービスへの接続、さまざまなプロンプトの送信、Gemini モデルから得られる回答の微調整について学びました。また、モデルとのやりとりの管理、コンテキスト キャッシュ保存の使用、さらにはエンベディングの操作といった、より高度な手法も実際に使用してきました。これで、実際のプロジェクトで生成 AI の機能を活用できるようになりました。
以下のリソースで Gemini に関する理解を深めましょう。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2025 年 5 月 5 日
ラボの最終テスト日: 2025 年 5 月 5 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください