🆚

GeminiのVertex AI版を初めて使いたい人のためのGoogle Cloudの基礎知識

2025/02/08に公開

さきほどAIハッカソン用の記事を書いたのですが、実は提出の直前までVertexじゃないほうのGemini APIを使っていたので、Vertex AI版Geminiの使い方についてメモを残そうと思います。

https://zenn.dev/kusuke/articles/6a869635709b59

Gemini APIは2つある

本人に聞いてみた

ということで、Gemini APIは2つあります。AI Studio版とVertex AI版です。

CahtGPTがOpenAI版とAzure版があるように、ClaudeがAnthropic版とAWS Bedrock版があるように(これら2つは運営会社ごと違うけど)Geminiにも2種類あるのです。

企業で使ったりする場合は、Vertex版を使うことが多いですね。

Vertex AIを使うにはGoogle Cloudを使おう

Vertex AIはGoogle Cloud内の一製品なので、Google Cloudのプロジェクトを開設する必要があります。
今回のお話の概念図

今回の手順としては、Google Cloudのサインアップ、クレカの登録、プロジェクトの作成、Vertex AIの有効化、Google環境以外ではサービスアカウントの発行とダウンロードの手順でできます。

https://zenn.dev/protoout/articles/46-google-cloud-registration

https://zenn.dev/ryukou_nakano/articles/4cd6dbfd9d4824

基本的な登録はこちらの記事を見ていただくとして、登録が終わったら上部の検索窓にVertex AIを入力して画面を開き「有効化」のようなボタンを押すと、当該プロジェクトにおいてVertex AIまわりの機能がオンになります。

APIキーの代わりにサービスアカウントで認証を行う

Vertex AIの場合は、APIキーの代わりにサービスアカウントというもので認証を行います。本番環境がCloud RunなどGoogle Cloudの場合は、いい感じで認証されるので原則何もしなくても使えます。ローカルでの開発や別環境からリクエストを送る場合は、サービスアカウントの秘密鍵をダウンロードして使う必要があります。

Google Cloudコンソール左側のメニューで「APIとサービス」→「認証情報」を開き、サービスアカウントのところで新規作成します。これはようはbot用アカウントみたいなもんです。適当に名前を決めて、メールアドレス形式のアカウントを発行します。途中のステップで権限を付けるところがありますので、「Vertex AIユーザー」権限を付けるとGemini APIが叩けるようになります。

なお、権限をつけ忘れた際は、左側のメニューから「IAMと管理」→「IAM」の画面を開き、当該サービスアカウントの右側の鉛筆マークからロール(権限)を追加することができます。

JSON鍵のセットの仕方

さて、サービスアカウントを作ったら、鍵をダウンロードする必要があります。もう一度「APIとサービス」→「認証情報」から作成したサービスアカウントの詳細をひらき、真ん中くらいにある「鍵」のタブからJSON形式でダウンロードします。このファイルは取扱注意なのでGithubなどにコミットしないようにしましょう。

鍵を使った認証情報の指定方法はメジャーなやり方だと2つあって、環境変数に「ファイルの場所」をセットする方法を、鍵の中身自体を読ませる方法です。ローカルだと前者が楽で、lambdaなど外部のコードだと後者が楽かもしれません。

Node.jsの場合以下のような書き方です。

ファイルの場所を渡す:

export GOOGLE_APPLICATION_CREDENTIALS=path/to/credential.json && npm run dev

これで、Vertex AIのSDKが勝手にこのファイルを読みに行って認証してくれます。

ファイルの中身を渡す

明示的に渡すにはこんな感じです。

import serviceAccount from './service-account.json' assert { type: 'json' };
const vertex_ai = new VertexAI({
    project: 'YOUR_PROJECT_ID',
    location: 'us-central1',
    googleAuthOptions: { credentials: serviceAccount },
});

その他

gemini-2.0-flash-expなど、asia-northeast1で使えないものがちょくちょくありますので、悩んだらus-central1にしてみましょう。モデル一覧はここにありますが、叩いてみてmodel not foundのエラーが来たらまだそのリージョンにはないということです。

https://ai.google.dev/gemini-api/docs/models/gemini?hl=ja

それでは、がんばってVertex AIを活用しましょう!

Discussion