建構可透過自然語言理解並回應的 Dialogflow CX Google Chat 應用程式

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

舉例來說,假設 Chat 應用程式可協助使用者租車。使用者可能會寫「我想租車」,對話應用程式可能會回覆「你希望在哪裡取車?」等問題,與使用者展開類似真人的對話,在預訂租車時,對話應用程式會理解並以真人語音回覆。

這只是一個例子。Dialogflow Chat 應用程式適用於各種互動。如果需要自然的人類語音,則需要 Dialogflow Chat 應用程式。預先建構的代理程式可協助您快速上手,並展示 Dialogflow 的功能,例如:

  • 預訂航班
  • 預約看診時間
  • 訂購外送餐點
  • 回答零售產品目錄相關問題,例如商品是否有其他顏色
  • 預先建構的 Dialogflow 代理程式選取頁面。
    圖 1. 為 Dialogflow Chat 應用程式選取預先建構的代理程式。
  • 在 Dialogflow CX 中測試服務專員。
    圖 2. 在 Dialogflow CX 中測試代理,確保代理的邏輯和設定運作正常。這張圖表顯示一系列主題頁面,這些頁面與對話中的特定步驟有關,例如設定租車的取車和還車地點,並設定連結這些頁面的邏輯。對話會在模擬器中進行測試。
  • 設定 Dialogflow Chat 應用程式。
    圖 3. 在 Google Cloud 控制台的 Chat API 設定頁面,設定 Chat 應用程式,使用 Dialogflow CX 代理處理回覆。
  • 測試 Dialogflow CX Chat 應用程式
    圖 4. 在 Google Chat 中使用 Dialogflow Chat 應用程式,討論租車事宜。

目標

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

必要條件

架構

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

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

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

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

設定環境

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

    啟用 API

  2. 確認您要在正確的雲端專案中啟用 API,然後按一下 下一步。

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

建立 Dialogflow CX 虛擬服務專員

Dialogflow CX 代理是虛擬代理,可同時處理多組使用者對話。這項自然語言理解模組可解讀人類語言的細微差異。Dialogflow 會將使用者在對話期間提供的文字內容,轉譯為應用程式與服務可解讀的結構化資料。您可以設計並建構 Dialogflow 代理,處理您的系統所需要的對話類型。

Dialogflow 代理就像是客服中心的真人客服專員,您會訓練這兩者處理預期的對話情境,訓練內容不必過於明確。

以下說明如何建立 Dialogflow CX 虛擬服務專員:

  1. 在 Dialogflow CX 控制台中,開啟 Dialogflow CX 控制台。依序點選「選單」「Dialogflow CX」>。

    前往 Dialogflow CX 控制台

  2. 選擇 Google Cloud 專案。如要尋找專案,可能需要按一下「全部」,然後搜尋專案。

  3. 現在你可以選擇預先建構的代理程式,或自行建立代理程式。如要稍後再詳細瞭解代理自訂功能,請選擇其中一個預先建構的代理,這些代理也能協助您瞭解代理的功能。

    如要選擇預先建構的代理程式,請按照下列步驟操作:

    1. 按一下「使用預先建構的代理程式」。
    2. 選取預先建構的代理程式。在本指南中,請選取「旅遊:租車」。

      系統會根據代理使用的功能數量和對話邏輯的複雜程度,將代理評為初級、中級或進階。選擇中級或進階代理程式時,可能需要進行代理程式專屬的自訂和設定,包括在 Google Cloud 控制台中啟用功能和 API。

    3. 按一下「Import as agent」(匯入為代理程式)。

    如要建立自己的代理程式,請按照下列步驟操作:

    1. 點選「建立代理」。
    2. 選取「自動生成」,建立資料儲存庫代理程式,或選取「自行建構」,建立其他類型的代理程式。

    如需代理程式建構程序的詳細逐步說明,請參閱「建立 Dialogflow CX 代理程式」。

  4. 設定基本代理設定:

    1. 在「顯示名稱」中輸入顯示名稱。
    2. 選取偏好的位置。 如要變更進階位置資訊設定,請按一下「編輯」。
    3. 選取偏好時區。
    4. 選取代理程式的預設語言。 建立服務專員後,就無法變更預設語言。
  5. 按一下「建立」,Dialogflow CX 會開始建立代理,然後顯示代理的預設開始流程。

  6. 視需要自訂代理程式。如需代理程式自訂程序的詳細逐步說明,請參閱「建立 Dialogflow CX 代理程式」。

  7. 建議您測試服務專員:

    1. 按一下「測試代理程式」。
    2. 選取「在環境中測試代理程式」。
    3. 在「環境」中選取「草稿」。
    4. 在流程中,選取「Default Start Flow」。
    5. 在「頁面」中,選取「起始頁面」。
    6. 在「與代理人交談」撰寫列中輸入 Hello,然後按下 Enter 鍵。 代理會回覆並自我介紹。
    7. 進行範例測試對話,完成測試。
  8. 系統會建立 Dialogflow CX 客戶體驗代理。返回 Dialogflow CX 控制台。 依序點選「選單」 >「Dialogflow CX」。

    前往 Dialogflow CX 控制台

  9. 在「代理程式」下方,依序點按 >「複製名稱」。請儲存這個名稱,因為設定 Chat 應用程式時會用到。

建立 Chat 擴充應用程式,並連結至 Dialogflow 虛擬服務專員

建立 Dialogflow CX 代理後,請按照下列步驟將其轉換為 Chat 應用程式:

  1. 前往 Google Cloud 控制台中的 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 CX」。
    7. 在「Agent or Environment resource name」(虛擬服務專員或環境資源名稱) 欄位中,貼上您在「建立 Dialogflow CX 虛擬服務專員」一文結尾複製的 Dialogflow CX 虛擬服務專員名稱。
    8. 將這個 Chat 擴充應用程式提供給網域中的特定使用者和群組,然後輸入電子郵件地址。
    9. 在「記錄」下方,選取「將錯誤記錄至 Logging」。
  3. 按一下 [儲存]。

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

測試 Chat 應用程式

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

  1. 使用您在新增為早鳥測試者時提供的 Google Workspace 帳戶,開啟 Google Chat。

    前往 Google Chat

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

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

    Dialogflow Chat 應用程式會自我介紹。

  6. 完成範例測試對話,即可完成測試。

測試對話範例

如要在 Dialogflow CX 控制台或 Google Chat 中測試 Dialogflow CX Chat 應用程式,請進行下列對話。這項說明可協助您瞭解 Dialogflow CX 代理如何解讀使用者的自然語言,以及在對話的每個步驟中,如何產生自己的自然語言回覆。這個範例對話是以名為「Travel: car rental」(旅遊:租車) 的預建代理程式為基礎。

對話方塊 說明
使用者:你好
服務專員:你好!我是虛擬租車服務專員。我可以協助你預訂新的租車服務。請問今天需要什麼協助呢?
  1. 系統會呼叫「Default Start Flow」中的「Default Welcome Intent」路徑。
  2. 這個狀態處理常式的服務履行 (「Hi! I'm...") 並加入回覆佇列。
  3. 代理會將回應佇列傳送給使用者。
使用者:我想租車。
服務專員:您想在哪裡取車?
  1. 系統會比對「開始頁面」中的 car_rental.reservation_create 意圖路徑。
  2. 系統會將工作階段轉移至「取貨地點」頁面。
  3. 「取貨地點」頁面表單未填寫完畢,因此代理程式會使用 pickup_location 參數提示使用者 (「你希望在何處取貨...」),並加入回應佇列。
  4. 代理會將回應佇列傳送給使用者。
使用者:拉斯維加斯
代理:好的,取貨地點是拉斯維加斯。
服務專員:你的下車地點與上車地點不同嗎?
  1. 使用者輸入的內容會填入代理在先前對話回合中要求的 pickup_location 參數。
  2. 系統會比對 Default Start Flow 中的 car_rental.return_different_location 意圖路線。
  3. 系統會評估並呼叫「取貨地點」頁面中的表單填寫路徑。這項動作包含執行要求 (「好的,你的自取時間是...」),並會加入回應佇列,參數參照會解析為使用者提供的實際值。
  4. 工作階段會轉換至「確認位置」頁面。
  5. 「確認地點」頁面有填寫項目 (「你的取貨地點與送達地點不同嗎?」),並加入回應佇列。
  6. 代理會將回應佇列傳送給使用者。
使用者:是。我會在洛杉磯還車。
服務專員:好的,你的下車地點是洛杉磯。
服務專員:你希望在什麼日期和時間取車?
  1. 系統會比對 Default Start Flow 中的 car_rental.return_different_location 意圖路線。
  2. 工作階段會轉換至「取貨地點」頁面。
  3. 使用者輸入的內容會填入代理在先前對話回合中要求的 drop_off_location 參數。
  4. 系統會評估並呼叫「Drop Off Location」(卸貨地點) 頁面中的表單填寫路徑。 這項要求包含完成動作 (「好的,你的取貨地點是...」),並已加入回應佇列。
  5. 工作階段會轉換至「租借時間長度」頁面。
  6. 「租賃時間」頁面的表單值不完整,因此系統會提示使用者提供 pickup_date_time 參數 (「你希望在什麼日期和時間取車?」)、並加入回應佇列。
  7. 代理會將回應佇列傳送給使用者。
使用者:我想在 3 月 5 日中午取車。
服務專員:你希望在什麼日期和時間還車?
  1. 使用者輸入的內容會填入代理在先前對話回合中要求的 pickup_date_time 參數。
  2. 「租賃時間」頁面缺少另一個表單值,因此系統會提示使用者輸入 drop_off_date_time 參數 (「你希望在什麼日期和時間還車?」),並加入回應佇列。
  3. 代理會將回應佇列傳送給使用者。
終端使用者:3 月 15 日中午。
服務專員:請確認:

您將在拉斯維加斯取車 2024-03-05 12:00:00,並在洛杉磯還車 2024-03-15 12:00:00

這樣是否正確?
  1. 使用者輸入的內容會填入代理在先前對話回合中要求的 drop_off_date_time 參數。
  2. 系統會將工作階段轉移至「確認租借時間」頁面。
  3. 「確認租借時間」頁面有項目完成記錄 (「因此,為確認...」)。並加入回應佇列。
  4. 代理會將回應佇列傳送給使用者。
使用者:謝謝。
代理:太好了!現在請選擇車輛。
服務專員:您想要經濟型還是豪華型車輛?
  1. 系統會比對「Confirm Rental Duration」頁面中的 small_talk.confirmation.yes 意圖路徑。
  2. 代理會傳送訊息確認使用者的選擇 (「好的!Now let's choose..."), 並加入回應佇列。
  3. 工作階段會轉換至「車輛消歧義」頁面。
  4. 「車輛消歧」頁面表單未填寫完整,因此代理程式會使用 vehicle_type 參數提示使用者 (「您想要經濟型還是豪華型...」),並加入回應佇列。
  5. 代理會將回應佇列傳送給使用者。
終端使用者:請選擇經濟型配送服務。
代理:你想要 Cymbal Car 還是 Cymbal Truck?
  1. 系統會比對 $session.params.vehicle_type="economy_vehicle" 意圖 路由。
  2. 工作階段會轉換至「Economy Options」頁面。
  3. 「經濟選項」頁面會顯示項目履行選項 (「你是否希望...」), 並加入回應佇列。
  4. 代理會將回應佇列傳送給使用者。
終端使用者:Cymbal Truck。
代理:Cymbal 卡車的價格為每天 $50.33 美元。 可容納 4 人,並隨附 AM/FM 收音機。 要繼續付款嗎?
使用者:是,請繼續。
  1. 系統會比對 $session.params.vehicle_type="Cymbal Truck" 意圖 路徑,並填入 vehicle_model 參數。
  2. 工作階段會轉移至「Confirm Cymbal Truck」(確認鐃鈸卡車) 頁面。
  3. 「Confirm Cymbal Truck」(確認 Cymbal Truck) 頁面會顯示項目履行資訊 (「The Cymbal Truck is $50.33 per day...」),並加入回應佇列。
  4. 代理會將回應佇列傳送給使用者。
  5. 使用者的回覆符合 small_talk.confirmation.yes 路線。
服務專員:請問你要使用哪種卡片?
使用者:Altostrat
服務專員:請輸入卡號。
End-user: 1234 1234 1234 1234
Agent: What is the name on the card?
使用者:Charlie
服務專員:帳單地址的街道地址為何?
消費者:臺北市信義區信義路五段 7 號 73 樓
服務專員:帳單郵遞區號為何?
使用者:94045
服務專員:你將在 2024 年 3 月 5 日 12:00:00 於拉斯維加斯取車, 並在 2024 年 3 月 15 日 12:00:00 還車。這趟行程的總費用為 $175.38 美元。
服務專員:感謝你向我們租車,祝你有美好的一天!
  1. 工作階段會轉移至「付款」頁面。
  2. 「Payment」表單未填寫完整,因此代理程式會提示使用者提供 card_type、card_number、billing_name、billing_street_address 和 billing_zip_code 參數 (「What card type will...」)。這些訊息會依序加入回覆佇列,並在使用者回覆時傳送。系統會根據使用者的回覆設定各項參數值。
  3. 工作階段會轉換至「租賃確認」頁面。
  4. 「租車確認」頁面會顯示訂單履行資訊 (「好的,取車時間為...」),並加入回應佇列。
  5. 代理會將回應佇列傳送給使用者。
  6. 工作階段會轉換至「結束工作階段」頁面。

從 Dialogflow 傳送資訊卡訊息

Dialogflow 可以回覆文字或資訊卡訊息。如要使用訊息卡片回覆,請在完成中將其指定為自訂酬載。

下列 JSON 顯示如何在完成動作時,以自訂酬載形式傳送訊息卡片:

json

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": { "cardsV2": [{
    "cardId": "createCardMessage",
    "card": {
      "header": {
        "title": "A card message!",
        "subtitle": "Sent from Dialogflow",
        "imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
        "imageType": "CIRCLE"
      },
      "sections": [{ "widgets": [{ "buttonList": { "buttons": [{
        "text": "Read the docs!",
        "onClick": { "openLink": {
          "url": "https://developers.google.com/workspace/chat"
        }}
      }]}}]}]
    }
  }]}
}}}}

限制和注意事項

  • 搭配使用 Google Chat 應用程式與 Dialogflow 時,Chat 事件物件有下列限制和注意事項:
    • 應用程式住家事件:目前不支援 APP_HOME 事件。
    • Dialogflow 查詢輸入:傳送至 Dialogflow 代理程式的查詢輸入文字取決於事件類型:
      • MESSAGE:即時通訊訊息中 argumentText 欄位的值。
      • APP_COMMAND:字串 "APP_COMMAND_PAYLOAD"。
      • ADDED_TO_SPACE:字串 "ADDED_TO_SPACE_PAYLOAD"。
      • REMOVED_FROM_SPACE:字串 "REMOVED_FROM_SPACE_PAYLOAD"。
      • CARD_CLICKED:字串 "BUTTON_CLICKED_PAYLOAD"。
      • WIDGET_UPDATED: 字串 "WIDGET_UPDATED_PAYLOAD" (用於自動完成)。
    • 完整事件酬載:系統會將對話互動事件的完整 JSON 酬載,傳送至 WebhookRequest.payload 欄位中的 Dialogflow。您可以在 Dialogflow 網路服務掛鉤中存取這項資訊。詳情請參閱「Dialogflow CX Webhook 要求說明文件」。
  • 回應指令和接收資訊卡或對話方塊資料時的注意事項:
  • 不支援連結預覽。
  • 如果 Dialogflow 代理程式只回覆一則訊息,系統會同步將該訊息傳送至 Google Chat。如果 Dialogflow 代理程式回覆多則訊息,系統會針對每則訊息呼叫 Chat API 中的 spaces.messages 資源,以非同步方式將所有訊息傳送至 Chat。create
  • 將 Dialogflow CX 與 Chat 整合時,Dialogflow 虛擬服務專員和 Chat 應用程式必須在同一個 Google Cloud 專案中設定。如要在不同的雲端專案中設定 Dialogflow 和 Chat,可以設定中繼伺服器來協助建立連線。如要瞭解如何整合,請參閱 GitHub 上的這項 Dialogflow CX 即時通訊整合範例。

疑難排解

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

  • Google Workspace 外掛程式記錄:查詢記錄,瞭解 Chat 應用程式的行為詳細資訊,包括與 Chat 的互動。請參閱「查詢 Google Workspace 外掛程式的記錄」。

  • Google Chat 應用程式錯誤:如需一般 Chat 應用程式錯誤訊息和修正方式,請參閱「排解及修正 Chat 應用程式錯誤」。

  • Dialogflow CX Cloud Logging:請務必在 Dialogflow 代理程式設定中啟用 Cloud Logging,擷取詳細的執行記錄,包括代理程式和 Webhook 互動產生的錯誤。如要瞭解如何啟用及設定這項功能,請參閱 Dialogflow CX 代理設定說明文件。您可以在 Google Cloud 控制台的 Logs Explorer 中查看這些記錄。

  • Dialogflow CX 對話記錄:查看過往互動,瞭解對話流程並找出問題發生位置。請參閱「對話記錄」。

  • Dialogflow 一般疑難排解:如要解決更廣泛的 Dialogflow 問題,請參閱 Dialogflow CX 疑難排解指南。

清除所用資源

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

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

    前往 Resource Manager

  2. 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除) 。
  3. 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除專案。
  • Dialogflow CX 採用狀態機器方法設計 Dialogflow 代理,讓您清楚明確地控管對話、提升使用者體驗,以及改善開發工作流程。建構 Dialogflow Chat 應用程式時,建議使用 Dialogflow CX。
    • 如要進一步瞭解如何建構及設定 CX 代理,請參閱「Dialogflow CX 代理」。
    • 如需有關如何建構及設定 Dialogflow CX 代理的詳細逐步操作說明,請參閱「建立 Dialogflow CX 代理」。
    • 程式碼研究室:如要瞭解如何建構 Dialogflow CX 資料儲存庫虛擬服務專員,請參閱這項程式碼研究室的知識聊天應用程式。
    • 程式碼研究室:如要瞭解如何建構 Dialogflow CX 對話式虛擬服務專員,請參閱這項程式碼研究室的意見回饋即時通訊應用程式,瞭解如何運用 Gemini 打造 Google Chat 擴充應用程式。
  • Dialogflow ES 是透過 Chat 應用程式使用 Dialogflow 的另一種方式。

非外掛程式的 Chat 應用程式:建構 Dialogflow CX Google Chat 應用程式

如果您要建構或維護的 Chat 應用程式不是 Google Workspace 外掛程式,請注意下列設定、酬載和事件差異。

設定非外掛程式的 Dialogflow CX Chat 應用程式

在 Google Cloud 控制台中設定 Google Chat API 時,請注意下列事項:

  1. 取消勾選「將這個 Chat 擴充應用程式建構為 Google Workspace 外掛程式」。系統會開啟對話方塊,要求您確認。在對話方塊中,按一下「停用」。
  2. 完成其餘的 Dialogflow CX 設定,然後按一下「儲存」。

從非外掛程式的 Dialogflow CX Chat 擴充應用程式傳送資訊卡訊息

在非外掛程式的 Chat 應用程式中,於 Dialogflow 自訂酬載中指定頂層 cardsV2 物件:

json

{
  "cardsV2": [{
    "cardId": "createCardMessage",
    "card": {
      "header": {
        "title": "A card message!",
        "subtitle": "Sent from Dialogflow",
        "imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
        "imageType": "CIRCLE"
      },
      "sections": [
        {
          "widgets": [
            {
              "buttonList": {
                "buttons": [
                  {
                    "text": "Read the docs!",
                    "onClick": {
                      "openLink": {
                        "url": "https://developers.google.com/workspace/chat"
                      }
                    }
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  }]
}

非外掛程式的 Dialogflow CX Chat 應用程式限制和注意事項

  • 即時通訊互動事件 支援下列項目,並請注意以下事項:
    • 支援的互動事件類型如下:
      • MESSAGE
      • ADDED_TO_SPACE
      • CARD_CLICKED
    • 如果是 MESSAGE 或 ADDED_TO_SPACE 事件,傳送至 Dialogflow 代理程式的查詢輸入內容,會對應至即時通訊訊息中的 argumentText 欄位值。如果訊息包含斜線指令,系統會改用 text 欄位的值。
    • 如果是 CARD_CLICKED 事件,傳送至 Dialogflow 代理程式的查詢輸入內容會格式化為 CARD_CLICKED.functionName,其中 functionName 對應於附加至互動式資訊卡元素 (例如按鈕) 的 Action 物件的 function 欄位值。
    • 系統會將每個 Chat 互動事件的完整 JSON 酬載,以查詢參數中的自訂酬載形式傳送至 Dialogflow,並透過查詢 WebhookRequest.payload 欄位的值,使用 Dialogflow 網路鉤子存取。
  • 在非外掛程式的 Chat 應用程式中,回應斜線指令和接收來自資訊卡或對話方塊的資料時,請注意下列事項:
    • 如果 Dialogflow Chat 應用程式 (非外掛程式) 收到含有斜線指令的訊息,查詢輸入內容就只會包含 text 欄位的值。text 欄位開頭是斜線指令的名稱 (例如 /command),您可以使用這個名稱設定 Dialogflow 代理程式的意圖,偵測斜線指令。
    • 如要在非外掛程式的 Chat 應用程式中,顯示 Dialogflow 代理程式的對話方塊,請傳回單一自訂 JSON 酬載,其中包含含有 DIALOG 動作回應的訊息。
    • 如要處理從非外掛程式的 Chat 應用程式資訊卡輸入的資料,Dialogflow 代理程式可以偵測以 CARD_CLICKED 開頭的意圖,並以包含適當 action 的單一自訂 JSON 酬載回應。