對話動作可讓開發人員為 Google 助理使用者提供自訂體驗或對話,藉此擴充 Google 助理的功能。在對話中,對話動作會處理 Google 助理發出的要求,並傳回含有音訊和視覺元件的回應。對話動作也可以在傳回回應之前連線至外部服務,以新增對話或商業邏輯。
舉例來說,使用者可叫用對話動作,在他們查詢資訊、取得個人化建議或進行數位付款的相關交易時,從外部執行要求服務取得回應。
![在與 Google 助理的往來對話中,使用者詢問了會議進行期間,並收到答覆。](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/home-conversation-io.png?authuser=0000&hl=zh-tw)
應用情境
對話動作最適合用於能與其他體驗相輔相成的使用情境,良好的對話動作通常可分為下列一般類別:
- 方便回答的問題可與熟悉的輸入內容 (例如時間或日期) 整合的動作,例如預訂航班。
- 快速但吸引人的實用操作。使用者只需花一點時間就能立即享有優勢,例如找出最喜歡的球隊的下一場比賽時間。
- 本質上更適合語音的操作。通常是想要免持進行的操作,例如在瑜珈或輕度運動期間接收指導。
對話動作的運作方式
與使用以電腦為主的模式的傳統行動版和電腦版應用程式不同,使用者會透過自然人聲、來回對話與 Google 助理動作互動。對話動作會在使用者叫用時開始,直到使用者選擇退出 (使用預先定義的詞組),或您的對話動作表示對話結束為止。
在對話期間,Google 助理會將使用者輸入內容從語音轉換成文字,然後轉換成用於自然語言處理的 JSON 要求。這些要求會傳送至所謂的「對話執行要求」。
對話執行要求會將使用者的查詢剖析為結構化資料,處理這些資料,然後將 Webhook JSON 回應傳回 Google 助理。Google 助理會接著處理並顯示回應。
![對話執行要求能以 JSON 要求輸入內容和 Webhook JSON 回應輸出內容表示。](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/conversation-fulfillment-json-in-out.png?authuser=0000&hl=zh-tw)
建構自己的自然語言處理服務可能不太容易,因此我們提供 Dialogflow 來為您處理。如果開發人員無法使用 Dialogflow,我們也提供 Actions SDK 做為備份選項,並提供獨立的開發路徑。
在 Dialogflow 中設定代理程式後,Dialogflow 的功能就會採用您的對話執行要求,包括使用 Dialogflow 執行要求。這個方法可讓您將對話執行要求與其他服務區隔開來,同時為使用者提供他們想要的結果。
![Actions on Google 會剖析使用者話語,並將要求傳送至 Dialogflow。Dialogflow 會比對意圖並擷取參數,並傳送至相應的 Dialogflow 執行要求。該執行要求隨後會將回應傳回 Actions on Google,然後在 Google 助理途徑上顯示回應。](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/aog-user-query-to-fulfillment.png?authuser=0000&hl=zh-tw)
建立對話行動
建構對話動作時,大部分的作業內容都是設計對話和建立對話執行要求。你可以將對話想像成對話動作的使用者介面您必須考量使用者如何叫用動作專案、使用者在對話中可說的有效內容,以及動作專案如何回應這些指令。
在 Actions 專案中,您可以提供發布專案的中繼資料,並指定對話執行要求方法。使用 Dialogflow 的開發人員將 Dialogflow 代理程式與專案建立關聯,然後透過 Dialogflow 建立執行要求。對於使用 Actions SDK 的開發人員,建構對話執行要求涉及以對話 Webhook 格式編寫及部署。
設計對話時,建議您採用我們的程序和設計原則。對話介面仍會是一項相對新技術,瞭解最佳做法可協助您節省時間。
使用 Dialogflow 的執行要求
與 Dialogflow 代理程式整合時,代理程式會在對話動作中處理 NLU 的使用者查詢內容。您的 Dialogflow 代理程式會在這個步驟中為您執行以下操作:
- 根據您提供的訓練詞組和對話情境,剖析 Google 助理傳入的每個要求。
- 將每項要求對應至 Dialogflow 意圖 (也稱為事件)。
- 將參數擷取到 Dialogflow 實體。
接著,Dialogflow 代理程式就能呼叫自己的執行要求 (以 Webhook 部署) 來執行某些邏輯,例如呼叫 REST API 或其他產生回應以傳回 Google 助理的後端服務。這個 Webhook 又稱為 Dialogflow 執行要求,並使用 Dialogflow Webhook 格式。
![Dialogflow 接受使用者話語來比對意圖,並將擷取的參數提供給 Dialogflow 執行要求。執行要求會傳回回應給使用者。](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/dialogflow-parse-query.png?authuser=0000&hl=zh-tw)
使用 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 意圖為使用者提供查詢要求。針對各個意圖,您的執行要求 Webhook 必須剖析及處理意圖,然後將 JSON 回應傳回給 Google 助理給使用者。
回應
為 Google 助理建構動作時,您需要為各種介面設計對話內容,例如適用於聲控喇叭的語音對話,或在 Google 助理支援的表面上以視覺形式進行對話。這個做法可讓使用者透過語音或視覺用途快速完成工作。
建立執行要求時,您可以選擇各種引人入勝的回應類型,供 Google 助理向使用者呈現。包括內含簡單文字的即時通訊對話框、媒體回應、輪轉介面,甚至是使用互動式畫布的 HTML。
後續步驟
按照「為 Google 助理建構動作 (第 1 級)」程式碼研究室提供詳細的逐步操作說明,即可開始建構第一個對話動作。
然後,您可以繼續參閱我們的指南,瞭解如何使用 Dialogflow 或 Actions SDK 建構您自己的對話執行要求。您也可以透過下列額外資源來建構對話動作:
- Actions on Google GitHub 存放區:程式碼範例和程式庫。
- r/GoogleAssistantDev:專為使用 Google 助理開設的官方 Reddit 社群。