このチュートリアルでは、チームがリアルタイムでプロジェクトを管理するために使用できる Google Chat 用アプリを作成する方法について説明します。Chat 用アプリは、Vertex AI を使用して、チームがユーザー ストーリー(チームが開発するソフトウェア システムの機能をユーザーの視点から表したもの)を作成できるようにし、Firestore データベースにストーリーを保持します。
- 
          図 1: Charlie は、Chat スペースでチームと機能開発について話し合っています。プロジェクト管理の Chat 用アプリに言及すると、Chat 用アプリがヘルプを提供します。 
- 
         図 2. /createUserStoryスラッシュ コマンドを使用して、Charlie がストーリーを作成します。
- 
          図 3. プロジェクト管理 Chat 用アプリは、Vertex AI を使用してストーリーの説明を作成し、そのストーリーをスペースで共有します。 
- 
          図 4. Charlie は [編集] をクリックして、ストーリーの詳細を確定します。AI の説明は正確ですが、チャーリーはさらに詳しい情報を知りたいので、[展開] をクリックして、Vertex AI にストーリーの説明に要件を追加してもらいます。Charlie はストーリーを自分に割り当て、ステータスを [開始] に設定し、適切な優先度とサイズを選択して、[保存] をクリックします。 
- 
         図 5. Charlie は、 /manageUserStoriesスラッシュ コマンドを使用して、チームのすべてのユーザー ストーリーをいつでも表示、管理できます。
前提条件
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 次の操作を行うための Google Cloud サービスへのアクセス権: - Google Cloud プロジェクトを作成します。
- Google Cloud 請求先アカウントを Cloud プロジェクトにリンクします。アクセス権があるかどうかを確認するには、課金を有効にするために必要な権限をご覧ください。
- 認証されていない Google Cloud 関数の呼び出しを使用します。これは、Google Cloud 組織がドメイン制限付き共有を使用しているかどうかを確認することで検証できます。 
 - 必要に応じて、Google Cloud 管理者にアクセス権または権限をリクエストします。 
- Google Cloud CLI を使用する場合は、gcloud CLI で動作するように構成された Node.js 開発環境。Node.js 開発環境の設定をご覧ください。 
目標
- アジャイル ソフトウェア プロジェクトを管理する Chat 用アプリを構築します。
- Vertex AI を活用した生成 AI アシストのストーリー作成ツールを使用して、ユーザーがユーザー ストーリーを作成できるようにします。
- ストーリーの説明を生成および再生成します。
- メモから完全な要件にストーリーの説明を拡張します。
- 文法を修正して誤字脱字を修正します。
 
- Firestore データベースに書き込み、そこから読み取ることで、作業を最新の状態に保ちます。
- ユーザーが会話から直接ストーリーを作成、編集、割り当て、開始できるようにすることで、Chat スペースでのコラボレーションを促進します。
使用プロダクト
このプロジェクト管理アプリでは、次の Google Workspace と Google Cloud プロダクトを使用します。
- Chat API: メッセージなどの Chat インタラクション イベントを受信して応答する Google Chat アプリを開発するための API。プロジェクト管理 Google Chat アプリは、Chat API を使用して、Chat から送信されたインタラクション イベントを受信して応答し、名前やアバター画像など、Chat での表示方法を決定する属性を構成します。
- Vertex AI API: 生成 AI プラットフォーム。プロジェクト管理の Google Chat アプリは、Vertex AI API を使用してユーザー ストーリーのタイトルと説明を記述します。
- Firestore: サーバーレスのドキュメント データベース。プロジェクト管理用の Google Chat アプリは、Firebase を使用してユーザー ストーリーに関するデータを保存します。
- Cloud Functions: サーバーやランタイム環境を管理せずに、Chat のインタラクション イベントに応答する単一目的のスタンドアロン関数を作成できる軽量のサーバーレス コンピューティング サービス。プロジェクト管理用の Google Chat 用アプリは、Cloud Functions を使用して、Chat がインタラクション イベントを送信する HTTP エンドポイントをホストし、これらのイベントを処理して応答するロジックを実行するコンピューティング プラットフォームとして使用します。 - Cloud Functions は、次の Google Cloud サービスを使用して、ビルド、インタラクション イベントの処理、コンピューティング リソースのホストを行います。 - Cloud Build: 自動ビルドを実行する、フルマネージドの継続的インテグレーション、デリバリー、デプロイ プラットフォーム。
- Pub/Sub: メッセージを処理するサービスとメッセージを生成するサービスを切り離す、非同期でスケーラブルなメッセージング サービス。
- Cloud Run Admin API: コンテナ化アプリを実行するためのフルマネージド環境。
 
アーキテクチャ
プロジェクト管理用の Google Chat アプリのアーキテクチャは、HTTP エンドポイントで Chat のインタラクション イベントを受信して処理し、Vertex AI を使用してユーザー ストーリーの作成を支援し、ユーザー ストーリーの詳細を Firestore データベースに保存します。次の図は、使用される Google Workspace と Google Cloud リソースのアーキテクチャを示しています。
プロジェクト管理用の Google Chat アプリは次のように動作します。
- ユーザーが Chat でメッセージを送信し、プロジェクト管理 Google Chat 用アプリを直接メッセージで呼び出すか、スペースで名前リンクを指定するか、スラッシュ コマンドを入力します。 
- Chat は、Cloud Functions の HTTP エンドポイントに同期 HTTP リクエストを送信します。 
- プロジェクト管理の Google Chat 用アプリは、HTTP リクエストを処理します。 - Vertex AI は、ユーザー ストーリーの作成または更新を支援します。 
- Firestore データベースは、ユーザー ストーリー データの保存、取得、更新、削除を行います。 
 
- Cloud Functions は HTTP レスポンスを Chat に返し、Chat はメッセージまたはダイアログとしてユーザーに表示します。 
環境を準備する
このセクションでは、Chat 用アプリの 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コマンドを使用します。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 です。
 
API を有効にする
Google Cloud コンソール
- Google Cloud コンソールで、Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Cloud Run Admin API を有効にします。 
- 正しい Cloud プロジェクトで API を有効にしていることを確認し、[次へ] をクリックします。 
- 正しい API を有効にしていることを確認し、[有効にする] をクリックします。 
gcloud CLI
- 必要に応じて、現在の Cloud プロジェクトを - gcloud config set projectコマンドで作成したプロジェクトに設定します。- gcloud config set project PROJECT_ID- PROJECT_ID は、作成した Cloud プロジェクトのプロジェクト ID に置き換えます。 
- gcloud services enableコマンドを使用して、Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Cloud Run Admin API を有効にします。- gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ run.googleapis.com- Cloud Build、Pub/Sub、Cloud Run Admin API は、Cloud Functions の前提条件です。 
認証と認可
このチュートリアルに沿って操作するために、認証と認可の構成は必要ありません。
このチュートリアルでは、Firestore API と Vertex AI API を呼び出すために、Cloud Functions にアタッチされたデフォルトのサービス アカウントで Application Default Credentials を使用します。この設定は必要ありません。本番環境では、通常、サービス アカウントを Cloud Functions に作成して接続します。
Google Chat 用アプリを作成してデプロイする
Google Cloud プロジェクトが作成され、構成されたので、Google Chat 用アプリをビルドしてデプロイする準備ができました。このセクションでは、次の操作を行います。
- ユーザー ストーリーを永続化して取得する Firestore データベースを作成します。
- 必要に応じて、サンプルコードを確認します。
- Chat から HTTP リクエストとして受信したイベントに応答して、Chat 用アプリのコードをホストして実行する Cloud Functions を作成します。
- Google Chat API の構成ページで Google Chat 用アプリを作成してデプロイします。
Firestore データベースを作成する
このセクションでは、ユーザー ストーリーを永続化して取得するための Firestore データベースを作成しますが、データモデルは定義しません。データモデルは、サンプルコードの model/user-story.js ファイルと model/user.js ファイルで暗黙的に設定されます。
プロジェクト管理 Chat 用アプリのデータベースは、 コレクションに整理された ドキュメントに基づく NoSQL データモデルを使用します。詳細については、Firestore データモデルをご覧ください。
次の図は、プロジェクト管理 Google Chat 用アプリのデータモデルの概要を示しています。
ルート コレクションは spaces です。各ドキュメントは、Chat 用アプリがストーリーを作成したスペースを表します。各ユーザー ストーリーは userStories サブコレクションのドキュメントで表され、各ユーザーは users サブコレクションのドキュメントで表されます。
コレクション、ドキュメント、フィールドの定義を表示する
spaces
        Chat 用アプリがストーリーを作成したスペース。
| フィールド | |
|---|---|
| Document ID | Stringストーリーが作成される特定のスペースの一意の ID。Chat API のスペースのリソース名に対応します。 | 
| userStories | Subcollection of Documents (Chat 用アプリとそのユーザーが作成したストーリー。Firebase の userStoriesのDocument IDに対応します。 | 
| users | Subcollection of Documents (user)ストーリーを作成したユーザーまたはストーリーが割り当てられているユーザー。 | 
| displayName | StringChat API のスペースの表示名。ユーザーとのダイレクト メッセージには設定されていません。 | 
userStories
        Chat アプリとそのユーザーが作成したストーリー。
| フィールド | |
|---|---|
| Document ID | StringChat 用アプリとそのユーザーによって作成された特定のユーザー ストーリーの一意の ID。 | 
| assignee | Document (user)ストーリーを完了するために割り当てられたユーザーのリソース名。 usersドキュメントのDocument IDと Chat API のユーザーのリソース名に対応します。 | 
| description | Stringユーザーの視点から見たソフトウェア機能の説明。 | 
| priority | Enum作業を完了する緊急度。指定可能な値は Low、Medium、Highです。 | 
| size | Enum作業量。指定可能な値は Small、Medium、Largeです。 | 
| status | Enum作業のフェーズ。指定可能な値は OPEN、STARTED、COMPLETEDです。 | 
| title | Stringストーリーのタイトル。簡単な概要。 | 
users
        ストーリーを作成したユーザーまたはストーリーが割り当てられているユーザー。
| フィールド | |
|---|---|
| Document ID | String特定のユーザーの一意の ID。Firebase の userStoriesのassignee、および Chat API のユーザーのリソース名に対応します。 | 
| avatarUrl | Stringユーザーの Chat アバター画像をホストする URL。 | 
| displayName | Stringユーザーの Chat の表示名。 | 
Firestore データベースを作成する方法は次のとおりです。
Google Cloud コンソール
- Google Cloud コンソールで、[Firestore] に移動します。[メニュー] > [Firestore] をクリックします。 
- [データベースを作成] をクリックします。 
- [Firestore モードの選択] で、[ネイティブ モード] をクリックします。 
- [続行] をクリックします。 
- データベースを構成します。 - [データベースに名前を付ける] で、[データベース ID] を - (default)のままにします。
- [ロケーション タイプ] で、データベースのリージョン( - us-central1など)を指定します。パフォーマンスを最適化するには、Chat 用アプリの Cloud Functions と同じロケーションまたは近隣のロケーションを選択します。
 
- [データベースを作成] をクリックします。 
gcloud CLI
- gcloud firestore databases createコマンドを使用して、ネイティブ モードの Firestore データベースを作成します。- gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native- LOCATION は、Firestore リージョンの名前( - us-central1など)に置き換えます。
サンプルコードを確認する
必要に応じて、Cloud Functions を作成する前に、GitHub でホストされているサンプルコードを確認して理解してください。
各ファイルの概要は次のとおりです。
- env.js
- : 指定された Google Cloud プロジェクトとリージョンに Chat 用アプリをデプロイするための環境構成変数。このファイル内の構成変数を更新する必要があります。
- package.json、- package-lock.json
- Node.js プロジェクトの設定と依存関係。
- index.js
- Chat 用 Cloud Functions のエントリ ポイント。HTTP リクエストからチャット イベントを読み取り、アプリ ハンドラを呼び出し、HTTP レスポンスを JSON オブジェクトとして投稿します。
- controllers/app.js
- メインのアプリケーション ロジック。Chat 用アプリのメンションとスラッシュ コマンドを処理して、インタラクション イベントを処理します。カードのクリックに応答するために、app-action-handler.jsを呼び出します。
- controllers/app-action-handler.js
- カードのクリックを処理するアプリケーション ロジック Chat のインタラクション イベント。
- services/space-service.js、- services/user-service.js、- services/user-story-service.js
- これらのファイルには、Chat スペース、ユーザー、ユーザー ストーリーの操作に固有のアプリケーション ロジックの部分が含まれています。これらのファイル内の関数は、app.jsまたはapp-action-handler.jsによって呼び出されます。データベース オペレーションを実行するために、これらのファイルの関数はfirestore-service.jsの関数を呼び出します。
- services/firestore-service.js
- データベース オペレーションを処理します。このファイルの関数は、services/space-service.js、services/user-service.js、services/user-story-service.jsによって呼び出されます。
- services/aip-service.js
- 生成 AI テキスト予測の Vertex AI API を呼び出します。
- model/*.js
- これらのファイルには、アプリケーション サービスが関数間でデータを保存して渡すために使用するクラスと列挙型の定義が含まれています。Firestore データベースのデータモデルを設定します。
- views/*.js
- このディレクトリ内の各ファイルは、Chat アプリが カード メッセージまたはダイアログ アクション レスポンスとして Chat に送り返すカード オブジェクトをインスタンス化します。
- views/widgets/*.js
- 各ファイルは、アプリが views/ディレクトリ内のカードを構築するために使用する ウィジェット オブジェクトの型をインスタンス化します。
- test/**/*.test.js
- このディレクトリとそのサブディレクトリ内の各ファイルには、対応する関数、コントローラ、サービス、ビュー、ウィジェットの単体テストが含まれています。プロジェクトのルート ディレクトリで npm run testを実行すると、すべての単体テストを実行できます。
Cloud Functions の関数を作成してデプロイする
このセクションでは、プロジェクト管理 Chat 用アプリのアプリケーション ロジックを含む Cloud Functions の関数を作成してデプロイします。
Cloud Functions は、Chat のインタラクション イベントを含む Chat からの HTTP リクエストに応答して実行されます。実行されると、Cloud Functions コードはイベントを処理し、Chat にレスポンスを返します。Chat は、このレスポンスをメッセージ、ダイアログ、その他のタイプのユーザー インタラクションとしてレンダリングします。該当する場合は、Cloud Functions は Firestore データベースから読み取りまたは書き込みも行います。
Cloud Functions の関数を作成する手順は次のとおりです。
Google Cloud コンソール
- GitHub からコードを zip ファイルとしてダウンロードします。 
- ダウンロードした ZIP ファイルを解凍します。 - 抽出されたフォルダには、Google Workspace サンプル リポジトリ全体が含まれています。 
- 抽出したフォルダで - google-chat-samples-main/node/project-management-app/に移動し、- project-management-appフォルダを zip ファイルに圧縮します。- ZIP ファイルのルート ディレクトリには、次のファイルとフォルダが含まれている必要があります。 - env.js
- README.md
- gcloudignore.text
- package-lock.json
- package.json
- index.js
- model/
- controllers/
- views/
- services/
 
- Google Cloud コンソールで、[Cloud Functions] ページに移動します。 - Chat 用アプリの Google Cloud プロジェクトが選択されていることを確認します。 
- [ 関数を作成] をクリックします。 
- [関数の作成] ページで、関数を設定します。 - [環境] で、[Cloud Run 関数] を選択します。
- [関数名] に「project-management-tutorial」と入力します。
- [リージョン] でリージョンを選択します。
- [認証] で、[未認証の呼び出しを許可] を選択します。
- [次へ] をクリックします。
 
- [ランタイム] で [Node.js 20] を選択します。 
- [エントリ ポイント] で、デフォルトのテキストを削除して - projectManagementChatAppと入力します。
- [ソースコード] で [ZIP アップロード] を選択します。 
- [宛先バケット] で、バケットを作成するか、選択します。 - [探す] をクリックします。
- バケットを選択します。
- [選択] をクリックします。
 - Google Cloud は、このバケットに zip ファイルをアップロードし、コンポーネント ファイルを抽出します。Cloud Functions は、コンポーネント ファイルを Cloud Functions にコピーします。 
- [Zip file] で、GitHub からダウンロードして展開し、再圧縮した zip ファイルをアップロードします。 - [探す] をクリックします。
- zip ファイルに移動して選択します。
- [開く] をクリックします。
 
- [デプロイ] をクリックします。 - [Cloud Functions の詳細] ページが開き、関数が 2 つの進行状況インジケーター(ビルド用とサービス用)とともに表示されます。両方の進行状況インジケーターが消えてチェックマークに置き換わると、関数がデプロイされ、準備が完了します。 
- サンプルコードを編集して定数を設定します。 - [Cloud Functions の詳細] ページで、[編集] をクリックします。
- [次へ] をクリックします。
- [ソースコード] で [インライン エディタ] をオンにします。
- インライン エディタで、env.jsファイルを開きます。
- project-id をクラウド プロジェクト ID に置き換えます。
- 省略可: Cloud Functions のサポートされているロケーションで us-central1 を更新します。
 
- [デプロイ] をクリックします。 
- 関数のデプロイが完了したら、トリガー URL をコピーします。 - [関数の詳細] ページで、[トリガー] をクリックします。
- URL をコピーします。この ID は、次のセクションで Chat 用アプリを構成するときに必要になります。
 
gcloud CLI
- GitHub からコードのクローンを作成します。 - git clone https://github.com/googleworkspace/google-chat-samples.git
- このプロジェクト管理 Chat 用アプリのコードが格納されているディレクトリに切り替えます。 - cd google-chat-samples/node/project-management-app
- env.jsファイルを編集して環境変数を設定します。- project-id は、実際の Google Cloud プロジェクト ID に置き換えます。
- us-central1 は、Google Cloud プロジェクトのロケーションに置き換えます。
 
- Cloud Functions を Google Cloud にデプロイします。 - gcloud functions deploy project-management-tutorial \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=projectManagementChatApp \ --trigger-http \ --allow-unauthenticated- REGION は、インフラストラクチャがホストされている Cloud Functions のロケーション( - us-central1など)に置き換えます。
- 関数のデプロイが完了したら、レスポンスから urlプロパティをコピーします。これは、次のセクションで Google Chat 用アプリを構成するために使用するトリガー URL です。
Google Cloud コンソールで Google Chat アプリを構成する
このセクションでは、Google Cloud コンソールで Chat API を構成する方法について説明します。構成には、Chat アプリの名前、サポートされているスラッシュ コマンド、Chat アプリの Cloud Functions のトリガー URL(Chat インタラクション イベントの送信先)など、Chat 用アプリに関する情報を使用します。
- Google Cloud コンソールで、メニュー > [その他のプロダクト] > [Google Workspace] > [プロダクト ライブラリ] > [Google Chat API] > [管理] > [構成] をクリックします。 
- [アプリ名] に「 - Project Manager」と入力します。
- [アバターの URL] に「 - https://developers.google.com/chat/images/quickstart-app-avatar.png」と入力します。
- [説明] に「 - Manages projects with user stories.」と入力します。
- [インタラクティブ機能を有効にする] 切り替えボタンをクリックしてオンにします。 
- [機能] で、[スペースとグループの会話に参加する] を選択します。 
- [接続設定] で、[HTTP エンドポイント URL] を選択します。 
- [HTTP エンドポイント URL] に、Cloud Functions のデプロイからコピーしたトリガー URL を - https://REGION- -PROJECT_ID- .cloudfunctions.net/project-management-tutorialの形式で貼り付けます。gcloud CLI で Cloud Functions をデプロイした場合、これは- urlプロパティです。
- Chat 用アプリのスラッシュ コマンドを登録します。スラッシュ コマンドを登録するには: - [コマンド] で、[コマンドを追加] をクリックします。
- 次の表で説明するスラッシュ コマンドごとに、[名前]、[コマンド ID]、[説明] を入力し、スラッシュ コマンドが [ダイアログを開く] かどうかを選択して、[完了] をクリックします。 - 名前 - コマンド ID - 説明 - コマンドタイプ - スラッシュ コマンド名 - ダイアログを開く - ユーザー ストーリーを作成する - 1 - 指定したタイトルでストーリーを作成します。 - スラッシュ コマンド - /createUserStory- 選択されていません - ユーザー ストーリー - 2 - ユーザーに割り当てられたすべてのストーリーを一覧表示します。 - スラッシュ コマンド - /myUserStories- 選択されていません - ユーザー ストーリー - 3 - 指定されたストーリーの現在のステータスを表示します。 - スラッシュ コマンド - /userStory- 選択されていません - ユーザー ストーリーを管理する - 4 - ストーリーを編集できるダイアログが開きます。 - スラッシュ コマンド - /manageUserStories- 選択済み - ユーザー ストーリーをクリーンアップする - 5 - スペース内のすべてのストーリーを削除します。 - スラッシュ コマンド - /cleanupUserStories- 選択されていません 
 
- [公開設定] で、[Workspace ドメイン内の特定のユーザーおよびグループにこの Chat 用アプリの利用を許可する] を選択し、メールアドレスを入力します。 
- 必要に応じて、[ログ] で [エラーを Logging に記録する] を選択します。 
- [保存] をクリックします。「構成が保存されました」というメッセージが表示され、Chat 用アプリをテストする準備が整ったことを示します。 
Chat アプリをテストする
プロジェクト管理 Chat 用アプリにメッセージを送信し、スラッシュ コマンドを使用してユーザー ストーリーを作成、編集、削除して、アプリをテストします。
- 信頼できるテスターとして登録した際に指定した Google Workspace アカウントを使用して、Google Chat を開きます。 
- [ 新しいチャット] をクリックします。
- [ユーザーを 1 人以上追加] フィールドに、Chat 用アプリの名前を入力します。
- 結果から Chat 用アプリを選択します。ダイレクト メッセージが開きます。 
- そのアプリの新しいダイレクト メッセージに、「Hello」と入力してenterを押します。プロジェクト管理 Chat 用アプリは、できることの詳細が記載されたヘルプ メニューを返します。
- ストーリーを作成するには、メッセージ バーに /createUserStory Test storyと入力して送信します。プロジェクト管理 Chat 用アプリは、Vertex AI の生成 AI を使用して作成したユーザー ストーリーの詳細を示すカード メッセージで応答します。
- コンソールで Firestore データベースを確認し、Chat 用アプリを追加したスペース、アプリとやり取りしたユーザー、作成したユーザー ストーリーに関するレコードを確認します。 
- Google Chat に戻ります。 
- 必要に応じて、[編集] をクリックしてストーリーを編集します。ストーリーに問題がなければ、[保存] をクリックします。
- アプリでサポートされている各スラッシュ コマンドをテストします。スラッシュ コマンドを表示するには、/と入力するか、Chat 用アプリにメンションします。
- /cleanupUserStoriesスラッシュ コマンドを発行して、テスト ユーザー ストーリーを削除します。または、アプリを削除またはアンインストールします。削除すると、アプリはそのスペースで作成されたすべてのユーザー ストーリーを削除します。
トラブルシューティング
Google Chat 用アプリまたはカードがエラーを返すと、Chat インターフェースに「エラーが発生しました」というメッセージが表示されます。または「リクエストを処理できません。」と表示されることがあります。Chat UI にエラー メッセージが表示されない場合でも、Chat 用アプリやカードで予期しない結果が生じることがあります。たとえば、カード メッセージが表示されないことがあります。
Chat UI にエラー メッセージが表示されない場合でも、Chat 用アプリのエラー ロギングが有効になっている場合は、エラーの修正に役立つ説明的なエラー メッセージとログデータを利用できます。エラーの表示、デバッグ、修正については、Google Chat のエラーのトラブルシューティングと修正をご覧ください。
クリーンアップ
このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、Cloud プロジェクトを削除することをおすすめします。
- Google Cloud コンソールで、[リソースの管理] ページに移動します。メニュー アイコン > [IAM と管理] > [リソースの管理] をクリックします。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。