意圖

意圖代表 Google 助理需要您動作執行的工作,例如某些需要處理的使用者輸入內容或需要處理的系統事件。您可以使用意圖來建構叫用對話模型。當發生這些事件時,Google 助理執行階段會將其與對應的意圖進行比對,並將意圖傳送至動作處理。意圖有兩種主要類型,請參見以下清單:

  • 「使用者意圖」可讓您擴充 Google 助理解讀品牌和服務特有的使用者要求。您可以在意圖中定義自訂訓練詞組,進而產生意圖的語言模型。這個語言模型增強了 Google 助理 NLU,所以更容易理解。

  • 系統意圖具有 Google 助理定義的訓練資料或其他非對話輸入信號。這表示您不需要為這些意圖定義訓練詞組。在主要叫用等常見的系統事件期間,或是使用者未提供任何輸入內容時,Google 助理會以標準方式比對這些意圖。

圖 1. 常見的意圖比對情境。使用者表示符合全域意圖的內容。相應的場景會啟用,最終消耗更多使用者輸入內容。另一個意圖比對相符,進而轉換至其他場景並啟用另一個情境。

使用者意圖

建構動作時,您會建立包含訓練詞組的使用者意圖,藉此讓 Google 助理能夠理解更多內容。Google 助理在委派使用者要求至您的動作時,會使用您的訓練詞組來擴增其 NLU。

發生這種情況時,Google 助理會綁定使用者與您的動作之間的通訊,並將使用者輸入內容對應至具有相符語言模型的意圖。然後,Google 助理會通知符合意圖的動作,讓您可以在場景中處理。

建構使用者意圖時,您必須指定下列元素:

  • 「全域意圖標示」會定義 Google 助理執行階段是否能在叫用和對話期間比對指定的使用者意圖。根據預設,Google 助理只能在對話期間比對使用者意圖。只有標示為全域的意圖才有資格使用深層連結叫用。

  • 「訓練詞組」是指使用者可能會說什麼,來與意圖相符。Google 助理 NLU (自然語言理解) 引擎自然會擴大這些訓練詞組來加入其他類似的詞組。提供大量的高品質範例可提高意圖的品質和比對準確率。

  • 參數是您想從使用者輸入內容中擷取的已輸入資料。如要建立參數,您可以使用 types 為訓練詞組加上註解,以通知 NLU 引擎您想擷取一部分的使用者輸入內容。您可以使用系統類型,也可以自行建立參數的自訂類型。

NLU 引擎偵測到使用者輸入內容中的參數相符時,會擷取該值做為類型參數,以便讓您在場景中使用邏輯。如果意圖參數的名稱與場景版位的名稱相同,Google 助理執行階段就會使用意圖參數中的值自動填入場景版位。詳情請參閱運算單元值對應說明文件。

意圖參數也支援「部分」比對。舉例來說,如果您指定 DateTime 的類型,且使用者只提供日期,NLU 仍會擷取部分值做為參數。

建議您使用自己的 NLU 來處理動作的所有使用者輸入內容。例如,您可能希望動作在對話期間回應所有不相符的情境。為確保能擷取所有使用者輸入內容,請使用「任意形式文字類型」建立意圖。不過,您應避免使用自訂意圖來全面覆寫 Google 助理的預設不比對行為,因為這可能會降低使用者在動作之間移動的能力。

在動作主控台中建立自訂意圖時,Actions Builder 會建議可能填入與使用者意圖角色的系統意圖。如要進一步瞭解系統意圖,請參閱下節說明。

系統意圖

Google 助理會根據標準系統事件來比對系統意圖。這些事件可能有系統定義的語言模型 (例如使用者說出 "pause" 以暫停媒體播放器),或是可能沒有語言模型,例如使用者完全不提供任何輸入內容。由於這些意圖是由 Google 助理提供,因此您不必擔心它們的比對方式,而是只有在意圖相符時要如何處理。

系統意圖也取代了為常用動作建立使用者意圖的需求,例如 YESNO。系統意圖是針對所有語言代碼進行訓練,可讓您更輕鬆地為使用多種語言的使用者實作一致的體驗。系統意圖也可以設為全域意圖。

系統意圖已建立版本,只要 Google 助理支援該版本,您就可以使用特定版本的系統意圖。如果動作使用不支援的系統意圖版本,該系統意圖會自動更新至支援的版本。

意圖清單

意圖 說明
actions.intent.MAIN 每個動作專案都必須包含這個預設主要叫用,這會與您的顯示名稱相連結。使用者說出「Ok Google,與 <顯示名稱> 交談」等詞組即可叫用動作。

actions.intent.NO_MATCH_1

actions.intent.NO_MATCH_2

actions.intent.NO_MATCH_FINAL

當使用者說出無法對應至動作中的意圖時,系統就會比對這些意圖。您可以在最終意圖中設定個別提示和結束訊息。

actions.intent.NO_INPUT_1

actions.intent.NO_INPUT_2

actions.intent.NO_INPUT_FINAL

如果 8 秒後使用者沒有輸入內容,系統就會比對這些意圖。您可以為每個意圖設定個別提醒,並在最終意圖中設定結束訊息。

actions.intent.CANCEL 當使用者在對話期間想結束動作時 (例如使用者說「我要退出」),系統就會比對出這項意圖。
actions.intent.MEDIA_STATUS_FINISHED 使用者完成媒體播放或跳到下一首媒體時,系統會比對此意圖並傳送至您的動作。
actions.intent.MEDIA_STATUS_PAUSED 使用者在媒體回應中暫停播放媒體時,系統會比對這個意圖並傳送至您的動作。
actions.intent.MEDIA_STATUS_STOPPED 當使用者停止或離開媒體回應播放媒體時,系統會比對此意圖並傳送至您的動作。
actions.intent.MEDIA_STATUS_FAILED 當媒體回應的播放器無法播放時,系統會將此意圖比對並傳送至您的動作。
actions.intent.YES

當使用者向您的動作提供肯定的回應時,系統就會比對出這個意圖。

actions.intent.NO

如果使用者對您的動作做出負面回應,系統就會比對出這個意圖。

actions.intent.REPEAT

當使用者要求動作重複播放最後一則回應時,系統就會比對出此意圖。如果代理程式「沒有」啟用系統意圖,Google 助理會自動處理重複要求。啟用這項系統意圖後,您就能修改重複要求和回應的處理方式。

actions.intent.PLAY_GAME 當使用者要求玩遊戲時,系統就會比對出這項意圖。這個意圖可讓您選擇採用 Actions on Google 提供的隱含叫用 (在不使用您的顯示名稱的情況下叫用)。

新增其他語言的支援

某些系統意圖 (例如 YESNONO_MATCH) 僅支援英文。如要新增其他語言的支援功能,您必須建立符合這些系統意圖的使用者意圖。您在程式碼中處理新意圖的方式必須與已實作的系統意圖相同。

例如,假設您要開發新動作並實作 YES 系統意圖。YES 系統意圖僅支援英文,但您也希望應用程式支援德文和日文的互動。如要支援其他語言,請建立包含德文和日文訓練詞組的意圖,然後實作您為 YES 系統意圖使用的處理方法。

進一步瞭解如何建立使用者意圖

進一步瞭解如何將使用者意圖本地化

未進行比對產生

當使用者的回應與您的意圖不符時,Google 助理會嘗試處理輸入內容。這個行為可協助使用者在對話中變更動作。例如,有位使用者詢問「本週上映哪些電影?」,然後在對話期間變更情境:「明天天氣如何?」在此範例中,由於「明天天氣如何?」對於初始提示觸發的對話不是有效的回應,因此 Google 助理會自動嘗試處理相符項目,並將使用者移至適當的對話。

如果 Google 助理找不到與使用者輸入內容相符的適當動作,使用者在動作情境中繼續執行。

Google 助理可能會中斷您的動作以回應有效的不相符情境,因此請勿使用 NO_MATCH 系統意圖來執行使用者查詢。您應只使用 NO_MATCH 意圖重新提示使用者。