Conversational Actions

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

總覽

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

  • 「叫用」定義了使用者如何指示 Google 助理透過其中一項動作發起對話。動作的叫用是由單一「意圖」定義,該意圖會在使用者要求動作時進行比對。
  • 「對話」定義了使用者在叫用動作後如何與動作互動。您可以利用意圖類型場景提示建立對話。
  • 此外,您的動作可以將額外工作委派給「執行要求」,執行要求就是透過 Webhook 與您的動作通訊的網路服務。這可讓您執行資料驗證、呼叫其他網路服務、執行商業邏輯等。

您可以根據使用者重視的用途,將一或多個動作組合成「動作專案」邏輯容器。動作專案內含整個叫用模型 (所有叫用的集合),可讓使用者從對話模型中的邏輯位置開始 (使用者可能表達的所有可能內容,以及您回覆使用者的所有可能方式)。

圖 1. 可做為對話模型進入點的動作集合。符合叫用資格的意圖會視為「全域」

叫用

叫用會與代表品牌、名稱或人物角色的顯示名稱相關聯,讓使用者可以要求 Google 助理叫用您的動作。使用者可以使用這個顯示名稱 (稱為主要叫用) 或與選用的「深層連結」詞組結合使用,以叫用您的動作。

舉例來說,使用者可以說出下列詞組,在專案中叫用顯示名稱為「Facts about Google」的三個不同動作:

  • 「Ok Google,向 Facts 關於 Google 的資訊」
  • 「Ok Google,與 Facts 談論 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 酬載的動作。以便使用酬載中的資料來繼續執行,並回應使用者。