Gemini AI Chat アプリを使用して、Chat の会話内容に基づいて質問に回答できます

このチュートリアルでは、応答する Google Chat アプリを作成する方法について説明します 生成 AI によって、Chat スペースでの会話に基づいて質問が Gemini を搭載した Vertex AI を活用した AI です。Chat アプリは Google Workspace Events API と Pub/Sub を組み合わせて質問を認識して回答 Chat スペースにリアルタイムで投稿。 言及されていません。

Chat アプリは、スペースで送信されたすべてのメッセージを データソースとナレッジベースです。誰かが質問すると、 Chat アプリは、以前に共有された回答を確認し、 1 になります。回答が見つからない場合は、回答不可と表示されます。それぞれの答えで、 ユーザーは、アクセサリのアクション ボタンをクリックしてスペースの管理者に名前リンクを付け、 確認してください。Google Chat アプリは Gemini AI を使用して スペースでの会話で継続的にトレーニングを行うため、ナレッジベースを拡大している 表示されます。

新入社員のオンボーディングにおける Chat アプリの機能 およびサポート スペース:

  • AI ナレッジ アシスタント アプリについて言及すると、アプリがスペースに追加されます。
    図 1: Charlie は、AI ナレッジ アシスタントの Chat アプリを Chat スペースに追加します。
  • ダナさんが質問します。
    図 2.ダナさんは、会社がスピーキング トレーニングを提供しているかどうかを尋ねます。
  • AI ナレッジ アシスタントの Chat アプリが質問に回答します。
    図 3.AI ナレッジ アシスタントの Chat アプリは、Gemini を使用して Vertex AI にプロンプトを入力することで、Chat スペースの会話履歴に基づいて Dana の質問に答え、その回答を共有します。

前提条件

目標

  • 生成 AI を使用して Chat 用アプリを構築 Chat スペースで共有された知識に基づいて質問に回答する 使用できます。
  • 生成 AI を活用: <ph type="x-smartling-placeholder">
      </ph>
    • 従業員からの質問を検出して回答する。
    • Chat での進行中の会話から継続的に学習する 選択します。
  • Chat スペースで実際にメッセージを確認、返信する Chat アプリが直接アクセスできないときでも、 送信されます。
  • Firestore データベースへの書き込みや読み取りによってメッセージを永続化します。
  • Chat スペースに名前リンクを付けて、コラボレーションを促進する 質問に対する回答が見つからなかった場合にマネージャーに報告します。

アーキテクチャ

次の図は、Google Workspace と Compute Engine の AI ナレッジ アシスタントで使用される Google Cloud リソース Chat アプリ。

AI ナレッジ アシスタントの Chat アプリのアーキテクチャ図

AI ナレッジ アシスタントのチャットアプリは次のように動作します。

  • ユーザーが AI ナレッジ アシスタントの Chat アプリを追加する 次のタスクを行います。

    1. Chat アプリは、 その権限を Chat スペースに追加したユーザーが 認証と認可の 2 つがあります。

    2. Chat アプリは、スペースのメッセージを Chat API の spaces.messages.list メソッドを呼び出す 取得したメッセージを Firestore データベースに保存します。

    3. Chat アプリは Google Workspace Events API の subscriptions.create メソッドを使用して、 イベントをリッスンします。「 サブスクリプションの通知エンドポイントは、Pub/Sub トピックで、 Eventarc による Chat アプリへのイベント転送。

    4. Chat アプリは紹介メッセージを投稿します。 できます。

  • Chat スペースのユーザーが次のメッセージを投稿しました。

    1. Chat アプリがリアルタイムでメッセージを受信する Pub/Sub トピックから取り出します

    2. Chat アプリがメッセージを Firestore に追加する データベースです

      ユーザーが後でメッセージを編集または削除した場合、 Chat アプリが更新または削除されたイベントを受信する その後、Firestore でメッセージを更新または削除し、 データベースです

    3. Chat アプリが Vertex AI にメッセージを送信する 説明します。

      1. プロンプトは、Gemini を使用する Vertex AI に対し、メッセージに 質問が含まれているとします。存在する場合、Gemini は質問の内容に基づいて Firestore に保存された Chat スペースのメッセージ履歴に基づく Google Chat アプリがメッセージを Chat スペース。一致していない場合は、返信しないでください。

      2. Gemini を使用する Vertex AI が質問に回答すると、 Chat アプリは、 Google Cloud コンソールで spaces.messages.create メソッドを呼び出して アプリ認証を使用した Chat API。

        Gemini を使用する Vertex AI が質問に答えられない場合は、 Chat アプリは その質問に対する答えが見つからないというメッセージが 履歴が表示されます。

        メッセージには、ユーザーが操作できるアクセサリの操作ボタンが常に含まれている クリックすると、Chat 用アプリが スペースの管理者に @ メンションして回答を依頼する。

  • Chat アプリは、プロジェクトからライフサイクル通知を受信します。 Google Workspace Events API を介して 有効期限が近づいています:

    1. Chat アプリから、 それには、次のように subscriptions.patch メソッドを呼び出します。 Google Workspace Events API。
  • Chat 用アプリが Chat から削除されて、 スペース:

    1. Chat アプリは、 次のように、subscriptions.delete メソッドを呼び出す Google Workspace Events API。

    2. Chat アプリによって、削除された Chat が データを取得します。

AI ナレッジ アシスタントの Chat アプリで使用されているプロダクトを確認する

AI ナレッジ アシスタントの Chat アプリは 次の Google Workspace および Google Cloud プロダクト:

  • Gemini を使用した Vertex AI API: Gemini を活用した生成 AI プラットフォーム。AI ナレッジ アシスタント Chat アプリは Gemini で Vertex AI API を使用して、 従業員からの質問を認識、理解、回答する能力を養います。
  • Chat API: メッセージの受信と応答を行う Google Chat アプリを開発するための API メッセージなどのチャット インタラクション イベント。AI Chat アプリでは Chat API を使用して次のことができます。 <ph type="x-smartling-placeholder">
      </ph>
    • Chat から送信されたインタラクション イベントを受信して応答します。
    • スペースで送信されたメッセージを一覧表示する。
    • スペースにユーザーの質問への回答を投稿する。
    • 表示方法を決定する属性を設定します 名前やアバター画像などのチャット。
  • Google Workspace Events API: この API を使用すると、イベントのサブスクライブや、 通知設定を変更することもできます。「 チャットアプリは Google Workspace Events API を使用して、 質問を検出して回答できるように、Chat スペースに 言及されていません。
  • Firestore: サーバーレスのドキュメント データベース。AI ナレッジ アシスタント Chat アプリは Firestore を使用してメッセージに関するデータを保存します 送信できるようになります。
  • Pub/Sub: Pub/Sub は非同期でスケーラブルなメッセージング サービスで、 メッセージを処理するサービスからメッセージを生成するサービス。「 AI ナレッジ アシスタントのチャットアプリは、Pub/Sub を使用して サブスクリプション イベントを受信できます。
  • Eventarc: Eventarc を使用すると、イベント ドリブンなアーキテクチャを 基盤となるインフラストラクチャの実装、カスタマイズ、メンテナンス。AI ナレッジ アシスタントの Chat アプリで Eventarc を使用して Pub/Sub から Chat スペースにイベントをルーティングし、 サブスクリプション イベントを受信して処理する Cloud Functions の関数。
  • Cloud Functions: 軽量のサーバーレス コンピューティング サービスで、 Chat に応答できる単一目的のスタンドアロン関数 サーバーやランタイムを管理する必要がない、インタラクションとサブスクリプションのイベント できます。AI ナレッジ アシスタントの Chat アプリ 次の 2 つの Cloud Functions の関数を使用します。 <ph type="x-smartling-placeholder">
      </ph>
    • app: Chat から送信される HTTP エンドポイントをホストする インタラクション イベントをコンピューティング プラットフォームとして提供し、 これらのイベントを処理して応答します
    • eventsApp: Chat スペースを受信して処理する メッセージなどのイベントに関する 分析情報が得られます
    で確認できます。 Cloud Functions では、次の Google Cloud プロダクトを使用して、 コンピューティング リソースをホストします。 <ph type="x-smartling-placeholder">
      </ph>
    • Cloud Build: 継続的インテグレーション、デリバリー、デプロイのためのフルマネージド プラットフォーム 自動ビルドを実行するアプリです
    • Cloud Run: コンテナ化アプリを実行するためのフルマネージド環境。

環境を準備する

このセクションでは、Google Cloud プロジェクトを作成して構成する方法について説明します。 Chat アプリ。

Google Cloud プロジェクトを作成する

Google Cloud コンソール

  1. Google Cloud コンソールで、メニュー に移動します。 &gt; IAM と管理 &gt; [プロジェクトを作成] をクリックします。

    [プロジェクトの作成] に移動

  2. [プロジェクト名] フィールドに、プロジェクト用のわかりやすい名前を入力します。

    省略可: プロジェクト ID を編集するには、[編集] をクリックします。プロジェクト ID は変更できません そのため、有効期間中にニーズを満たす ID を選択してください。 できます。

  3. [場所] フィールドで [参照] をクリックして、 できます。[選択] をクリックします。 <ph type="x-smartling-placeholder">
  4. [作成] をクリックします。Google Cloud コンソールで [ダッシュボード] ページに移動し、プロジェクトが作成される 示されます

gcloud CLI

次のいずれかの開発環境で、Google Cloud コンソールに CLI(gcloud):

  • Cloud Shell: gcloud CLI でオンライン ターミナルを使用する Cloud Shell をアクティブにします。
    Cloud Shell をアクティブにする
  • ローカルシェル: ローカル開発環境を使用するには、 インストール初期化 使用できます。
    Cloud プロジェクトを作成するには、gcloud projects create コマンドを使用します。
    gcloud projects create PROJECT_ID
    PROJECT_ID は、作成するプロジェクトの ID を設定して置き換えます。

Cloud プロジェクトの課金を有効にする

<ph type="x-smartling-placeholder">

Google Cloud コンソール

  1. Google Cloud コンソールで [お支払い] に移動します。[ メニュー &gt; [お支払い] &gt; [マイ プロジェクト] を選択します。

    [マイ プロジェクトの課金] に移動

  2. [組織を選択] で、関連付けられている組織を選択します。 Google Cloud プロジェクトです
  3. プロジェクトの行で、[アクション] メニューを開く (), [お支払い情報を変更] をクリックし、 Cloud 請求先アカウント。
  4. [アカウントを設定] をクリックします。

gcloud CLI

  1. 使用可能な請求先アカウントを一覧表示するには、次のコマンドを実行します。
    gcloud billing accounts list
  2. 請求先アカウントを Google Cloud プロジェクトにリンクします。
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    次のように置き換えます。

    • PROJECT_ID は、プロジェクトのプロジェクト ID です。 課金を有効にする Cloud プロジェクト。
    • BILLING_ACCOUNT_ID は、リンクする請求先アカウント ID です。 Google Cloud プロジェクトです

API を有効にする

Google Cloud コンソール

  1. Google Cloud コンソールで、Google Chat API、Vertex AI API、 Cloud Functions API、Firestore API、Cloud Build API Pub/Sub API、Google Workspace Events API、Eventarc API Cloud Run Admin API です。

    API を有効にする

  2. 正しい [次へ] をクリックします。

  3. 正しい API を有効にしていることを確認し、[有効にする] をクリックします。

gcloud CLI

  1. 必要に応じて、現在の Cloud プロジェクトをプロジェクト、 作成:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID は、プロジェクトのプロジェクト ID に置き換えます。 作成しました。

  2. Google Chat API、Vertex AI API、Cloud Functions API を有効にする Firestore API、Cloud Build API、Pub/Sub API Google Workspace Events API、Eventarc 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 \
    workspaceevents.googleapis.com \
    eventarc.googleapis.com \
    run.googleapis.com
    

認証と権限付与の設定

認証と認可によって、 Google Workspace と Google Workspace の Chat 用アプリ アクセス リソース Google Cloud です。

このチュートリアルでは、Google Chat アプリを内部で公開して、 プレースホルダ情報を使用できます。公開する前に、 外部で変更する場合は、プレースホルダ情報を以下に置き換えます。 同意画面に実際の情報が入力されています。

  1. Google Cloud コンソールで メニュー &gt; API とサービス &gt; OAuth 同意画面

    OAuth 同意画面に移動

  2. [ユーザーの種類] で [内部] を選択し、[作成] をクリックします。

  3. [アプリ名] に「AI knowledge assistant」と入力します。

  4. [User support email] で、自分のメールアドレスまたは適切な できます。

  5. [デベロッパーの連絡先情報] にメールアドレスを入力します。

  6. [保存して次へ] をクリックします。

  7. [スコープを追加または削除] をクリックします。パネルが表示され、スコープのリストが表示されます。 Cloud プロジェクトで有効にした各 API の Cloud Identity ドメインです。

  8. [スコープを手動で追加] に、次のスコープを貼り付けます。

    • https://www.googleapis.com/auth/chat.messages
  9. [Add to Table] をクリックします。

  10. [更新] をクリックします。

  11. [保存して次へ] をクリックします。

  12. アプリ登録の概要を確認し、[ダッシュボードに戻る] をクリックします。

OAuth クライアント ID を作成する

  1. Google Cloud コンソールで メニュー &gt; API とサービス &gt; [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] をクリックします。 &gt; OAuth クライアント ID

  3. [アプリケーションの種類] をクリックします。 &gt; [ウェブ アプリケーション] をクリックします。

  4. [名前] フィールドに、認証情報の名前を入力します。この名前は 表示されます。

  5. [承認済みのリダイレクト URI] の下の [URI を追加] をクリックします。

  6. [URI 1] に次のように入力します。

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    次のように置き換えます。

    • REGION: Cloud Functions の関数のリージョン(us-central1 など)。 後で 2 つの Cloud Functions の関数を作成するときに、 この値を設定します。
    • PROJECT_ID: Cloud プロジェクトのプロジェクト ID 表示されます。
  7. [作成] をクリックします。

  8. [OAuth クライアントを作成しました] ウィンドウで [JSON をダウンロード] をクリックします。

  9. ダウンロードしたファイルに client_secrets.json という名前を付けて保存します。後で Cloud Storage バケットを作成する際、 2 つの Cloud Functions 関数に渡す場合、それぞれの関数に client_secrets.json ファイルを含めます。 説明します。

  10. [OK] をクリックします。

Pub/Sub トピックを作成する

Pub/Sub トピックは Google Workspace Events API を使用して Chat のイベントに登録 Chat アプリにリアルタイムで通知したり、 あります。

Pub/Sub トピックの作成方法は次のとおりです。

Google Cloud コンソール

  1. Google Cloud コンソールで メニュー &gt; [Pub/Sub]。

    [Pub/Sub] に移動

  2. [トピックを作成] をクリックします。

  3. [トピック ID] に「events-api」と入力します。

  4. [デフォルトのサブスクリプションを追加する] の選択を解除します。

  5. [暗号化] で、[Google が管理する暗号鍵] を選択します。

  6. [作成] をクリックします。Pub/Sub トピックが表示されます。

  7. この Pub/Sub トピックと Google Workspace Events API が機能するには、 Chat の IAM ユーザーに Pub/Sub トピック:

    1. [events-api] パネルの [権限] で、 プリンシパルを追加します

    2. [プリンシパルの追加] の [新しいプリンシパル] に、次のように入力します。 chat-api-push@system.gserviceaccount.com

    3. [ロールの割り当て] の [ロールを選択] で、[Pub/Sub] を選択します。 &gt; Pub/Sub パブリッシャー

    4. [保存] をクリックします。

gcloud CLI

  1. トピック ID events-api の Pub/Sub トピックを作成します。

    gcloud pubsub topics create events-api
    
  2. Chat IAM ユーザーに投稿を許可する Pub/Sub トピック:

    gcloud pubsub topics add-iam-policy-binding events-api \
    --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \
    --role='roles/pubsub.publisher'
    

Firestore データベースを作成する

データの保持と取得を行う Firestore データベース Chat スペース内のデータ(メッセージなど)を収集します。お客様がデータを定義しない モデルです。これはサンプルコードで model/message.js によって暗黙的に設定され、 services/firestore-service.js ファイル。

AI ナレッジ アシスタントのチャットアプリのデータベースでは、 をベースとした NoSQL データモデル ドキュメント 整理 collections。詳しくは以下をご覧ください。 Firestore データモデル

次の図は、AI ナレッジ アシスタントの概要を示しています。 Chat アプリのデータモデル:

Firestore データベースのデータモデル。

ルートには 2 つのコレクションが含まれます。

  1. spaces。各ドキュメントは、Google Cloud プロジェクト内で Chat 用アプリが追加されます。それぞれのメッセージは messages サブコレクション内のドキュメントで表されます。

  2. users。各ドキュメントは、 Chat スペースに転送します。

コレクション、ドキュメント、フィールドの定義を表示する

spaces

AI ナレッジ アシスタントの Chat アプリを含む Chat スペース。

フィールド
Document IDString
特定のスペースの一意の ID。Chat API でのスペースのリソース名の一部。
messagesSubcollection of Documents (messages)
Chat スペースで送信されたメッセージ。Firebase の messageDocument ID に対応します。
spaceNameString
Chat API 内のスペースの一意の名前。Chat API のスペースのリソース名に対応します。

messages

Chat スペースで送信されたメッセージ。

フィールド
Document IDString
特定のメッセージの一意の ID。
nameString
Chat API 内のメッセージの一意の名前。Chat API でのメッセージのリソース名に対応します。
textString
メッセージのテキスト本文。
timeString (Timestamp format)
メッセージが作成された時刻。

users

AI ナレッジ アシスタントの Chat アプリを Chat スペースに追加したユーザー。

フィールド
Document IDString
特定ユーザーの一意の ID。
accessTokenString
OAuth 2.0 ユーザー認証で付与されたアクセス トークンで、Google Workspace API の呼び出しに使用されます。
refreshTokenString
OAuth 2.0 ユーザー認証中に付与された更新トークン。

Firestore データベースの作成方法は次のとおりです。

Google Cloud コンソール

  1. Google Cloud コンソールで メニュー &gt; [Firestore]。

    Firestore に移動

  2. [データベースを作成] をクリックします。

  3. [Firestore モードの選択] で [ネイティブ モード] をクリックします。

  4. [続行] をクリックします。

  5. データベースを構成します。

    1. [データベースに名前を付ける] で、[データベース ID] は (default) のままにします。

    2. [ロケーション タイプ] で [リージョン] を選択します。

    3. [リージョン] で、データベースのリージョンを指定します(例: us-central1。最適なパフォーマンスを得るには、同じものまたは近くのものを選択してください Chat アプリの Cloud Functions の関数として格納されます。

  6. [データベースを作成] をクリックします。

gcloud CLI

  • ネイティブ モードで Firestore データベースを作成します。

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native
    

    LOCATION は、Firestore の名前に置き換えます。 リージョン(例: us-central1 として。最適なパフォーマンスを得るには、同じものまたは近くのものを選択してください Chat アプリの Cloud Functions の関数として格納されます。

Chat アプリを作成してデプロイする

Google Cloud プロジェクトの作成と構成が完了したので、Google Cloud プロジェクト、 Chat 用アプリをデプロイします。このセクションでは、 次のとおりです。

  1. 2 つの Cloud Functions の関数を作成してデプロイする。Chat で Pub/Sub イベントに応答する 2 つのイベントがあります。
  2. Google Chat API で Chat アプリを作成してデプロイする できます。

Cloud Functions の関数を作成してデプロイする

このセクションでは、次の名前の Cloud Functions の関数を 2 つ作成してデプロイします。

  • app: Chat 用アプリの Chat から受信したイベントに HTTP として応答するコード できます。
  • eventsApp: Chat スペースを受信して処理します。 Pub/Sub からのメッセージなどの イベントを検知します

これらの Cloud Functions の関数から構成される AI ナレッジ アシスタント Chat アプリのアプリケーション ロジック。

必要に応じて、Cloud Functions を作成する前に GitHub でホストされているサンプルコードをよく理解してください。

GitHub で表示

app を作成してデプロイする

Google Cloud コンソール

  1. コードを GitHub から ZIP ファイルとしてダウンロードします。

    zip ファイルをダウンロード

  2. ダウンロードした zip ファイルを展開します。

    抽出されたフォルダに Google Workspace のサンプル全体が含まれる できます。

  3. 抽出したフォルダの google-chat-samples-main/node/ai-knowledge-assistant ディレクトリ。

  4. google-chat-samples/node/ai-knowledge-assistant ディレクトリで、次の操作を行います。 次のコマンドを実行すると、ダウンロードした client_secrets.json ファイルを追加できます。 OAuth クライアント ID 認証情報の作成 認証と認可に使用します。

  5. ai-knowledge-assistant フォルダの内容を zip に圧縮します。 表示されます。

    zip ファイルのルート ディレクトリには、次のものが含まれている必要があります。 ファイルとフォルダ:

    • .gcloudignore
    • .gitignore
    • README.md
    • deploy.sh
    • env.js
    • events_index.js
    • http_index.js
    • index.js
    • client_secrets.json
    • package-lock.json
    • package.json
    • controllers/
    • model/
    • services/
    • test/
  6. Google Cloud コンソールで メニュー &gt; [Cloud Functions]。

    Cloud Functions に移動

    使用する Google Cloud プロジェクトが、 Chat アプリが選択されています。

  7. [ 関数を作成] をクリックします。

  8. [関数の作成] ページで、関数を設定します。

    1. [環境] で [第 2 世代] を選択します。
    2. [関数名] に「app」と入力します。
    3. [リージョン] で、us-central1 などのリージョンを選択します。この地域 承認されたリダイレクト URI で設定したリージョンと一致する必要があります。 作成された OAuth クライアント ID 認証情報 認証と認可に使用します。
    4. [トリガーのタイプ] で、[HTTPS] を選択します。
    5. [認証] で、[ 未認証の呼び出しを許可する
    6. [次へ] をクリックします。
  9. [ランタイム] で、[Node.js 20] を選択します。

  10. [エントリ ポイント] で、デフォルトのテキストを削除し、 app

  11. [ソースコード] で [ZIP アップロード] を選択します。

  12. [転送先バケット] で、 作成 または、バケットを選択します。

    1. [探す] をクリックします。
    2. バケットを選択します。
    3. [選択] をクリックします。

    Google Cloud が ZIP ファイルをアップロードし、コンポーネント ファイルを抽出 作成します。次に、Cloud Functions はコンポーネント ファイルを 説明します。

  13. ZIP ファイルで、GitHub からダウンロードした zip ファイルをアップロードします。 展開されて再圧縮されたもの:

    1. [探す] をクリックします。
    2. ZIP ファイルに移動して選択します。
    3. [開く] をクリックします。
  14. [デプロイ] をクリックします。

    [Cloud Functions の詳細] ページが開き、関数が表示されます。 進行状況インジケーターが 2 つあります。1 つはビルド用、もう 1 つはサービス用です。 進行状況インジケーターが両方とも消えて、チェックマークに変わるとき 関数がデプロイされ準備が整いました

  15. サンプルコードを編集して定数を設定します。

    1. [Cloud Functions の関数の詳細] ページで、[編集] をクリックします。
    2. [次へ] をクリックします。
    3. [ソースコード] で [インライン エディタ] を選択します。
    4. インライン エディタで env.js ファイルを開いて編集します。 <ph type="x-smartling-placeholder">
        </ph>
      1. project の値を Cloud プロジェクト ID。
      2. location の値を Cloud Functions の関数の regionus-central1 など。
  16. [デプロイ] をクリックします。

gcloud CLI

  1. GitHub からコードのクローンを作成します。

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. この AI 知識のコードが含まれているディレクトリに切り替えます。 アシスタント Chat アプリ:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. google-chat-samples/node/ai-knowledge-assistant ディレクトリで、次の操作を行います。 次のコマンドを実行すると、ダウンロードした client_secrets.json ファイルを追加できます。 OAuth クライアント ID 認証情報の作成 認証と認可に使用します。

  4. env.js ファイルを編集して環境変数を設定します。

    1. project の値を Cloud プロジェクトに設定する あります。
    2. location の値を Cloud Functions の関数の region(例: us-central1
  5. Cloud Functions の関数を Google Cloud にデプロイします。

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated
    

    REGION は、Cloud Functions の関数の リージョン env.js ファイルに設定されたもの(us-central1 など)と一致させます。

eventsApp を作成してデプロイする

Google Cloud コンソール

  1. Google Cloud コンソールで メニュー &gt; [Cloud Functions]。

    Cloud Functions に移動

    使用する Google Cloud プロジェクトが、 Chat アプリが選択されています。

  2. [ 関数を作成] をクリックします。

  3. [関数の作成] ページで、関数を設定します。

    1. [環境] で [第 2 世代] を選択します。
    2. [関数名] に「eventsApp」と入力します。
    3. [リージョン] で、us-central1 などのリージョンを選択します。この地域 承認されたリダイレクト URI で設定したリージョンと一致する必要があります。 作成された OAuth クライアント ID 認証情報 認証と認可に使用します。
    4. [トリガーのタイプ] で、[Cloud Pub/Sub] を選択します。
    5. [Cloud Pub/Sub トピック] で、作成する Pub/Sub トピック名を選択します。 形式は次のとおりです。 projects/PROJECT/topics/events-api。ここで PROJECT は、Cloud プロジェクト ID です。
    6. Service account(s) might not have enough permissions to deploy the function with the selected trigger.」で始まるメッセージが表示された場合は、[Grant All] をクリックします。
    7. [次へ] をクリックします。
  4. [ランタイム] で、[Node.js 20] を選択します。

  5. [エントリ ポイント] で、デフォルトのテキストを削除し、 eventsApp

  6. [ソースコード] で、[Cloud Storage の ZIP] を選択します。

  7. [Cloud Storage のロケーション] で [参照] をクリックします。

  8. 作成時に ZIP ファイルをアップロードしたバケットを選択します app Cloud Functions の関数。

  9. アップロードした ZIP ファイルをクリックします。

  10. [選択] をクリックします。

  11. [デプロイ] をクリックします。

    [Cloud Functions の詳細] ページが開き、関数が表示されます。 進行状況インジケーターが 3 つ表示されます。1 つはビルド、もう 1 つはサービス、 もう 1 つはトリガーです進行状況インジケーターが 3 つすべて消えたら チェックマークに変わると、関数がデプロイされ準備完了になります。

  12. サンプルコードを編集して定数を設定します。

    1. [Cloud Functions の関数の詳細] ページで、[編集] をクリックします。
    2. [次へ] をクリックします。
    3. [ソースコード] で [インライン エディタ] を選択します。
    4. インライン エディタで env.js ファイルを開いて編集します。 <ph type="x-smartling-placeholder">
        </ph>
      1. project の値を Cloud プロジェクト ID。
      2. location の値を Cloud Functions の関数の regionus-central1 など。
  13. [デプロイ] をクリックします。

gcloud CLI

  1. gcloud CLI でまだ表示されていない場合は、このディレクトリに移動します。 コードの記述元となる チャットアプリを使用して クローンを作成します。

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. google-chat-samples/node/ai-knowledge-assistant ディレクトリで、次の操作を行います。 次のコマンドを実行すると、ダウンロードした client_secrets.json ファイルを追加できます。 OAuth クライアント ID 認証情報の作成 認証と認可に使用します。

  3. env.js ファイルを編集して環境変数を設定します。

    1. project の値を Cloud プロジェクトに設定する あります。
    2. location の値を Cloud Functions の関数の region(例: us-central1
  4. Cloud Functions の関数を Google Cloud にデプロイします。

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api
    

    REGION は、Cloud Functions の関数の リージョン env.js ファイルに設定されたもの(us-central1 など)と一致させます。

Cloud Functions の関数 app のトリガー URL をコピーします

次のセクションでは、app Cloud Functions の関数のトリガー URL を貼り付けます。 Google Chat の設定に Google Cloud コンソールで Chat アプリを構成します。

Google Cloud コンソール

  1. Google Cloud コンソールで メニュー &gt; [Cloud Functions]。

    Cloud Functions に移動

  2. Cloud Functions のリストの [名前] 列で、 app

  3. [トリガー] をクリックします。

  4. URL をコピーします。

gcloud CLI

  1. Cloud Functions の app 関数を記述します。

    gcloud functions describe app
    
  2. url プロパティをコピーします。

Google Cloud コンソールで Chat 用アプリを構成する

このセクションでは、Google Chat で Chat API を Chat 用アプリに関する情報が表示された Google Cloud コンソール。 (Chat 用アプリの名前を含む) Chat 用アプリの Cloud Functions のトリガー URL Chat のインタラクション イベントを送信する関数。

  1. Google Cloud コンソールで [メニュー] をクリックします。 &gt; その他のプロダクト &gt; Google Workspace &gt; プロダクト ライブラリ &gt; Google Chat API &gt; [管理] &gt; [設定] をクリックします。

    Chat API の構成に移動

  2. [アプリ名] に「AI knowledge assistant」と入力します。

  3. [アバターの URL] に「https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg」と入力します。

  4. [説明] に「Answers questions with AI」と入力します。

  5. [インタラクティブ機能を有効にする] をクリックしてオンにします。

  6. [機能] で [スペースとグループの会話に参加する] を選択します。

  7. [接続設定] で [アプリの URL] を選択します。

  8. [アプリの URL] に、app Cloud Functions の関数のトリガー URL を貼り付けます。 形式 https://REGION-PROJECT_ID.cloudfunctions.net/app ここで、REGION は Cloud Functions の関数のリージョンです(例: us-central1)。 PROJECT_ID は、プロジェクトのプロジェクト ID です。 作成しました。

  9. [公開設定] で [ 組織内の特定のユーザーやグループにこの Chat 用アプリの使用を許可する Workspace ドメイン] を選択し、メールアドレスを入力します。

  10. 必要に応じて、[ログ] で [エラーを Logging にロギング] を選択します。

  11. [保存] をクリックします。設定の保存に関するメッセージが表示されます。 Chat 用アプリは テストの準備が整いました

Chat アプリをテストする

AI ナレッジ アシスタントのチャットアプリを 質問することで、Chat スペースに Chat アプリで回答できます。

AI ナレッジ アシスタントをテストする方法 Chat アプリ:

  • AI ナレッジ アシスタントの Chat アプリを スペースに関連する質問を行い、 できます。
  • Chat スペースを作成し、使用するメッセージをいくつか投稿します データソースですメッセージの送信元: Gemini を使用します。 Answer 20 common onboarding questions employees ask their teams. または ここから数段落を貼り付けて Chat での開発の概要ガイド それについて質問できます

このチュートリアルでは、Chat スペースを作成して、そのプロンプトを テキストから Chat の概要ガイドをご覧ください。

  1. Google Chat を開きます。

    Google Chat にアクセス

  2. Chat スペースを作成するには:

    1. [ 新しいチャット] をクリックします。 &gt; [スペースを作成] をタップします。

    2. [スペース名] に「Testing AI knowledge assistant app」と入力します。

    3. [このスペースの用途] で [コラボレーション] を選択します。

    4. [アクセス設定] で、スペースにアクセスできるユーザーを選択します。

    5. [作成] をクリックします。

  3. データソースとして使用するメッセージを追加します。

    1. ウェブブラウザで 「Chat での開発」の概要 ご覧ください

    2. ガイドのコンテンツをコピーして Chat スペースに貼り付けます。 表示されます。

  4. AI ナレッジ アシスタントの Chat アプリを追加するには:

    1. メッセージの入力バーに「@AI knowledge assistant」と入力し、 AI Knowledge Assistant を選択して enter を押します。

    2. AI ナレッジ アシスタントを追加するかどうかを尋ねるメッセージが表示されます スペースに追加できます。[スペースに追加] をクリックします。

    3. 初めて Chat 用アプリを追加する場合 付与するには、そのグループに対して認証と認可を構成する必要があります。 Chat アプリ:

      1. [構成] をクリックします。
      2. 新しいブラウザ ウィンドウまたはタブが開き、 Google アカウント。テストに使用するアカウントを選択します。
      3. AI ナレッジ アシスタントに付与する権限を確認する Chat 用アプリのリクエスト。付与するには、 許可
      4. You may close this page now.」というメッセージが表示されます。 ブラウザ ウィンドウまたはタブを閉じて、 Chat スペース。
  5. 質問する:

    1. メッセージの入力バーに「 What are Google Chat apps?

    2. AI ナレッジ アシスタントの Chat アプリが回答します。

    3. (省略可)回答が正確でない場合や十分でない場合、AI の 会話履歴を改善するには、 ヘルプをご覧ください。 AI ナレッジ アシスタントの Chat アプリでは、 スペースの管理者に質問し、回答を求めます。次回は Chat アプリの AI ナレッジ アシスタント 答えは?

考慮事項、代替アーキテクチャの選択、次のステップ

このセクションでは、AI ナレッジ アシスタントによる Chat 用アプリを構築できます。

Firestore、Cloud Storage、または Chat API でのリスト メッセージの呼び出し

このチュートリアルでは、 Firestore データベースで 1 つのメッセージを処理する Messagelist メソッドを呼び出す Chat API を使用してリソースを作成し、 Chat アプリが質問に応答します。さらに、 list messages が繰り返し発生すると、 API 割り当て上限に達しました。

ただし、Chat スペースの会話履歴が Firestore の使用に費用がかかる可能性があります。

<ph type="x-smartling-placeholder"></ph> Cloud Storage Firestore の代わりになりますAI ナレッジ アシスタントは アクティブになっている場合は、Chat 用アプリが独自のオブジェクトを取得し、 スペースのすべてのメッセージを含むテキスト ファイルです。Google Cloud の このアプローチでは、テキスト ファイルの全コンテンツを Vertex AI にフィードでき、 同時に使用できますが、デメリットは、生成 AI と生成 AI の Cloud Storage 内のオブジェクトには追加できないため、 交換するだけです。セキュリティ関連の変更や 更新することもできますが、バッチ アップデートや メッセージ履歴を定期的に(たとえば週に 1 回)確認できます。

トラブルシューティング

Google Chat アプリまたは card がエラーを返した場合、 Chat のインターフェースに「エラーが発生しました」というメッセージが表示されている。 または「リクエストを処理できません」が表示されます。場合によっては、Chat の UI が エラー メッセージは表示されませんが、Chat 用アプリまたは 予期しない結果が生じた場合たとえば、カード メッセージに 表示されます。

Chat UI にエラー メッセージが表示されない場合がありますが、 エラーの修正に役立つ、わかりやすいエラー メッセージとログデータ Chat 用アプリのエラーロギングが有効になっている場合。表示のヘルプについては、 エラーの修正について詳しくは、このモジュールの Google Chat のエラーのトラブルシューティングと修正

クリーンアップ

サービス アカウントに対する Google Cloud アカウントへの課金を回避するために、 リソースがある場合は、その Terraform 構成ファイルを できます。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。[ メニュー &gt; IAM と管理者 &gt; [リソースの管理] をクリックします。

    <ph type="x-smartling-placeholder"></ph> Resource Manager に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[ 削除します。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックして削除します。 できます。