このソリューションでは、Vertex AI と Gemini を使用して Gmail メッセージを分析し、感情に基づいてラベル付けします。
コーディング レベル: 中級
所要時間: 30 分
プロジェクト タイプ: Google Workspace アドオン
-
図 1: Sentiment Analysis アドオンは、Gmail にサイドバーを表示します。ユーザーは Gemini にプロンプトを送信して、感情に基づいてメッセージを分析し、ラベルを適用できます。 -
図 2: アドオンが Gmail メッセージに「中立的なトーン 😐」というラベルを付けます。 -
図 3: アドオンが Gmail メッセージに「HAPPY TONE 😊」というラベルを付けます。 -
図 4: アドオンが Gmail メッセージに「UPSET TONE 😡」というラベルを付けます。
目標
- ソリューションの機能を理解します。
- ソリューション内で Google サービスが何を行うかを理解する。
- 環境を設定します。
- Google Apps Script プロジェクトを設定します。
- スクリプトを実行します。
このソリューションについて
このソリューションは、Gmail メッセージの感情に基づいてラベルを適用する Google Workspace アドオンです。アドオンは、メッセージの内容を分析するために、Vertex AI を使用して Gemini 2.5 Flash モデルにプロンプトを送信し、次のいずれかの感情を返します。
- 好ましい
- 陰性
- どちらとも言えない
Gemini からの回答に基づいて、アドオンは対応する Gmail ラベルをメッセージに適用します。
Vertex AI API へのリクエストを制限するため、このアドオンは Gmail ユーザーの受信トレイにある最新の 10 件のメッセージのみを分析し、ラベルを適用します。割り当てと上限の詳細については、Vertex AI のドキュメントをご覧ください。
仕組み
このソリューションは Google Apps Script で構築されており、次の Google サービスとプロダクトを使用します。
- Vertex AI API - Gemini 2.5 Flash モデルに Gmail メッセージのコンテンツを分析して感情を特定するよう指示します。
Apps Script サービス:
- Gmail サービス - Gmail メッセージのラベルを取得して適用します。必要に応じて、アドオンのテスト用のサンプル メッセージを作成します。
- カードサービス - Gmail のサイドバーに表示されるアドオンのユーザー インターフェースを作成します。
- URL Fetch サービス - 感情分析のために Vertex AI API に接続します。
- スクリプト サービス - Vertex AI API を呼び出すために、
getOAuthToken
メソッドを使用してアドオンの OAuth 2.0 アクセス トークンを取得します。
前提条件
- 課金が有効になっている Google Cloud プロジェクト。アクセス権があるかどうかを確認するには、課金を有効にするために必要な権限をご覧ください。
環境の設定
このセクションでは、Google Cloud コンソールと Apps Script で環境を構成して設定する方法について説明します。
Google Cloud コンソールで Cloud プロジェクトを構成する
このセクションでは、Cloud プロジェクトで Vertex AI API を有効にして OAuth 同意画面を構成する方法について説明します。
Vertex AI API を有効にする
Google Cloud コンソールで、Google Cloud プロジェクトを開き、Vertex AI API を有効にします。
正しい Cloud プロジェクトで API を有効にしていることを確認し、[次へ] をクリックします。
正しい API を有効にしていることを確認し、[有効にする] をクリックします。
OAuth 同意画面を構成する
Google Workspace アドオンには同意画面の構成が必要です。アドオンの OAuth 同意画面を構成すると、Google がユーザーに表示する内容が定義されます。
- Google Cloud コンソールで、メニュー > > [ブランディング] に移動します。
- をすでに構成している場合は、[ブランディング]、[ユーザー]、[データアクセス] で次の OAuth 同意画面の設定を構成できます。[ まだ設定されていません] というメッセージが表示された場合は、[使ってみる] をクリックします。
- [アプリ情報] の [アプリ名] に、アプリの名前を入力します。
- [ユーザー サポートメール] で、ユーザーが同意について問い合わせる際に使用するサポートのメールアドレスを選択します。
- [続行] をクリックします。
- [対象] で [内部] を選択します。
- [続行] をクリックします。
- [連絡先情報] で、プロジェクトに対する変更の通知を受け取るメールアドレスを入力します。
- [続行] をクリックします。
- [完了] で、Google API サービスのユーザーデータに関するポリシーを確認し、同意する場合は [Google API サービス: ユーザーデータに関するポリシーに同意します] を選択します。
- [続行] をクリックします。
- [作成] をクリックします。
- 現時点では、スコープの追加はスキップできます。今後、Google Workspace 組織外で使用するアプリを作成する場合は、[ユーザータイプ] を [外部] に変更する必要があります。次に、アプリに必要な認可スコープを追加します。詳細については、OAuth 同意画面を構成するの完全なガイドをご覧ください。
Apps Script プロジェクトを作成して設定する
アドオン用の Apps Script プロジェクトを作成して設定するには、次の手順を行います。
次のボタンをクリックして、Gemini と Vertex AI を使用した Gmail の感情分析 Apps Script プロジェクトを開きます。
Apps Script プロジェクトを開く[概要]
をクリックします。概要ページで [コピーを作成]
をクリックします。
Cloud プロジェクトの番号を取得します。
- Google Cloud コンソールで、メニュー アイコン > [IAM と管理] > [設定] に移動します。
- [プロジェクト番号] フィールドで、値をコピーします。
Cloud プロジェクトを Apps Script プロジェクトに接続します。
- コピーした Apps Script プロジェクトで、[プロジェクトの設定]
をクリックします。
- [Google Cloud Platform(GCP)プロジェクト] で、[プロジェクトを変更] をクリックします。
- [GCP プロジェクト番号] に、Cloud プロジェクト番号を貼り付けます。
- [プロジェクトを設定] をクリックします。
- コピーした Apps Script プロジェクトで、[プロジェクトの設定]
アドオンをテストする
アドオンを試すには、テスト デプロイをインストールしてから、Gmail でアドオンを開きます。
- Apps Script のテスト用デプロイを作成してインストールします。
- コピーした Apps Script プロジェクトで、[エディタ] をクリックします。
Code.gs
ファイルを開き、[実行] をクリックします。メッセージが表示されたら、スクリプトを承認します。- [Deploy](デプロイ)> [Test deployments](テスト デプロイ)をクリックします。
- [インストール] > [完了] をクリックします。
Gmail を起動します。
右側のサイドバーで、アドオン
Sentiment Analysis を開きます。メッセージが表示されたら、アドオンを承認します。
省略可: アドオンでテストするメッセージを作成するには、[サンプル メールを生成] をクリックします。受信トレイに 3 件のメッセージが表示されます。表示されない場合は、ページを更新してください。
ラベルを追加するには、[メールを分析] をクリックします。
アドオンは受信トレイの最新の 10 件のメッセージを確認し、メッセージの内容に基づいて次のいずれかのラベルを適用します。
- HAPPY TONE 😊
- ニュートラルなトーン 😐
- UPSET TONE 😡
コードを確認する
このソリューションの Apps Script コードを確認します。
ソースコードを表示
コード.gs
Cards.gs
Gmail.gs
Vertex.gs
appsscript.json
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。