使用 Gemini AI 即時通訊應用程式,根據即時通訊對話內容回答問題

本教學課程說明如何建構能回答問題的 Google Chat 應用程式 根據 Chat 聊天室對話的生成式 AI 模型 採用 Vertex AI 和 Gemini 的 AI 技術Chat 應用程式會使用 Google Workspace Event API 搭配 Pub/Sub,藉此辨識及回答問題 即時張貼在 Chat 聊天室中,無論 就會留下評論

Chat 應用程式會使用以下名稱,在聊天室中傳送所有訊息: 資料來源和知識庫:當有人提出問題時 即時通訊應用程式會檢查先前分享的答案,然後 共用內容如果找不到任何答案,則表示無法回答。針對每個答案 使用者可以按一下配件動作按鈕,使用 @號提及聊天室管理員並提問 取得解答Google Chat 應用程式運用 Gemini AI 進行調整, 逐漸擴充至聊天室中的對話內容 請將該物件新增至

以下介紹 Chat 應用程式在員工入職中的運作方式 以及支援空間:

  • 提及 AI 知識助理應用程式會將其新增至聊天室。
    圖 1.小利將 AI 知識助理 Chat 應用程式加入 Chat 聊天室。
  • 曉娜提出問題。
    圖 2.她想知道公司是否提供公開演講訓練。
  • AI 知識助理 Chat 應用程式可以回答問題。
    圖 3.AI 知識助理 Chat 應用程式會提示 Vertex AI 和 Gemini,根據 Chat 聊天室的對話記錄回答 Dana 的問題,然後分享答案。

必要條件

目標

  • 建構採用生成式 AI 的 Chat 應用程式, 根據在 Chat 聊天室分享的知識回答問題 可使用對話專用的 PaLM
  • 生成式 AI:
    • 偵測及回答員工問題。
    • 在 Chat 中持續從進行中的對話學習 空白鍵。
  • 在 Chat 聊天室中即時聽取及回覆訊息 或 Cloud 控制台 已傳送訊息。
  • 透過寫入及讀取 Firestore 資料庫來保留訊息。
  • 在 Chat 聊天室中提及聊天室,促進協作 管理員就無法解答問題。

架構

下圖顯示 Google Workspace 和 AI 知識助理使用的 Google Cloud 資源 Chat 應用程式。

AI 知識助理 Chat 應用程式的架構圖

AI 知識助理 Chat 應用程式的運作方式如下:

  • 使用者新增 AI 知識助理 Chat 應用程式 轉換為 Chat 聊天室:

    1. Chat 應用程式會提示 將使用者新增至 Chat 聊天室以進行設定 驗證和授權

    2. Chat 應用程式會透過下列方式擷取聊天室訊息: 在 Chat API 中呼叫 spaces.messages.list 方法,以及 然後將擷取的訊息儲存在 Firestore 資料庫中。

    3. Chat 應用程式會呼叫 首先,透過 Google Workspace Events API 使用 subscriptions.create 方法啟動事件 會監聽這類事件,例如聊天室中的訊息。 訂閱項目的通知端點是一種 Pub/Sub 主題,會使用 用來將活動轉寄至 Chat 應用程式的 Eventarc。

    4. Chat 應用程式會將簡介訊息發布至 在這個空間中

  • Chat 聊天室中的使用者張貼訊息:

    1. Chat 應用程式會即時接收訊息 從 Pub/Sub 主題選取

    2. Chat 應用程式會將訊息新增至 Firestore 資料庫

      如果之後使用者編輯或刪除訊息, Chat 應用程式收到已更新或刪除的活動 並在 Firestore 中即時更新或刪除訊息 資料庫

    3. Chat 應用程式將訊息傳送至 Vertex AI 使用 Gemini:

      1. 提示會指示 Vertex AI 搭配 Gemini 檢查訊息是否出現 提問。如果可以,Gemini 就會根據 Chat 聊天室的訊息記錄儲存在 Firestore 中 接著 Google Chat 應用程式會將訊息傳送給 Chat 聊天室。如果沒有,就不要回應。

      2. 如果 Vertex AI with Gemini 回答了問題, 這個 Chat 擴充應用程式會發布 接聽及呼叫 spaces.messages.create 方法, 使用應用程式驗證機制的 Chat API。

        如果 Gemini 版 Vertex AI 無法回答問題, 即時通訊應用程式會發布 訊息:「找不到解答」的訊息 Chat 聊天室的記錄。

        訊息一律會附上可供使用者執行的配件動作按鈕 讓 Chat 應用程式 使用 @ 號提及聊天室管理員,要求對方回答問題。

  • Chat 應用程式會從以下應用程式收到生命週期通知: Chat 聊天室訂閱的 Google Workspace Events API 即將到期:

    1. Chat 應用程式會傳送更新要求, 方法是呼叫subscriptions.patch Google Workspace 事件 API。
  • Chat 應用程式已從 Chat 中移除 聊天室:

    1. Chat 應用程式按照 呼叫 subscriptions.delete 方法中的 Google Workspace 事件 API。

    2. Chat 應用程式會刪除 Chat 以及 Firestore 儲存聊天室資料

查看 AI 知識助理 Chat 應用程式使用的產品

Chat 知識助理 Chat 應用程式會使用 以下 Google Workspace 和 Google Cloud 產品:

  • Vertex AI API: 採用 Gemini 的生成式 AI 平台。AI 知識助理 即時通訊應用程式使用 Vertex AI API 和 Gemini 執行下列操作: 識別、瞭解和回答員工問題。
  • Chat API: 這個 API 可用於開發 Google Chat 應用程式,以便接收及回覆 即時通訊互動事件,例如訊息。AI 知識助理 Chat 應用程式使用 Chat API 執行下列操作:
    • 接收及回應 Chat 傳送的互動事件。
    • 列出聊天室中傳送的訊息。
    • 在聊天室中張貼使用者問題的回覆。
    • 設定屬性來決定顯示方式 聊天,例如名稱和顯示圖片。
  • Google Workspace 事件 API: 您可以使用這個 API 訂閱事件及管理 變更 Google Workspace 應用程式的通知設定 Chat 知識助理 Chat 應用程式會使用 Google Workspace Events API,可監聽張貼在 Chat 聊天室,甚至能偵測及回答問題 就會留下評論
  • Firestore: 無伺服器文件資料庫。AI 知識助理 Chat 應用程式會使用 Firestore 儲存訊息相關資料 使用 Chat 聊天室傳送的任何訊息。
  • Pub/Sub: Pub/Sub 是非同步且可擴充的訊息傳遞服務,能將 服務產生訊息的服務來自處理這些訊息的服務。 AI 知識助理 Chat 應用程式使用 Pub/Sub 執行下列操作: 接收 Chat 聊天室中的訂閱事件。
  • Eventarc: Eventarc 可讓您建立事件導向架構,而無需 實作、自訂或維護基礎基礎架構AI 知識助理 Chat 應用程式使用 Eventarc 會將事件從 Pub/Sub 轉送至 Chat 聊天室 接收及處理訂閱事件的 Cloud 函式。
  • Cloud Functions: 簡便的無伺服器運算服務 可回覆 Chat 訊息的單一用途獨立函式 不必管理伺服器或執行階段 環境。AI 知識小幫手 Chat 應用程式 我們使用了兩個名為:
    • app:代管 Chat 傳送的 HTTP 端點 傳入及做為運算平台的互動事件,藉此執行邏輯 處理及回應這些事件
    • eventsApp:接收及處理 Chat 聊天室 例如來自 Pub/Sub 訂閱項目的訊息
    ,瞭解如何調查及移除這項存取權。 Cloud Functions 會使用下列 Google Cloud 產品來建構及建構 託管運算資源:
    • Cloud Build: 全代管的持續整合、推送和部署平台 執行自動化建構作業
    • Cloud Run: 用於執行容器化應用程式的全代管環境。

準備環境

本節說明如何建立及設定 Chat 應用程式。

建立 Google Cloud 專案

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「選單」圖示 > IAM 與管理員 > 建立專案

    前往「建立專案」

  2. 在「Project Name」(專案名稱) 欄位,輸入專案的描述性名稱。

    選用:如要編輯「專案 ID」,請按一下「編輯」。無法變更專案 ID 因此請在專案建立後根據 專案。

  3. 按一下「地區」欄位中的「瀏覽」,即可查看可能的地理位置 專案。然後按一下「選取」
  4. 點選「建立」。Google Cloud 控制台前往「資訊主頁」頁面,已建立專案 幾分鐘內

gcloud CLI

在下列任一開發環境中,存取 Google Cloud CLI (`gcloud`):

  • Cloud Shell:透過 gcloud CLI 使用線上終端機 設定完畢,請啟用 Cloud Shell
    啟用 Cloud Shell
  • Local Shell:如要使用本機開發環境, 安裝初始化 使用 gcloud CLI
    如要建立 Cloud 專案,請使用「gcloud projects create」指令:
    gcloud projects create PROJECT_ID
    設定您要建立的專案 ID 來取代 PROJECT_ID

啟用 Cloud 專案的計費功能

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往「帳單」。按一下 選單 > 帳單 >「我的專案」

    前往「我的專案帳單」頁面

  2. 在「選取機構」中,選擇相關聯的機構 管理 Google Cloud 專案
  3. 在專案列中,開啟「動作」選單 (), 按一下 [變更帳單],然後選擇 Cloud Billing 帳戶。
  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 套用配額

啟用 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 事件 API、Eventarc API 和 Cloud Run Admin API

    啟用 API

  2. 確認您已在正確的位置啟用 API Cloud 專案,然後點選「下一步」

  3. 確認您要啟用的 API 正確無誤,然後按一下「啟用」

gcloud CLI

  1. 如有需要,請將目前的 Cloud 專案設為 已建立:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替換為以下專案的專案 ID: 您建立的 Cloud 專案

  2. 啟用 Google Chat API、Vertex AI API、Cloud Functions API。 Firestore API、Cloud Build API、Pub/Sub API Google Workspace 事件 API、Eventarc API 及 Cloud Run 管理員 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 應用程式, 可以使用預留位置資訊。發布前 Google Chat 外部應用程式,將預留位置資訊替換為 則在同意畫面中顯示真實資訊

  1. 前往 Google Cloud 控制台,前往 選單 > API 與服務 > OAuth 同意畫面

    前往 OAuth 同意畫面

  2. 在「使用者類型」下方選取「內部」,然後點選「建立」

  3. 在「應用程式名稱」中輸入 AI knowledge assistant

  4. 在「使用者支援電子郵件」部分,選取您的電子郵件地址或適當的電子郵件地址 Google 群組。

  5. 在「開發人員聯絡資訊」下方輸入您的電子郵件地址。

  6. 按一下 [儲存並繼續]。

  7. 按一下「新增或移除範圍」。畫面上會顯示包含範圍清單的面板 。

  8. 在「手動新增範圍」下方,貼上下列範圍:

    • https://www.googleapis.com/auth/chat.messages
  9. 按一下「Add to Table」

  10. 按一下「更新」

  11. 按一下 [儲存並繼續]。

  12. 查看應用程式註冊摘要,然後按一下「返回資訊主頁」

建立 OAuth 用戶端 ID 憑證

  1. 前往 Google Cloud 控制台,前往 選單 > API 與服務 >「憑證」

    前往「憑證」頁面

  2. 按一下「建立憑證」>「OAuth 用戶端 ID」

  3. 按一下「應用程式類型」> 網頁應用程式

  4. 在「名稱」欄位中輸入憑證的名稱。這個名稱僅供 這項工具會顯示在 Google Cloud 控制台中

  5. 按一下「Authorized redirect URIs」(已授權的重新導向 URI) 下方的「Add URI」(新增 URI)

  6. 在「URI 1」中輸入以下內容:

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

    更改下列內容:

    • REGION:Cloud 函式的區域,例如 us-central1。 稍後建立兩個 Cloud 函式時,您必須為其設定 對應至這個值。
    • PROJECT_ID:Cloud 專案的專案 ID
  7. 按一下「建立」

  8. 在「OAuth client created」(已建立 OAuth 用戶端) 視窗中,按一下 [Download JSON] (下載 JSON)

  9. 將下載的檔案儲存為 client_secrets.json。上傳完成後 這兩個 Cloud Functions,請在每個函式中加入 client_secrets.json 檔案 可能面臨擴充性、監控、持續整合 和部署等方面的挑戰

  10. 點選「OK」

建立 Pub/Sub 主題

Pub/Sub 主題 可使用 Google Workspace Events API 訂閱 Chat 中的事件 聊天室,例如訊息並即時通知 Chat 應用程式 讓應用程式從可以最快做出回應的位置 回應使用者要求

建立 Pub/Sub 主題的方法如下:

Google Cloud 控制台

  1. 前往 Google Cloud 控制台,前往 選單 >「Pub/Sub」

    前往 Pub/Sub

  2. 按一下 [Create Topic] (建立主題)

  3. 在「主題 ID」中輸入 events-api

  4. 取消選取「新增預設訂閱項目」

  5. 在「加密」下方,選取「Google 代管的加密金鑰」

  6. 點選「建立」。畫面上會顯示 Pub/Sub 主題。

  7. 這個 Pub/Sub 主題和 Google Workspace 事件 API 才能運作 請為 Chat IAM 使用者授予 Pub/Sub 主題:

    1. 在「events-api」events-api面板中的「PERMISSIONS」events-api下方,按一下 新增主體

    2. 在「新增主體」下方的「新增主體」中輸入 chat-api-push@system.gserviceaccount.com

    3. 在「指派角色」下方的「請選擇角色」中,選取「Pub/Sub」 > 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 知識助理 Chat 應用程式資料庫會使用 NoSQL 資料模型 份文件 分類為 集合。詳情請參閱: Firestore 資料模型

下圖為 AI 知識助理的總覽 Chat 應用程式的資料模型:

Firestore 資料庫的資料模型。

根層級包含兩個集合:

  1. spaces,其中每個文件都代表一個符合下列條件的 Chat 聊天室: 要新增 Chat 應用程式每則訊息都是由 由 messages 子集合中的文件觸發。

  2. users,其中每份文件都代表新增 將 Chat 應用程式移至 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 控制台,前往 選單 >「Firestore」

    前往 Firestore

  2. 按一下 [Create database] (建立資料庫)。

  3. 在「選取 Firestore 模式」中,按一下「原生模式」

  4. 按一下「繼續」

  5. 設定資料庫:

    1. 在「Name your database」(為資料庫命名) 中,將「Database ID」(資料庫 ID) 保留為 (default)

    2. 在「位置類型」下方,選取「區域」

    3. 在「Region」(區域) 中,指定資料庫的區域,例如 us-central1。為獲得最佳效能,請選取相同或鄰近位置 做為 Chat 應用程式的 Cloud Functions

  6. 按一下 [Create database] (建立資料庫)。

gcloud CLI

  • 在原生模式下建立 Firestore 資料庫:

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

    LOCATION 替換為 Firestore 的名稱 區域,例如 格式:us-central1。為獲得最佳效能,請選取相同或鄰近位置 做為 Chat 應用程式的 Cloud Functions

建立及部署 Chat 應用程式

已建立並設定 Google Cloud 專案,可以開始建構 並部署 Chat 應用程式在本節中,您將執行 包括:

  1. 建立及部署兩個 Cloud Functions。1:回覆 Chat 事件,以及回應 Pub/Sub 事件。
  2. 使用 Google Chat API 建立及部署 Chat 應用程式 設定頁面。

建立及部署 Cloud Functions

在本節中,您會建立及部署兩個名為:

  • app:主機並執行 Chat 應用程式的 程式碼,回應以 HTTP 的形式回應來自 Chat 的事件 要求。
  • eventsApp:接收及處理 Chat 聊天室 例如來自 Pub/Sub 的訊息

這些 Cloud Functions 構成了 AI 知識助理 Chat 應用程式的應用程式邏輯。

建立 Cloud Functions 之前,請先花點時間 熟悉 GitHub 代管的程式碼範例。

前往 GitHub 查看

建立及部署「app

Google Cloud 控制台

  1. 從 GitHub 將程式碼下載為 ZIP 檔案。

    下載 ZIP 檔案

  2. 將下載的 ZIP 檔案解壓縮。

    擷取的資料夾包含整個 Google Workspace 範例 Cloud Storage 也提供目錄同步處理功能

  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 控制台,前往 選單 >「Cloud Functions」

    前往 Cloud Functions 頁面

    請確認 已選取 Chat 應用程式。

  7. 按一下 「Create Function」

  8. 在「Create function」(建立函式) 頁面中設定函式:

    1. 在「環境」中,選取「第 2 代」
    2. 在「Function name」(函式名稱) 中輸入 app
    3. 在「Region」(區域) 中,選取區域,例如 us-central1。這個區域 必須與您在授權重新導向 URI 中設定的區域一致 你 建立的 OAuth 用戶端 ID 憑證 以進行驗證及授權。
    4. 在「觸發條件類型」中,選取「HTTPS」
    5. 在「Authentication」下方選取 允許未經驗證的叫用
    6. 點選「下一步」。
  9. 在「執行階段」中,選取「Node.js 20」

  10. 刪除「進入點」中的預設文字並輸入 app

  11. 在「原始碼」中,選取「壓縮上傳」

  12. 在「目的地值區」中, 建立 或選取值區:

    1. 點選「瀏覽」
    2. 選擇值區。
    3. 按一下「選取」

    Google Cloud 將 ZIP 檔案上傳到並擷取元件檔案 指定值區Cloud Functions 然後將元件檔案 並存取 Cloud 函式

  13. ZIP 檔案中,上傳從 GitHub 下載的 ZIP 檔案。 擷取及重壓縮:

    1. 點選「瀏覽」
    2. 瀏覽並選取 ZIP 檔案。
    3. 按一下「開啟」
  14. 按一下「部署」

    「Cloud Functions 詳細資料」頁面隨即開啟,您的函式隨即顯示。 ,其中包含兩個進度指標:一個用於建構,另一個用於服務。 當兩個進度指標消失並替換成勾號時 標記,表示函式已部署完成且準備就緒。

  15. 編輯程式碼範例來設定常數:

    1. 在「Cloud Function details」(Cloud 函式詳細資料) 頁面點選「Edit」(編輯)
    2. 點選「下一步」。
    3. 在「原始碼」中,選取「內嵌編輯器」
    4. 在內嵌編輯器中開啟並編輯 env.js 檔案:
      1. project 的值設為 Cloud 專案 ID。
      2. location 的值設為 Cloud 函式的 region 例如 us-central1
  16. 按一下「部署」

gcloud CLI

  1. 從 GitHub 複製程式碼:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. 切換至含有這項 AI 知識程式碼的目錄 Google 助理 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 函式的 region,例如 us-central1
  5. 將 Cloud 函式部署至 Google Cloud:

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

    REGION 替換為 Cloud 函式的 region 來比對 env.js 檔案中的組合,例如 us-central1

建立及部署「eventsApp

Google Cloud 控制台

  1. 前往 Google Cloud 控制台,前往 選單 >「Cloud Functions」

    前往 Cloud Functions 頁面

    請確認 已選取 Chat 應用程式。

  2. 按一下 「Create Function」

  3. 在「Create function」(建立函式) 頁面中設定函式:

    1. 在「環境」中,選取「第 2 代」
    2. 在「Function name」(函式名稱) 中輸入 eventsApp
    3. 在「Region」(區域) 中,選取區域,例如 us-central1。這個區域 必須與您在授權重新導向 URI 中設定的區域一致 你 建立的 OAuth 用戶端 ID 憑證 以進行驗證及授權。
    4. 在「Trigger type」(觸發條件類型) 中,選取「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. 開頭的訊息,請按一下「Allow All」
    7. 點選「下一步」。
  4. 在「執行階段」中,選取「Node.js 20」

  5. 刪除「進入點」中的預設文字並輸入 eventsApp

  6. 在「Source code」中,選取「Zip from Cloud Storage」

  7. 按一下「Cloud Storage location」中的「Browse」

  8. 選擇建立 ZIP 檔案時,將 ZIP 檔案上傳到哪個值區 app Cloud 函式。

  9. 按一下您上傳的 ZIP 檔案。

  10. 按一下「選取」

  11. 按一下「部署」

    「Cloud Functions 詳細資料」頁面隨即開啟,您的函式隨即顯示。 分別有三個進度指標:一個用於建構、一個用於服務, 另一個用於觸發條件當三個進度指標都不見時 並以勾號取代,表示函式已部署完成且準備就緒。

  12. 編輯程式碼範例來設定常數:

    1. 在「Cloud Function details」(Cloud 函式詳細資料) 頁面點選「Edit」(編輯)
    2. 點選「下一步」。
    3. 在「原始碼」中,選取「內嵌編輯器」
    4. 在內嵌編輯器中開啟並編輯 env.js 檔案:
      1. project 的值設為 Cloud 專案 ID。
      2. location 的值設為 Cloud 函式的 region 例如 us-central1
  13. 按一下「部署」

gcloud CLI

  1. 在 gcloud CLI 中,如果尚未切換至目錄,請切換至該目錄 當中包含程式碼以學習 AI 技術 先前使用的所有 Google 助理 Chat 應用程式 從 GitHub 複製:

    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 函式的 region,例如 us-central1
  4. 將 Cloud 函式部署至 Google Cloud:

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

    REGION 替換為 Cloud 函式的 region 來比對 env.js 檔案中的組合,例如 us-central1

複製 app Cloud 函式的觸發條件網址

您將在下一個部分貼上 app Cloud 函式的觸發條件網址 當你 在 Google Cloud 控制台中設定 Chat 應用程式

Google Cloud 控制台

  1. 前往 Google Cloud 控制台,前往 選單 >「Cloud Functions」

    前往 Cloud Functions 頁面

  2. 在 Cloud Functions 清單的「Name」(名稱) 欄中,按一下 app

  3. 按一下「觸發條件」

  4. 複製網址

gcloud CLI

  1. 說明 app Cloud 函式:

    gcloud functions describe app
    
  2. 複製 url 屬性。

在 Google Cloud 控制台中設定 Chat 應用程式

本節說明如何在 會顯示 Chat 應用程式相關資訊的 Google Cloud 控制台 包括 Chat 擴充應用程式的名稱 以及 Chat 應用程式的雲端 向其傳送 Chat 互動事件的函式。

  1. 在 Google Cloud 控制台中,按一下「選單」 >「更多產品」 > Google Workspace > 產品庫 > Google Chat API > 管理 > 設定

    前往 Chat API 設定

  2. 在「應用程式名稱」中輸入 AI knowledge assistant

  3. 在「顯示圖片」中輸入 https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg

  4. 在「說明」中輸入 Answers questions with AI

  5. 按一下「啟用互動功能」切換鈕,將其設為「開啟」。

  6. 選取「功能」下方的「加入聊天室和群組對話」

  7. 在「連線設定」下方,選取「應用程式網址」

  8. 在「App URL」中,貼上 app Cloud 函式的觸發條件網址 格式為 https://REGION-PROJECT_ID.cloudfunctions.net/app 其中 REGION 是 Cloud 函式的區域,例如 us-central1 PROJECT_ID專案 ID 您建立的 Cloud 專案

  9. 在「Visibility」(顯示設定) 下方選取 將這個即時通訊應用程式設為可供下列成員和群組使用: Workspace 網域並輸入您的電子郵件地址。

  10. (選用) 在「記錄」下方,選取「將錯誤記錄到 Logging」

  11. 按一下 [儲存]。畫面上會顯示設定儲存訊息,表示 Chat 擴充應用程式

測試 Chat 應用程式

透過以下應用程式測試 AI 知識助理 Chat 應用程式: 向 AI 提問以產生訊息的 Chat 聊天室 知識助理 Chat 應用程式能回答問題。

以下是測試 AI 知識助理的幾種方式 Chat 擴充應用程式:

  • 將 AI 知識助理即時通訊應用程式新增至 可以提出與下列項目相關的問題: 這個空間
  • 建立 Chat 聊天室,然後張貼一些訊息做為參考 做為資料來源訊息來源 Gemini 中的提示: Answer 20 common onboarding questions employees ask their teams. 或 您可以貼上某段文字 「使用 Chat 總覽進行開發」指南 然後提出相關問題

在本教學課程中,您可以建立 Chat 聊天室並貼上一些內容 「使用 Chat 總覽進行開發」指南。

  1. 開啟 Google Chat。

    前往 Google Chat

  2. 建立 Chat 聊天室:

    1. 按一下「新對話」圖示 >「建立聊天室」

    2. 在「聊天室名稱」中輸入 Testing AI knowledge assistant app

    3. 在「這個聊天室的用途為何?」下方,選取「協同合作」

    4. 在「存取權設定」下方,選擇有權存取聊天室的使用者。

    5. 按一下「建立」

  3. 新增要做為資料來源的訊息:

    1. 使用網路瀏覽器造訪 使用 Chat 總覽進行開發 指南。

    2. 複製指南的內容並貼到 Chat 聊天室

  4. 新增 AI 知識助理 Chat 應用程式:

    1. 在訊息撰寫列中輸入 @AI knowledge assistant,然後在 建議選單隨即會顯示,請選取 AI 知識助理 即時通訊應用程式,然後按下 enter 鍵。

    2. 系統會顯示訊息,詢問你是否要新增 AI 知識助理 Chat 擴充應用程式加入聊天室。按一下「新增至聊天室」

    3. 如果這是你第一次新增 Chat 應用程式 您必須將 Chat 擴充應用程式:

      1. 按一下 [Configure] (設定)。
      2. 新的瀏覽器視窗或分頁將會開啟,要求您選擇 Google 帳戶。選擇要用來測試的帳戶。
      3. 查看 AI 知識助理的權限 即時通訊應用程式要求。如要授予權限,請 允許
      4. 畫面上會顯示「You may close this page now.」訊息。 關閉瀏覽器視窗或分頁,然後返回 Chat 聊天室。
  5. 提出問題:

    1. 在訊息撰寫列中輸入問題,例如 What are Google Chat apps?

    2. AI 知識助理 Chat 應用程式提供的解答。

    3. 如果回答不準確或不夠,可以協助 AI 評估 如要改善對話記錄,請按一下 取得說明。 AI 知識小幫手 Chat 應用程式提及的內容 要求他們回答問題下次, 認識 AI 知識助理 Chat 應用程式 答案!

注意事項、替代架構選擇和後續步驟

本節說明 AI 知識助理的其他方式 可以建構即時通訊應用程式。

Firestore、Cloud Storage,或在 Chat API 中呼叫列出訊息

本教學課程建議儲存下列 Chat 聊天室資料,例如: Firestore 資料庫顯示訊息,因為它能提高效能 對 Message 呼叫 list 方法 每次使用 Chat API 時 即時通訊應用程式會回答問題。此外,通話 list messages重複可能會造成 Chat 擴充應用程式達到 API 配額限制。

不過,當 Chat 聊天室的對話記錄變為 太久使用 Firestore 可能變得昂貴。

雲端儲存空間 是 Firestore 的替代方案AI 知識助理的每個空間 即時通訊應用程式處於啟用狀態時,會取得專屬物件 是一個文字檔案,包含聊天室中的所有訊息。使用 直接將文字檔的全部內容傳送給 Vertex AI Gemini 能同時使用 AI 技術,但缺點是需要花費更多心力 更新對話記錄,因為無法附加至 Cloud 中的物件 儲存空間,只需更換即可。如果您經常使用,則此做法並不合理 更新訊息記錄,但如果您要批次更新,則建議採用 以及訊息記錄,例如每週一次。

疑難排解

Google Chat 應用程式或 card 會傳回錯誤, 即時通訊介面顯示「發生錯誤」的訊息。 或「無法處理你的要求」。有時使用 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或 資訊卡產生非預期的結果例如資訊卡訊息 顯示。

雖然 Chat UI 中可能不會顯示錯誤訊息, 提供描述性錯誤訊息和記錄資料,協助您修正錯誤 。如需觀看說明, 偵錯及修正錯誤,請參閱 疑難排解並修正 Google Chat 錯誤

清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取 但建議採用 Cloud 專案

  1. 在 Google Cloud 控制台中,前往「管理資源」頁面。按一下 選單 > IAM 與管理員 >「管理資源」

    前往 Resource Manager

  2. 在專案清單中選取要刪除的專案,然後按一下 刪除
  3. 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除 專案。