建構 Dialogflow ES Google Chat 應用程式

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

目標

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

必要條件

架構

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

使用 Dialogflow 實作的 Google 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. 確認您要在正確的雲端專案中啟用 API,然後按一下 下一步。

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

建立 Dialogflow ES 虛擬服務專員

如果您沒有現有的 Dialogflow ES 虛擬服務專員,請按照下列步驟操作:

  1. 前往 Dialogflow ES 控制台。
  2. 點按「Create Agent」。
  3. 為綜覽資源輸入名稱,然後選取預設語言和時區。
  4. 將其與雲端專案建立關聯。
  5. 點選「建立」。
  6. 視需要為 Chat 應用程式對話流程建構意圖和實體。您可以從問候意圖開始。
  7. 記下專案 ID。

如需詳細指南,請參閱「建構 Agent」。

建立 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 設定」下方,選取「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 自訂酬載可讓您建立更進階的資訊卡。一張資訊卡可以有一或多個區塊。每個區段都可以有標題。您可以參閱資訊卡訊息指南,瞭解如何運用這項功能建立各種組合。不過,使用自訂酬載時,您必須提供 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!"
      }}]}]
    }
  }]}}
}}}}

限制和注意事項

  • 搭配使用 Google Chat 應用程式與 Dialogflow 時,Chat 事件物件有下列限制和注意事項:
    • 應用程式住家事件:目前不支援 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,因此您可使用多項記錄和疑難排解資源:

清除所用資源

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

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

    前往 Resource Manager

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