コーディング レベル: 上級
所要時間: 30 分
プロジェクト タイプ: カスタム関数
概要
Vertex AI エージェントと Gemini モデルを搭載したバインドされた Apps Script プロジェクトとして使用される Google スプレッドシートのファクト チェック カスタム関数。
このサンプルでは、次の 2 つの強力な AI リソースを Google スプレッドシートで直接使用する方法を示します。
- Vertex AI Agent Engine にデプロイされた ADK エージェントを使用して、高度なマルチツール、マルチステップの推論機能を備えた AI エージェント。
- Vertex AI の Gemini モデルを使用して高度な理解、生成、要約を行うための AI モデル。
目標
- ソリューションの機能を理解します。
- ソリューションの実装方法を理解する。
- Vertex AI エージェントをデプロイします。
- スクリプトを設定します。
- スクリプトを実行します。
このソリューションについて
スプレッドシートのカスタム関数は FACT_CHECK
という名前で、エンドツーエンド ソリューションとして機能します。ステートメントを分析し、最新のウェブ情報を使用して回答の根拠を示し、必要な形式で結果を返します。
- 使用方法:
=FACT_CHECK("Your statement here")
: 簡潔で要約された出力を生成します。- 特定の出力形式の
=FACT_CHECK("Your statement here", "Your output formatting instructions here")
。
- 理由: LLM Auditor ADK AI エージェント(Python サンプル)。
- 出力形式: Gemini モデル。
このソリューションでは、UrlFetchApp を使用して Vertex AI REST API をリクエストします。
アーキテクチャ
次の図は、カスタム関数で使用される Google Workspace と Google Cloud リソースのアーキテクチャを示しています。
前提条件
このサンプルを使用するには、次の前提条件を満たしている必要があります。
- Google アカウント(Google Workspace アカウントの場合、管理者の承認が必要となる可能性があります)。
インターネットにアクセスできるウェブブラウザ。
-
- Python 3.11 以降: インストールについては、Python の公式ウェブサイトの手順に沿って操作してください。
- Python Poetry: インストールについては、Poetry の公式ウェブサイトの手順に沿って操作してください。
- Google Cloud CLI: インストールについては、Google Cloud の公式ウェブサイトの手順に沿って操作してください。
環境を準備する
このセクションでは、Google Cloud プロジェクトを作成して構成する方法について説明します。
Google Cloud プロジェクトを作成する
Google Cloud コンソール
- Google Cloud コンソールで、メニュー > [IAM と管理] > [プロジェクトを作成] に移動します。
-
[プロジェクト名] フィールドに、プロジェクトのわかりやすい名前を入力します。
省略可: プロジェクト ID を編集するには、[編集] をクリックします。プロジェクトの作成後にプロジェクト ID を変更することはできないため、プロジェクトのライフタイムを考慮してニーズに合った ID を指定してください。
- [ロケーション] フィールドで、[参照] をクリックして、プロジェクトの候補となるロケーションを表示します。[選択] をクリックします。
- [作成] をクリックします。Google Cloud コンソールが [ダッシュボード] ページに移動し、数分以内にプロジェクトが作成されます。
gcloud CLI
次のいずれかの開発環境で、Google Cloud CLI(gcloud
)にアクセスします。
-
Cloud Shell: gcloud CLI がすでに設定されているオンライン ターミナルを使用するには、Cloud Shell をアクティブにします。
Cloud Shell をアクティブにする -
ローカルシェル: ローカル開発環境を使用するには、gcloud CLI をインストールして初期化します。
Cloud プロジェクトを作成するには、gcloud projects create
コマンドを使用します。 作成するプロジェクトの ID を設定して、PROJECT_ID を置き換えます。gcloud projects create PROJECT_ID
Cloud プロジェクトに対する課金を有効にする
Google Cloud コンソール
- Google Cloud コンソールで、[お支払い] に移動します。[メニュー] > [お支払い] > [マイ プロジェクト] をクリックします。
- [組織を選択] で、Google Cloud プロジェクトに関連付けられている組織を選択します。
- プロジェクトの行で、[アクション] メニュー( )を開き、[お支払い情報を変更] をクリックして、Cloud 請求先アカウントを選択します。
- [アカウントを設定] をクリックします。
gcloud CLI
- 使用可能な請求先アカウントを一覧表示するには、次のコマンドを実行します。
gcloud billing accounts list
- 請求先アカウントを Google Cloud プロジェクトにリンクします。
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
次のように置き換えます。
PROJECT_ID
は、課金を有効にする Cloud プロジェクトのプロジェクト ID です。BILLING_ACCOUNT_ID
は、Google Cloud プロジェクトにリンクする請求先アカウント ID です。
Vertex AI API を有効にする
Google Cloud コンソール
Google Cloud コンソールで、Vertex AI API を有効にします。
正しい Cloud プロジェクトで Vertex AI API を有効にしていることを確認し、[次へ] をクリックします。
正しい API を有効にしていることを確認し、[有効にする] をクリックします。
gcloud CLI
必要に応じて、現在の Cloud プロジェクトを
gcloud config set project
コマンドで作成したプロジェクトに設定します。gcloud config set project PROJECT_ID
PROJECT_ID は、作成した Cloud プロジェクトのプロジェクト ID に置き換えます。
gcloud services enable
コマンドを使用して Vertex AI API を有効にします。gcloud services enable aiplatform.googleapis.com
Google Cloud コンソールでサービス アカウントを作成する
次の手順に沿って、ロール Vertex AI User
を持つ新しいサービス アカウントを作成します。
Google Cloud コンソール
- Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。
- [サービス アカウントを作成] をクリックします。
- サービス アカウントの詳細を入力し、[作成して続行] をクリックします。
- 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
- [続行] をクリックします。
- 省略可: このサービス アカウントを管理してアクションを実行できるユーザーまたはグループを入力します。詳細については、サービス アカウントの権限借用を管理するをご覧ください。
- [完了] をクリックします。サービス アカウントのメールアドレスをメモします。
gcloud CLI
- サービス アカウントを作成します。
gcloud iam service-accounts create
SERVICE_ACCOUNT_NAME
\ --display-name="SERVICE_ACCOUNT_NAME
" - 省略可: サービス アカウントにロールを割り当て、Google Cloud プロジェクトのリソースへのアクセス権を付与します。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
サービス アカウントが [サービス アカウント] ページに表示されます。次に、サービス アカウントの秘密鍵を作成します。
秘密鍵を作成する
サービス アカウントの秘密鍵を作成してダウンロードする手順は次のとおりです。
- Google Cloud コンソールで、メニュー > [IAM と管理] > [サービス アカウント] に移動します。
- サービス アカウントを選択します。
- [鍵] > [鍵を追加] > [新しい鍵を作成] をクリックします。
- [JSON] を選択し、[作成] をクリックします。
新しい公開鍵と秘密鍵のペアが生成され、新しいファイルとしてパソコンにダウンロードされます。ダウンロードした JSON ファイルを作業ディレクトリに
credentials.json
として保存します。このファイルはこの鍵の唯一のコピーです。キーを安全に保存する方法については、サービス アカウント キーの管理をご覧ください。 - [閉じる] をクリックします。
サービス アカウントの詳細については、Google Cloud IAM ドキュメントのサービス アカウントをご覧ください。
LLM Auditor ADK AI エージェントをデプロイする
まだ行っていない場合は、Google Cloud アカウントで認証し、Google Cloud プロジェクトを使用するように Google Cloud CLI を構成します。
gcloud auth application-default login
gcloud config set project PROJECT_ID
gcloud auth application-default set-quota-project PROJECT_ID
PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。
この GitHub リポジトリをダウンロードする
任意のローカル開発環境で、ダウンロードしたアーカイブ ファイルを抽出し、
adk-samples/python/agents/llm-auditor
ディレクトリを開きます。unzip adk-samples-main.zip
cd adk-samples-main/python/agents/llm-auditor
ADK エージェント専用の新しい Cloud Storage バケットを作成します。
gcloud storage buckets create gs://CLOUD_STORAGE_BUCKET_NAME --project=PROJECT_ID --location=PROJECT_LOCATION
次のように置き換えます。
- CLOUD_STORAGE_BUCKET_NAME は、使用する一意のバケット名に置き換えます。
- PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。
- PROJECT_LOCATION は、作成した Cloud プロジェクトのロケーションに置き換えます。
次の環境変数を設定します。
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=PROJECT_LOCATION
export GOOGLE_CLOUD_STORAGE_BUCKET=CLOUD_STORAGE_BUCKET_NAME
次のように置き換えます。
- CLOUD_STORAGE_BUCKET_NAME は、作成したバケットの名前に置き換えます。
- PROJECT_ID は、作成した Cloud プロジェクトの ID に置き換えます。
- PROJECT_LOCATION は、作成した Cloud プロジェクトのロケーションに置き換えます。
仮想環境から ADK エージェントをインストールしてデプロイします。
python3 -m venv myenv
source myenv/bin/activate
poetry install --with deployment
python3 deployment/deploy.py --create
エージェント ID を取得します。これは、後でカスタム関数を構成するときに必要になります。
python3 deployment/deploy.py --list
サンプルコードを確認する
必要に応じて、新しいスプレッドシートを作成する前に、GitHub でホストされているサンプルコードを確認して、その内容を把握してください。
新しいスプレッドシートで作成して設定する
次のボタンをクリックして、コンテナ バインドの Apps Script プロジェクトを含むサンプル Google スプレッドシートの完全なコピーを作成します。
新しく作成したスプレッドシートで、[拡張機能] > [Apps Script] に移動します。
Apps Script プロジェクトで、[プロジェクトの設定] に移動し、[スクリプト プロパティを編集] をクリックしてから、[スクリプト プロパティを追加] をクリックして、次のスクリプト プロパティを追加します。
LOCATION
は、前の手順で作成した Google Cloud プロジェクトのロケーション(us-central1
など)に置き換えます。GEMINI_MODEL_ID
は、使用する Gemini モデル(gemini-2.5-flash-lite
など)に置き換えます。REASONING_ENGINE_ID
は、前の手順でデプロイした LLM Auditor ADK エージェントの ID(1234567890
など)に置き換えます。SERVICE_ACCOUNT_KEY
は、前の手順でダウンロードしたサービス アカウントの JSON キー({ ... }
など)に置き換えます。
[スクリプト プロパティを保存] をクリックします。
カスタム関数をテストする
- 新しく作成したスプレッドシートに移動します。
- 列 A のステートメントを変更します。
- 列 B の数式が実行され、ファクト チェックの結果が表示されます。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。