ページの先頭です

ページ内を移動するためのリンク
本文へ (c)

ここから本文です。

開発者のためのVertex AI Gemini実践ガイド

Google Cloud Vertex AI Geminiの認証、利用方法を紹介をします。
ライター:宮田 悠太郎
2020年にネットワンシステムズに入社。ServiceNow製品の担当を経て、現在はAI、Webアプリ開発に従事。

目次

概要

GeminiとはGoogleが開発したテキスト、画像、音声、動画、コードなど、複数の種類のデータを同時に処理・理解することができるマルチモーダル生成AIです。

APIの利用方法について検索をすると、Vertex AIのGeminiの記事、Gemini APIのGeminiの記事の2種類がヒットすると思います。

これらは2つには以下のような違いがあります。

  • Vertex AI: 企業利用に適したエンタープライズ向けのサービスです。SLAやリージョン設定に対応しており、また他のGoogle Cloudサービスとの連携が可能で、プロダクション環境での運用に向いています。
  • Google AI Studio, Gemini API: 試用や学習、プロトタイピングに適した開発者向けの環境、APIです。ブラウザ上で手軽にモデルを試せるため、まずはGeminiの挙動を理解したい場合に便利です。

この記事ではVertex AIのGemini API利用に焦点を絞り、Vertex AI特有の認証方式、Geminiの設定方法、Googleツール群について紹介をします。

Vertex AIにおける認証方式

Vertex AIを利用する際は、Google Cloudのサービスアカウントで認証を行う必要があります。ローカル環境からVertex AIにアクセスする場合、認証方法は主に3つのパターンがあります。

基本的には、1番目のgcloud CLIを使ったADC認証が推奨されています。

ただし、コンテナ環境内で認証を行う必要がある場合や、開発環境の制約によって gcloud をインストールできない場合は、2番目・3番目の認証方法を選択することで対応できます。

いずれの方法でも、事前にGoogle Cloud上でサービスアカウントを作成しておくことが前提となります。

gcloud CLIを使ったADC認証

gcloud CLIを使って、ユーザ認証、もしくはサービスアカウント認証を行う方法です。

ローカル環境にgcloudをインストールし、gcloud auth application-default login コマンドを実行して、設定を行います。

gcloudインストール方法
https://docs.cloud.google.com/sdk/docs/install?hl=en#linux

gcloudの設定方法
https://docs.cloud.google.com/docs/authentication/set-up-adc-local-dev-environment?hl=ja

サービスアカウントキーを使った認証

サービスアカウントからサービスアカウントキーを発行し、それを利用して認証を行う方法です。

鍵の発行

以下の参考リンクに従って、サービスアカウントキーの発行を行います。

参考
https://docs.cloud.google.com/iam/docs/keys-create-delete?hl=ja#iam-service-account-keys-create-console

ローカル環境側の設定(Linux)

  1. ダウンロードした鍵を適当なディレクトリに保管します。
  2. ディレクトリのパスを「GOOGLE_APPLICATION_CREDENTIALS」という環境変数に格納します。
    例:GOOGLE_APPLICATION_CREDENTIALS="/home/user/dev/key.json"
  3. SDKから利用する場合、SDKが自動で2番で設定した環境変数を元に鍵ファイルを参照してくれます。

APIキー認証

サービスアカウントが紐づいたAPIキーを利用する方法です。

以下の参考リンクに従って、APIキーを作成します。作成したAPIキーをライブラリの初期化時にセットすることで利用できます。

参考: https://cloud.google.com/vertex-ai/generative-ai/docs/start/api-keys?hl=ja&usertype=standard

Geminiの設定

TypeScript(JavaScript)からGeminiを利用する方法を、コードサンプルとともにライブラリ初期化、モデルの選定、プロンプト、コンフィグの設定を紹介していきます。

環境とライブラリ

  • 実行環境: Deno
  • 必要ライブラリ: google/genai

参考
https://ai.google.dev/gemini-api/docs/text-generation?hl=ja

ライブラリの初期化

ライブラリの初期化について紹介します。

Vertex AI の Gemini を利用する場合は、Vertex AI 用のパラメータを true に設定してください。これ以外の点については、基本的な使い方はほぼ Gemini API と同様です。

なお、初期化時の設定内容はご利用の認証方式によって異なります。詳しい手順は、各認証方式のガイドに沿って設定を行ってください。

ADC, サービスアカウントキーの場合
https://cloud.google.com/vertex-ai/generative-ai/docs/start/quickstart?usertype=adc&hl=ja#node.js-gen-ai-sdk

APIキーの場合
https://cloud.google.com/vertex-ai/generative-ai/docs/start/quickstart?usertype=apikey&hl=ja#node.js-gen-ai-sdk

projectは自身のvertex aiプロジェクト名を記載してください。locationはvertex aiのリージョンを記載します。Globalで良い場合は"global"と記載してください。

リージョンに関しての詳しい情報は以下を参照してください。

参考: https://docs.cloud.google.com/vertex-ai/generative-ai/docs/learn/locations?hl=ja

モデル

現在提供されている最新のGeminiモデルは、Gemini 2.5 Pro、Gemini 2.5 Flash、Gemini 2.5 Liteの3種類です。なお、Gemmaモデルなどの一部モデルは「Model Garden」から別途デプロイが必要で、利用するSDKも異なります。

各モデルは性能と価格のバランスが異なります。

Pro:最も高い知能性能を備えたハイエンドモデル。価格も最上位です。
Flash:応答速度とコストのバランスに優れた中位モデル。
Lite:軽量でコストを抑えたエントリーモデル。

モデルを利用する際は、対象となるモデルのIDを指定が必要です。(例: Gemini 2.5 Pro -> gemini-2.5-pro)

利用できるモデルの詳細は以下のリンクを参照してください。

参考
https://docs.cloud.google.com/vertex-ai/generative-ai/docs/models?hl=ja

プロンプト

生成AIに渡すプロンプト構造について紹介します。

生成AIへの入力は、基本的に「role(役割)」と「parts(内容)」の組み合わせで構成します。roleには、ユーザー側の発話を示す「user」と、AIの応答を示す「assistant」を指定します。partsには、テキストのほか、ファイル、画像、動画など多様な形式のコンテンツを含めることができます。

この組み合わせを複数個繋げることでメッセージの履歴(メッセージヒストリー)を構築でき、過去のやり取りを踏まえた連続性のある対話が可能になります。

ファイル送信

Vertex AIでは、ファイルの渡し方としてインライン、Google Cloud Storageの2通りが利用できます。※Gemini APIで利用できる「File API」は、Vertex AIでは利用できませんのでご注意ください。

インライン送信はファイルをBase64形式にエンコードしてリクエストに含める方法です。実装がシンプルで小さなファイルの送信に向いています。 一方で、送信可能なサイズに上限があるため、大容量の動画や大きなPDFには不向きです。

Google Cloud Storage(GCS)は事前にファイルをGCSへアップロードし、そのURI(例:gs://bucket-name/path/to/file.jpg)をGeminiに渡します。大きなファイルの取り扱いに適しており、動画や大容量PDFを扱う場合はこちらの方法をおすすめします。また画像、動画、音声、テキスト(PDF、TXT)の送信に対応しています。 詳しくは参考リンクを参照してください。

参考
https://docs.cloud.google.com/vertex-ai/generative-ai/docs/multimodal/document-understanding?hl=ja

各種設定

Geminiでは検閲、思考度、ツールなどを設定することができます。

検閲の設定はSafety Settingで設定を行うことができます。嫌がらせ、不適切なワードなどの出力のブロックレベルを設定することができます。

参考
https://ai.google.dev/gemini-api/docs/safety-settings?hl=ja

思考度は回答の質に大きく影響する重要な設定です。有効にするとモデルが内部で「深く考える」プロセスを実行できるようになります。

Thinking Budgetsを調節することで設定を行うことができます。Thinking Budget は「思考」プロセスで使用できるトークン量を指します。デフォルトでは動的思考(モデルが思考のタイミングや量を自動調整)が有効となっています。

参考
https://ai.google.dev/gemini-api/docs/thinking?hl=ja

コードサンプル

以下は実際に上記の設定を適用したコードの例です。

ツールについて

Geminiでは様々なツールを利用することができます。Geminiにおけるツールは2種類あります。つ目は「Function Calling(関数呼び出し)」です。自分で作成した関数、APIをGeminiが取捨選択して自動的に実行してくれます。2つ目はGoogleが提供する「Tools」です。Geminiが生成したコードを実際に実行して結果を出力してくれるツールやGoogle検索を行うツールがあります。

この章では2つ目のGoogleが用意したツール群を紹介していきます。

コード実行

コード実行はプロンプトの内容に従って、Geminiがコードを生成し、さらにそれを実際に実行して結果を出力してくれるツールです。またCSVファイルなどを渡す(インライン入力のみ)ことができ、分析などにも利用することができます。

参考
https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/code-execution?hl=ja

コードサンプル

実行結果

-----出力テキスト-----

there are non-text parts executableCode,codeExecutionResult in the response, returning concatenation of all text parts. Please refer to the non text parts for a full response from model.

The columns in the CSV file are: * `animal_id` * `common_name` * `scientific_name` * `class` * `order` * `family` * `conservation_status` * `habitat` * `diet` * `lifespan_years` * `weight_kg` * `length_cm` * `continent` * `nocturnal` * `domesticated`

-----実行結果-----

['animal_id', 'common_name', 'scientific_name', 'class', 'order', 'family', 'conservation_status', 'habitat', 'diet', 'lifespan_years', 'weight_kg', 'length_cm', 'continent', 'nocturnal', 'domesticated']

-----実行されたコード-----

import pandas as pd
import io
csv_data = """animal_id,common_name,scientific_name,class,order... """

df = pd.read_csv(io.StringIO(csv_data))
column_names = df.columns.tolist()
print(column_names)

Google検索

Google検索はGoogleSearchツールを設定することで利用することができ、プロンプトの内容に従って、生成AIが自動的に検索を実行し、検索結果を元に回答を生成してくれます。 また利用した参照元のURL(Grounding Metadata)も取得することができます。

もしも一件だけURLを参照したい場合には、UrlContextツールがおすすめです。プロンプトの中にURLを埋め込んでおけば、そのURLを自動的に検索、参照して回答を生成してくれます。

参考
https://docs.cloud.google.com/vertex-ai/generative-ai/docs/grounding/grounding-with-google-search?hl=ja

コードサンプル

実行結果

-----出力テキスト-----
Geminiの最新モデルは、Gemini 2.5シリーズです。 このシリーズには、いくつかの主要なモデルが含まれています。
* **Gemini 2.5 Pro**:最も高度な推論能力を持つモデルであり、複雑な問題解決に特化しています。テキスト、オーディオ、画像、ビデオ、コードリポジトリなど、さまざまな情報源から膨大なデータセットと困難な問題を理解することができます。
* **Gemini 2.5 Flash**:価格性能の面で優れたモデルであり、幅広い機能を提供します。大規模な処理、低レイテンシー、高ボリュームのタスクに適しています。
* **Gemini 2.5 Flash Image**:高度な画像生成および編集モデルで、複数の画像を1つの画像にブレンドしたり、キャラクターの一貫性を維持したり、自然言語を使用してターゲットを絞った変換を行ったりする機能を提供します。
* **Gemini 2.5 Computer Use model**:2025年10月7日にリリースされた、Gemini 2.5 Proの視覚理解および推論能力を基盤とした専門モデルです。ユーザーインターフェースと対話できるエージェントを構築することを可能にし、ウェブおよびモバイルの制御ベンチマークで優れた性能を発揮します。 これらのモデルは、推論プロセスを改善し、応答前に思考することによって、パフォーマンスと精度が向上しているとされています。

-----参照リンク-----

まとめ

今回は、Google Cloud Vertex AIにおけるGeminiの認証方法や利用手順についてご紹介しました。筆者自身がVertex AIのGeminiを活用する中でつまずいたポイント、知見を整理してお伝えすることができたのかなと思います。

今回紹介したGeminiを活かして、生成AIを使ったアプリケーション開発などに活かして頂ければと思います。今後も、Geminiの画像生成、動画生成などの他の機能の実装例を紹介していきます。

※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。

RECOMMEND