GeminiのVertex AI版を初めて使いたい人のためのGoogle Cloudの基礎知識
さきほどAIハッカソン用の記事を書いたのですが、実は提出の直前までVertexじゃないほうのGemini APIを使っていたので、Vertex AI版Geminiの使い方についてメモを残そうと思います。
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環境以外ではサービスアカウントの発行とダウンロードの手順でできます。
基本的な登録はこちらの記事を見ていただくとして、登録が終わったら上部の検索窓に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のエラーが来たらまだそのリージョンにはないということです。
それでは、がんばってVertex AIを活用しましょう!
Discussion