對話動作功能將於 2023 年 6 月 13 日淘汰。詳情請參閱「對話動作已淘汰」。

對話動作

對話動作可讓您使用自己的對話介面擴充 Google 助理,讓使用者能夠存取您的產品和服務。動作會利用 Google 助理的強大自然語言理解 (NLU) 引擎處理及瞭解自然語言輸入內容,並根據該輸入內容執行任務。

總覽

對話動作是一種簡單的物件,用來定義對話中的進入點 (稱為叫用):

  • 「叫用」會定義使用者如何要求 Google 助理啟動其中一項動作的對話。Action 的叫用是由單一 意圖定義,
  • 「對話」會定義使用者在叫用後與動作的互動方式。請使用意圖類型情境提示建構對話。
  • 此外,動作還能將額外的工作委派給「執行要求」,也就是透過 Webhook 與「動作」進行通訊的網路服務。這可讓您執行資料驗證、呼叫其他網路服務、執行商業邏輯等。

您可以根據使用者重視的用途,將一或多個動作合併為名為「動作」專案的邏輯容器。您的動作專案包含完整的叫用模型 (所有叫用的集合),可讓使用者從對話模型的邏輯位置開始 (所有使用者可以說的指令,以及所有傳回給使用者的方法)。

圖 1. 做為項目模型進入點的一系列動作。符合叫用資格的意圖會視為全域

叫用

叫用的關聯顯示名稱代表品牌、名稱或人物角色,以便使用者要求 Google 助理叫用動作。使用者可以單獨使用這個顯示名稱 (稱為主要叫用動作) 或選擇性的深層連結詞組,來叫用動作。

舉例來說,使用者可以用以下詞組叫用專案中顯示名稱為「Facts for Google」的三個獨立動作:

  • 「Ok Google,與 Google 交談。」
  • 「Ok Google,與 Google 聯絡以獲得公司事實」
  • 「Ok Google,與 Google 交談以獲得歷史事實」

範例中的第一個叫用是主要叫用。這個叫用與名為 actions.intent.MAIN 的特殊系統意圖相關聯。第二個和第三個叫用是深層連結叫用,方便您指定其他詞組,讓使用者要求特定功能。這些叫用會對應到您指定為全域的使用者意圖。這個範例中的每個叫用作業都會提供一個進入點,對應一個動作。

圖 2. 主要叫用範例

圖 2 說明典型的主要叫用流程:

  1. 使用者要求某項動作時,通常會要求 Google 助理提供顯示名稱。
  2. Google 助理會比對使用者的要求和對應的要求相符。在本例中為 actions.intent.MAIN
  3. 此動作會收到意圖比對通知,並回應對應的提示以與使用者開始對話。

對話

對話會定義使用者在叫用動作後如何與動作互動。您只要為對話定義有效的使用者輸入內容、處理該輸入的邏輯,以及要回覆使用者的對應提示,系統就會建立這些互動。以下圖表顯示了一般對話如何與對話的低階元件搭配運作:意圖類型情境提示

圖 3. 對話範例

圖 3 說明一般對話回合:

  1. 使用者說出內容時,Google 助理 NLU 會將輸入內容與適當的意圖進行比對。如果意圖的語言模型能與使用者輸入內容密切或完全一致,系統就會比對意圖。您可以指定「訓練詞組」或使用者想表達的內容範例,以定義語言模型。Google 助理會使用這些訓練詞組並加以擴充,以建立意圖的語言模型。
  2. 當 Google NLU 比對意圖時,就可以從輸入內容中擷取所需的參數。這些參數有相關聯的「類型」,例如日期或數字。請為意圖訓練詞組的特定部分加上註解,以指定要擷取的參數。
  3. 接著,情境會處理相符的意圖。您可以將場景視為動作的邏輯執行者,執行繁瑣的工作並擺脫必要的邏輯,以便推動對話。場景會以迴圈的形式執行,並提供靈活的執行生命週期,方便您驗證意圖參數、執行運算單元填充、傳送提示給使用者等等。
  4. 情境執行完畢後,通常會傳送提示給使用者,以繼續對話或視情況結束對話。

出貨

叫用或對話時,您的動作會觸發 Webhook,通知執行要求執行某些工作。

圖 4. 對話範例

圖 4 說明如何使用執行要求產生提示,這是使用執行要求的常見方式:

  1. 在動作執行作業的特定時間點,可能會觸發 Webhook 透過 JSON 酬載將要求傳送至已註冊的 Webhook 處理常式 (您的執行服務)。
  2. 執行要求會處理要求,例如呼叫 REST API 進行某些資料查詢,或驗證 JSON 酬載中的部分資料。執行要求的常見做法是在執行階段產生動態提示,讓對話更貼近目前使用者。
  3. 執行要求會傳回回應 (包含 JSON 酬載) 的回應。它會使用酬載中的資料繼續執行,並回應使用者。