nikkie-ftnextの日記

イベントレポートや読書メモを発信

Vertex AI を使うように Gemini CLI を設定する

はじめに

七尾百合子さん、お誕生日 129日目 おめでとうございます! nikkieです。

Gemini CLI Meetupに参加してきました1
それをきっかけに、Vertex AI を使うように Gemini CLI を設定して使える状態にしました。

目次

将来のGeminiの訓練に使われない設定でGemini CLIを使いたい

※Gemini CLIはインストール済み(=geminiコマンドがPATHにある)を前提にします

Gemini CLI(やGemini)が無料で使えるのは、Googleに訓練データを渡すのと引き換えと理解しています。
すでにClaude Codeを訓練データを渡さない設定で使っていたので、Gemini CLIでも同様の設定をしました。
(Gemini CLIをすぐには使い出せなかったのには、「無料で使える!」が推されすぎていて、この方法を見つけるのに時間がかかったというのもあります)

Vertex AIの従量課金を選びました(スライド5に比較表)

Authentication Setupのドキュメントより (3. Vertex AI)

私は Application Default Credentials (ADC) を使う方法にしています。

  1. gcloud auth application-default login
  2. 2つの環境変数をセット
    • GOOGLE_CLOUD_PROJECT
    • GOOGLE_CLOUD_LOCATION

1は毎回やる必要はないのですが、2でコマンドが長くなる(GOOGLE_GENAI_USE_VERTEXAI=true GOOGLE_CLOUD_PROJECT=... GOOGLE_CLOUD_LOCATION=us-central1 gemini)ため、工夫してみました

PATHスクリプトを置く

工夫を考える中で『マスタリングLinuxシェルスクリプト 第2版』(1.6)を思い出しました。
PATHに以下のスクリプトvgeminiとして置きます。
(私よりシェルスクリプトに詳しい o3-pro に教えてもらっています)

#!/usr/bin/env bash
set -euo pipefail
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT=...
export GOOGLE_CLOUD_LOCATION=us-central1
exec gemini "$@"

これでvgeminiだけで、Vertex AIを使う設定のGemini CLIが起動します。
$@を渡しているので、vgemini --versionvgemini -p こんにちはもサポートします

その他のやり方

私はスクリプトのやり方を試してみたかったので選びましたが、Authentication Setupのドキュメントには他にも方法が載っています。

(1) シェルの設定ファイルで環境変数を設定

like ~/.bashrc, ~/.zshrc, or ~/.profile

(2) .envファイルを配置
Persisting Environment Variables with .env Files

Gemini CLI automatically loads environment variables from the first .env file it finds, using the following search order:

案としては、グローバルの~/.gemini/.env
ただし、まずカレントディレクトリから/の方へ最初に.env見つかるまで設定を読むそうなので、グローバルの設定が読まれなくなることもありそうですね(かといってプロジェクトごとに置くのも煩雑です)

(3) ADCの代わりにAPIキー
Vertex AIはAPIキーを使って認証することもできます。

ただこの方法でもAPIキーを環境変数GOOGLE_API_KEYに指定する必要があります。
私がやるならop runと一緒に2かな

すこーしソースコードリーディング

DeepWikiの助けを借りながら、Vertex AIを使うときにどんな処理をしているのか覗きました。
https://github.com/google-gemini/gemini-cli/blob/v0.1.13/packages/cli/src/config/auth.ts#L26-L38

When using Vertex AI, you must specify either:
GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION environment variables.
GOOGLE_API_KEY environment variable (if using express mode).
Update your environment and try again (no reload needed if using .env)!

終わりに

Gemini CLIをVertex AIの従量課金で使うための設定方法の備忘録でした。
Gemini CLI環境変数を見ますが、その設定方法に工夫の余地があります。

Meetupでは発表を聞きつつ、「この機を逃したらGemini CLIを触る機会がない!」と方法を調べてもいました。
その際に参考になったのはこちらの記事です。

できた後にGemini CLIのドキュメントに当たったことで、設定方法の理解が深まりました〜