意圖是指 Google 助理需要您執行的操作,例如某些需要處理的使用者輸入內容,或是您需要處理的系統事件。您可以使用意圖來建構叫用和對話模型。發生這些事件時,Google 助理執行階段會將該意圖與對應的意圖進行比對,並將意圖傳送至您的處理動作。意圖主要有兩種,詳情請見以下清單:
使用者意圖可讓您擴充 Google 助理理解使用者您品牌和服務的使用者要求。您可以在意圖中定義自訂訓練詞組,進而產生意圖的語言模型。該語言模型會擴充 Google 助理 NLU,使其更容易瞭解。
系統意圖具有訓練資料或其他 Google 助理定義的其他非輸入輸入信號。也就是說,您不需要針對這些意圖定義訓練詞組。Google 助理會按照標準方式 (例如主要叫用或使用者未提供任何輸入) 與標準意圖進行比對。
使用者意圖
建立動作時,您會建立包含訓練詞組的使用者意圖,讓 Google 助理能夠更進一步地理解。Google 助理委派使用者要求給動作時,會使用訓練詞組強化 NLU。
在這種情況下,Google 助理會將使用者與動作之間的通訊中斷,並將使用者輸入內容對應至具有相符語言模型的意圖。然後,Google 助理會通知相符意圖的動作,您可以在情境中處理。
建立使用者意圖時,您必須指定下列元素:
「全域意圖指定」會定義 Google 助理執行階段是否能在叫用以及對話期間比對指定的使用者意圖。根據預設,Google 助理只能在對話期間比對使用者意圖。只有標示為「全域」的意圖才有資格使用深層連結叫用。
訓練詞組是使用者為了比對意圖而可能說出的內容。Google 助理的 NLU (自然語言理解) 引擎會自然擴充這些訓練詞組,以納入其他類似的詞組。提供大量的高品質範例,可提高意圖的品質和比對的準確度。
參數是指您想從使用者輸入內容中擷取的資料類型,如要建立參數,請使用 types 為訓練詞組加上註解,以通知 NLU 引擎,讓使用者擷取部分使用者輸入內容。您可以使用系統類型或為參數建立自己的自訂類型。
當 NLU 引擎在使用者輸入內容中偵測到參數比對時,就會將該值擷取為輸入參數,以便在情境中連同參數一起執行邏輯。如果意圖參數的名稱與情境運算單元相同,Google 助理執行階段就會從意圖參數自動填入場景版位。詳情請參閱運算單元值對應說明文件。
意圖參數也支援「部分」比對。舉例來說,如果您指定 DateTime
的類型,而使用者只提供日期,NLU 仍會將部分值擷取為參數。
建議您使用自己的 NLU 來處理動作的所有使用者輸入內容。例如,您可能希望動作會在對話期間回應所有不相符的情境。如要擷取所有使用者輸入內容,請使用「任意形式文字類型」建立意圖。不過,您應避免使用自訂意圖來覆寫 Google 助理的預設的無比對行為,因為這可能會讓使用者無法在動作之間移動。
當您在 Actions 主控台建立自訂意圖時,Actions Builder 會提供可能與使用者意圖相同角色的系統意圖。如要進一步瞭解系統意圖,請參閱下一節的說明。
系統意圖
Google 助理會根據標準系統事件比對系統意圖。這些事件可能包含系統定義的語言模型 (例如使用者稱「暫停」來暫停媒體播放器),或是可能沒有語言模型,例如使用者未提供任何輸入內容。由於這些意圖是由 Google 助理提供,因此不必擔心比對方式,而是只在比對出意圖時處理意圖。
系統意圖也取代了常用動作 (例如 YES
和 NO
) 建立使用者意圖的權限。系統意圖經過訓練,適用於所有語言代碼,因此您可以更輕鬆地為使用多種語言的使用者提供一致的體驗。系統意圖也可以設為全域意圖。
系統意圖會的版本化。只要 Google 助理支援該版本,您就可以使用特定版本的系統意圖。如果動作使用不支援的系統意圖版本,則系統意圖會自動更新為支援的版本。
意圖清單
意圖 | 說明 |
---|---|
actions.intent.MAIN
|
每個動作專案都必須包含此預設的主要叫用,與您的顯示名稱建立關聯。使用者說出「Ok Google,與 <顯示名稱> 交談」之類的指令,即可叫用動作。 |
|
當使用者表達「動作」無法對應至行動意圖時,系統就會比對這些意圖。您可以在最終意圖中設定個別提示和結束訊息。 |
|
如果使用者在 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 提供的隱含叫用 (不使用顯示名稱)。 |
新增其他語言的支援
特定系統意圖 (例如 YES
、NO
和 NO_MATCH
) 僅支援英文。如要新增其他語言的支援,您必須建立符合這些系統意圖的使用者意圖。新程式碼的實作方式必須與實作的系統意圖相同。
舉例來說,假設您正在開發新動作,並實作 YES
系統意圖。YES
系統意圖僅支援英文,但您希望應用程式支援德文和日文的互動功能。如要支援其他語言,請建立意圖以德文和日文的訓練詞組,然後實作您在 YES
系統意圖中使用的處理機制。
進一步瞭解如何建立使用者意圖。
進一步瞭解如何本地化使用者意圖。
無相符項目
如果使用者的回應與您的其中一個意圖不符,Google 助理會嘗試處理輸入內容。這項行為可讓使用者在對話期間變更動作。舉例來說,假設使用者問「哪一部電影會播放什麼?」,然後在背景交卷時變更:「明天的天氣如何?」。在這個範例中,由於「明天的天氣如何?」,但並非由初始提示觸發的對話有效回應,因此 Google 助理會自動嘗試處理比對,並將使用者移至適當的對話。
如果 Google 助理找不到與使用者輸入內容相符的適當動作,使用者會在動作內繼續。
由於 Google 助理可能會中斷您的動作以回應有效的相符情境,因此請勿使用 NO_MATCH
系統意圖執行使用者查詢內容。您應使用 NO_MATCH
意圖提示使用者。