使用 Dialogflow ES 建構 Google Chat 外掛程式

本頁面說明如何建構 Google Chat 應用程式 (Google Workspace 外掛程式),並使用 Dialogflow ES 理解及回覆自然語言。您也可以使用與 Google Chat 直接整合的 Dialogflow CX,按照 Dialogflow CX Google Chat 指南建立 Dialogflow CX Google Chat 應用程式。

目標

  • 設定環境。
  • 建立及部署 Dialogflow ES 虛擬服務專員。
  • 建立及部署由 Dialogflow ES 虛擬服務專員支援的即時通訊應用程式。
  • 測試 Chat 應用程式。

必要條件

架構

下圖顯示以 Dialogflow 建構的 Chat 應用程式架構:

使用 Dialogflow 實作的 Chat 應用程式架構。

在上圖中,使用者與 Dialogflow Chat 應用程式互動時,資訊流程如下:

  1. 使用者在 Chat 中傳送訊息給 Chat 應用程式,無論是透過即時訊息或 Chat 聊天室。
  2. Dialogflow 虛擬服務專員 (位於 ) 會接收並處理訊息,然後產生回應。
  3. 您也可以使用 Dialogflow Webhook,讓 Dialogflow 代理程式與外部第三方服務互動,例如專案管理系統或票證工具。
  4. Dialogflow 虛擬服務專員會將回應傳回 Chat 中的 Chat 應用程式服務。
  5. 回覆會傳送至 Chat 聊天室。

設定環境

使用 Google API 前,您需要在 Google Cloud 專案中啟用這些 API。 您可以在單一 Google Cloud 專案中啟用一或多個 API。
  1. 在 Google API 控制台中,啟用 Google Chat API 和 Dialogflow API。

    啟用 API

  2. 確認您要在正確的 Cloud 專案中啟用 API,然後按一下「下一步」

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

建立 Dialogflow ES 虛擬服務專員

如果您目前沒有 Dialogflow ES 代理程式:

  1. 前往 Dialogflow ES 主控台
  2. 按一下「建立代理程式」
  3. 為代理程式命名,並選取預設語言和時區。
  4. 將其與 Cloud 專案建立關聯。
  5. 點選「建立」
  6. 視需要為 Chat 應用程式對話流程建構意圖和實體。您可以從問候意圖開始。
  7. 記下專案 ID

如需詳細指南,請參閱「建構代理程式」。

建立 Chat 應用程式,並連結至 Dialogflow 代理程式

建立 Dialogflow ES 虛擬服務專員後,請按照下列步驟將其轉換為即時通訊應用程式:

  1. 在 Google API 控制台中,前往 Google Chat API。搜尋「Google Chat API」,然後按一下「Google Chat API」,再按一下「管理」

    前往 Chat API

  2. 按一下「設定」,然後設定 Chat 應用程式:

    1. 在「應用程式名稱」中輸入 Dialogflow App
    2. 在「顯示圖片網址」中輸入 https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
    3. 在「Description」(說明) 中輸入 Responds to real human conversation
    4. 在「功能」下方,選取「加入聊天室和群組對話」
    5. 在「連線設定」下方,選取「Dialogflow」
    6. 在「Dialogflow settings」(Dialogflow 設定) 下方,選取「Dialogflow ES」
    7. 將這個 Chat 擴充應用程式提供給網域中的特定使用者和群組,然後輸入電子郵件地址。
    8. 在「記錄」下方,選取「將錯誤記錄至 Logging」
  3. 按一下 [儲存]

Chat 應用程式已準備好接收及回覆 Chat 訊息。

測試 Chat 應用程式

在 Google Chat 中傳送訊息給 Dialogflow ES Chat 應用程式,測試該應用程式。

  1. 使用您在新增自己為信任測試人員時提供的 Google Workspace 帳戶,開啟 Google Chat。

    前往 Google Chat

  2. 按一下 「發起新即時通訊」
  3. 在「新增 1 位以上使用者」欄位中,輸入 Chat 應用程式的名稱。
  4. 從結果中選取 Chat 應用程式。系統會開啟即時訊息。

  5. 在與應用程式互傳的新即時訊息中輸入 Hello,然後按 enter

    Dialogflow Chat 應用程式會傳送問候訊息做為回應。

文字回覆

文字回覆會以簡訊形式傳送至 Google Chat。 使用這項格式設定,只要以特定 (Markdown Light) 符號括住文字,即可將文字設為粗體或斜體。

文字訊息回覆在視覺上與 Dialogflow 主控台中的預設文字回覆相同。不過,原始 API 回應看起來會有些許不同。 此外,這項作業也會將平台設定設為 GOOGLE_HANGOUTS,這在為多項整合服務建構代理程式時可能很有用。

"fulfillmentMessages": [
{
   "text": {
   "text": [
        "This is a test."
   ]
},
  "platform": "GOOGLE_HANGOUTS"
},

資訊卡

資訊卡回覆會以資訊卡訊息的形式傳送至 Google Chat。

圖片

圖片回覆會以 Google Chat 圖片小工具的形式傳送至 Google Chat。

自訂酬載

如要傳送其他類型的 Google Chat 訊息,可以使用自訂酬載

Google Chat 自訂酬載可讓您建立更進階的資訊卡。一張資訊卡可以有一或多個區塊。每個區段都可以有標題。 您可以參閱 Google Workspace 外掛程式擴充 Chat 卡片參考指南,瞭解如何使用這項功能建立組合。不過,使用自訂酬載時,您必須提供 JSON 格式。

以下是建立含有資訊卡的訊息時,自訂酬載的範例:

{ "hangouts": { "hostAppDataAction": { "chatDataAction": {
  "createMessageAction": { "message": { "cardsV2": [{
    "cardId": "pizza",
    "card": {
      "header": {
        "title": "Pizza Delivery Customer Support",
        "subtitle": "pizzadelivery@example.com",
        "imageUrl": "https://goo.gl/aeDtrS"
      },
      "sections": [{ "widgets": [{ "textParagraph": {
        "text": " Your pizza is here!"
      }}]}]
    }
  }]}}
}}}}

限制和注意事項

  • 透過 Dialogflow 使用 Google Workspace 外掛程式時,即時通訊事件物件有下列限制和注意事項:
    • 應用程式主畫面事件:目前尚未支援 APP_HOME 事件。
    • Dialogflow 查詢輸入內容:傳送至 Dialogflow 代理程式的查詢輸入內容文字取決於事件類型:
      • MESSAGE即時通訊訊息的 argumentText 欄位值。
      • APP_COMMAND字串 "APP_COMMAND_PAYLOAD"
      • ADDED_TO_SPACE系統會傳送預設的歡迎事件
      • REMOVED_FROM_SPACE字串 "REMOVED_FROM_SPACE_PAYLOAD"
      • CARD_CLICKED字串 "BUTTON_CLICKED_PAYLOAD"
      • WIDGET_UPDATED字串 "WIDGET_UPDATED_PAYLOAD" (用於自動完成)。
    • 完整事件酬載:系統會將對話互動事件的完整 JSON 酬載傳送至 WebhookRequest.payload 欄位內的 Dialogflow。您可以在 Dialogflow 網路服務掛鉤中存取這項資訊。詳情請參閱 Dialogflow ES 網路服務掛鉤要求說明文件
  • 回應指令接收來自資訊卡或對話方塊的資料時,請注意下列事項:
  • 不支援連結預覽
  • 如果 Dialogflow 代理程式只回覆一則訊息,該訊息就會同步傳送至 Google Chat。如果 Dialogflow 代理程式回應多則訊息,系統會針對每則訊息呼叫一次 Chat API 中的 spaces.messages 資源,以非同步方式將所有訊息傳送至 Chat。create
  • 將 Dialogflow ES 與 Chat 整合時,Dialogflow 虛擬服務專員和 Chat 應用程式必須在同一個 Google Cloud 專案中設定。

疑難排解

如要對 Chat 應用程式進行偵錯,請先查看錯誤記錄。由於這個應用程式使用 Dialogflow,因此您可以使用多項記錄和疑難排解資源:

清除所用資源

為避免系統向您的 帳戶收取本教學課程所用資源的費用,建議您刪除 Cloud 專案。

  1. 在 Google API 控制台中,前往「管理資源」頁面。依序點選「選單」「IAM 與管理」>「管理資源」>

    前往 Resource Manager

  2. 在專案清單中選取要刪除的專案,然後按一下「刪除」圖示
  3. 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除專案。
  • Dialogflow CX 是透過 Chat 應用程式使用 Dialogflow 的另一種方式。