對話動作 (Dialogflow)

對話動作可讓開發人員針對 Google 助理使用者建立自訂體驗或對話,藉此擴充 Google 助理的功能。在對話中,對話動作會處理 Google 助理發出的要求,並傳回包含音訊和影像元件的回應。對話動作也可以先連線至外部服務,以便新增對話或商業邏輯,再傳回回應。

舉例來說,使用者可以查詢對話動作,以在外部查詢服務中查詢資訊、取得個人化建議或執行涉及數位付款的交易。

使用者透過 Google 助理進行長期對話時,使用者會詢問和安排會議的時間。
圖 1. 對話動作範例

用途

對話動作最適合用於其他使用體驗的簡易用途。良好的對話動作通常可分為以下一般類別:

  • 方便使用者回答問題。可配合熟悉的輸入方式執行的動作,例如預訂航班。
  • 快速、吸引人的實用動作。這類遊戲通常可讓使用者享有幾乎立即的好處,例如他們會關注球隊何時比賽。
  • 更適合在語音指令中發動的動作。這通常是你希望不必動手也能做的事情,例如在瑜珈或輕量運動期間接受指導。

對話動作的運作方式

與使用以電腦為中心的傳統電腦與電腦版應用程式不同,使用者可以透過自然且來回的對話與 Google 助理互動。對話動作會在使用者叫用時開始,直到使用者選擇退出 (使用預定的詞組) 或對話動作表示對話結束為止。

在對話中,Google 助理會將使用者輸入內容轉換為語音內容,並轉換為 JSON 要求,以自然語言處理。這些要求會稱為「對話執行要求」

對話執行要求會將使用者的查詢內容剖析為結構化資料、處理該項資料,並傳回 Webhook JSON 回應給 Google 助理。然後 Google 助理會處理並呈現使用者的回覆。

對話執行要求可以使用 JSON 要求輸入和 Webhook JSON 回應輸出內容來表示。
圖 2. 對話執行要求是 JSON-JSON 格式的系統

建構自己的自然語言處理服務並不容易,因此我們提供 Dialogflow 給您的處理方法。對於無法使用 Dialogflow 的開發人員,我們也會提供 Action SDK 做為備用選項,但其中包含獨立的開發路徑。

您在 Dialogflow 中設定代理程式後,即可由 Dialogflow 的功能 (包括使用 Dialogflow 執行要求) 擴充對話執行要求。這個方法可將對話執行要求與其他服務分開,以便為使用者提供所需結果。

Actions on Google 會剖析使用者的語音內容,並將要求傳送至 Dialogflow。Dialogflow 會比對意圖,並擷取要傳送至對應 Dialogflow 執行要求的參數。接著,執行要求會將回應傳回 Actions on Google,並在 Google 助理介面上轉譯回應。
圖 3. 使用 Dialogflow 時的對話執行要求

建立對話動作

在建構對話動作時,大部分的作業都是設計對話並建構對話執行要求。請將對話視為對話動作的使用者介面。您必須思考使用者如何叫用您的行動專案、能在對話中討論的有效內容,以及您的行動專案如何回應動作。

在 Actions 專案中,您必須提供發布專案的中繼資料,並指定對話執行要求的方法。使用 Dialogflow 的開發人員可以將 Dialogflow 代理程式與專案建立關聯,然後透過 Dialogflow 建構執行要求。如果開發人員使用 Actions SDK,則必須建構對話 Webhook 格式,才能進行編碼和部署作業。

設計對話時,建議您採用我們的程序和設計原則。對話介面仍是相對全新的技術,而學習最佳做法可讓您節省時間。

使用 Dialogflow 執行出貨

與 Dialogflow 代理程式整合時,代理程式會處理對話動作中的 NLU。您的 Dialogflow 代理程式會在這個步驟中執行下列操作:

  1. 根據您提供的訓練詞組和對話情境,剖析 Google 助理發出的每個傳入要求。
  2. 將每個要求與 Dialogflow 意圖配對 (也稱為事件)。
  3. 將參數擷取至 Dialogflow 實體。

接著,您的 Dialogflow 代理程式就能根據自己的執行要求 (以 Webhook 部署) 執行呼叫,以執行特定邏輯,例如呼叫 REST API 或其他會回傳回應給 Google 助理的後端服務。這個 Webhook 也稱為 Dialogflow 執行要求,並使用 Dialogflow Webhook 格式

Dialogflow 接受使用者語音表達的意圖,將擷取的參數提供給 Dialogflow 執行要求。執行要求會傳回回應。
圖 4. Dialogflow 虛擬服務專員會將使用者查詢內容剖析為 Dialogflow 執行要求的結構化資料

使用 Dialogflow 時,建構對話執行要求主要涉及開發 Dialogflow 執行要求 Webhook。透過 Actions on Google 說明文件,您可以找到有助於設計、建構及測試 Dialogflow 執行要求 Webhook 的資源。最重要的是,這些資源包括 Node.js 用戶端程式庫Java 用戶端程式庫

使用 Dialogflow 建構時,您將使用 Dialogflow 控制台建立 Dialogflow 意圖、實體和訓練詞組。

如果想進一步瞭解 Dialogflow 的一般資訊,請參閱 Dialogflow 說明文件,瞭解 Actions on Google 整合的相關資訊。

使用 Actions SDK 的執行要求

使用 Actions SDK 建構對話執行要求,主要在於建立及部署動作套件。動作套件是以 ActionPackage 格式建立,並使用對話 Webhook 格式。動作套件包含特定動作專案的所有動作。

透過 Google Actions on Google 意圖,Google 助理會提供使用者執行對話要求的查詢。每個意圖的 Webhook 都必須剖析意圖、處理意圖,然後向使用者傳回 Google 助理的 JSON 回應。

回應

建構 Google 助理的「動作」時,您可以為各種途徑設計您的對話,例如使用語音啟動的語音功能的對話,或是 Google 助理支援的表面上的視覺對話。這個做法可讓使用者透過語音或視覺預設快速完成工作。

建構執行要求時,您可以從多種互動式回應類型中選取,藉此讓 Google 助理向使用者顯示。包括內含簡單文字、媒體回應、輪轉介面,甚至使用互動式畫布 HTML的 HTML 的即時通訊泡泡。

後續步驟

按照「Google 助理的建構動作 (第 1 級)」程式碼研究室的逐步說明,開始建構您的第一個對話動作。

接著,您可以繼續參閱指南,瞭解如何使用 Dialogflow使用 Actions SDK 建構自己的對話執行要求。您也可以探索下列其他資源,打造對話動作: