對話模型定義了使用者可對動作說的內容,以及動作回應使用者的方式。對話模型的主要構成元素為「意圖」、「類型」、「情境」和「提示」。叫用其中一個動作後,Google 助理會將使用者處理完成該動作,而動作會根據您的對話模型為使用者展開對話,當中包含:
有效的使用者要求:如要定義使用者可對動作說出的內容,請建立一組意圖來擴充 Google 助理 NLU,以便瞭解特定動作專屬的要求。每個意圖都會定義訓練詞組,說明使用者可以說的話來符合該意圖。Google 助理 NLU 會擴充這些訓練詞組,加入類似的詞組,而這些詞組的匯總結果則會產生意圖的語言模型。
動作邏輯和回應:場景程序意圖、執行必要的邏輯,並產生提示傳回給使用者。
定義有效的使用者要求
如要定義使用者可對動作說出的內容,請搭配使用意圖和類型。您可以運用使用者意圖和類型,以自己的語言模型擴充 Google 助理 NLU。系統意圖和類型可讓您利用內建語言模型和事件偵測功能,例如當使用者要求退出動作或 Google 助理時,完全不會偵測任何輸入內容。
建立使用者意圖
使用者意圖可讓您定義自己的訓練詞組,定義使用者可能會向您的動作說的內容。Google 助理 NLU 會使用這些詞組來訓練自己瞭解使用者說的話。當使用者說出的內容符合使用者意圖的語言模型時,Google 助理會比對該意圖並通知您動作,以便您執行邏輯並回應使用者。
如何建立使用者意圖:
- 在「Develop」(開發) 分頁中,按一下「User intents」>「⊕ (New intent)」,指定名稱,然後按下 Enter 鍵建立意圖。
- 在左選單中按一下新建的意圖。畫面上隨即會顯示意圖編輯器。
- 將訓練詞組新增至意圖。您應盡可能加入更多訓練詞組來訓練 Google 助理 NLU。
- 選用:為訓練詞組加上註解,指示 Google 助理 NLU 從使用者輸入內容中,剖析及擷取符合特定類型條件的參數:
- 在「新增參數」欄位中輸入參數名稱。
- 從下拉式選單中選取系統類型,或建立自訂類型。
- 指定參數是否為清單。讓參數收集多個同類型的值。
- 在「新增訓練詞組」區段,醒目顯示要套用類型的文字。這會指示 Google 助理 NLU 將醒目顯示的文字視為參數。如果使用者說出的內容與類型相符,NLU 就會擷取該值做為參數。
建立系統意圖
系統意圖可讓您利用對常見事件 (例如使用者想退出動作,或使用者輸入逾時) 的意圖,利用預先定義的語言模型。如要建立系統意圖,請按照下列指示操作:
- 在「Develop」分頁中,按一下「System intents」。您可以使用一組系統意圖,例如 NO_MATCH、NO_INPUT 和 CANCEL。
- 每個系統意圖都包含各自的處理常式,您可以為每種系統意圖自訂這些處理常式。舉例來說,您可以利用系統意圖觸發 Webhook 事件,並在事件發生時傳送靜態提示。
建立自訂類型
自訂類型可讓您建立自己的類型規格來訓練 NLU,藉此瞭解應對應至單一鍵的一組值。
如要建立自訂類型,請按照下列步驟操作:
- 在「Develop」(開發) 分頁中,依序按一下「Types」>「⊕ (New type)」。
請在「支援此類型的值是什麼種類?」一節中選取如何提供類型值:
- 字詞和同義詞可讓您將多個值對應至單一鍵,也稱為項目。您的類型可包含一或多個項目。如果選擇這個選項,您也可以啟用下列 NLU 設定:
- 啟用模糊比對 - 允許比對超過一個字詞的項目,即使字詞以不同的順序朗讀。
- 接受不明值:如果無法指定所有可能的值,系統就會根據周遭的輸入和意圖訓練資料接受未知的字詞或詞組,例如可能會加入雜貨清單的項目。
- 規則運算式可讓類型根據 Google 的 RE2 標準,比對規則運算式模式。
- 「任意形式文字」可讓類型與使用者說的內容進行比對。
- 字詞和同義詞可讓您將多個值對應至單一鍵,也稱為項目。您的類型可包含一或多個項目。如果選擇這個選項,您也可以啟用下列 NLU 設定:
在「新增項目」區段中指定類型值。如果選擇「任意形式文字」,您的類型就會比對任何文字,因此您不必提供任何項目。
建構動作邏輯和回應
Google 助理 NLU 會比對使用者要求和意圖,如此一來,您的動作就能在場景中處理要求。場景是強大的邏輯執行工具,可讓您在對話期間處理事件。
建立場景
以下各節說明如何建立情境,以及定義每個場景的生命週期階段的功能。
如何建立場景:
- 在「Develop」分頁中,依序按一下「Scenes」>「⊕ (New scene)」,指定名稱,然後按下「Enter」鍵建立場景。
- 在左選單中按一下新建的場景。系統隨即顯示「Scene Editor」(場景編輯器)。
定義一次性設定
場景首次啟用後,您可以在「進入時」階段執行一次性工作。進入階段只會執行一次,是唯一不會在場景的執行迴圈內執行的階段。
在場景中,按一下「進入階段」階段即可指定功能。在這個階段,您可以指定下列功能:
檢查條件
您可以運用條件檢查運算單元填充、工作階段儲存空間、使用者儲存空間和住家儲存空間參數,藉此控制場景執行流程。
在場景中,按一下「條件」階段的「+」圖示++。條件編輯器會顯示在右側。在這個階段,您可以指定下列功能:
- 「Condition」:指定要做為基礎邏輯的實際條件陳述式。如需語法資訊,請參閱conditions說明文件。
定義運算單元填充
運算單元可讓您從使用者輸入內容中擷取輸入的參數。
在場景編輯器中,按一下「Slot fill」+階段的「+」+圖示。畫面右側會顯示版位編輯器。您可以指定時段的下列屬性:
- 運算單元名稱:指定運算單元的名稱。如果您想利用運算單元值對應,請使用與對應的意圖參數相同的名稱。
- 運算單元類型:使用系統類型或自訂類型指定運算單元的類型。
- 這個版位必須:將此版位標示為必要。啟用後,只有在這個版位填入時,系統才會完成運算單元填充程序。
- 為這個運算單元指派預設值:為從指定工作階段參數讀取的版位指定預設值。
- 「CustomizeSlot value writeback」(自訂運算單元值寫入):指定工作階段參數,在運算單元填充完成後保留運算單元的值。
- 運算單元驗證:在版位填入時觸發 Webhook。這項設定適用於所有運算單元。
- 呼叫 Webhook (在需要運算單元時啟用):觸發 Webhook。如要進一步瞭解 Webhook,請參閱 Webhook 說明文件。
- 「Send 提示」 (在需要運算單元時啟用):指定要傳送給使用者的靜態提示,讓他們知道如何繼續對話。如要進一步瞭解如何指定提示,請參閱提示說明文件。
針對特定版位類型 (例如與交易或使用者參與度相關的版位),系統會顯示額外區段,供您設定運算單元。運算單元設定可根據您提供的屬性變更使用者的對話體驗。
如要設定運算單元,請在執行要求 (以工作階段參數參照) 或內嵌 JSON 編輯器中提供 JSON 物件中的屬性。您可以在 Actions Builder JSON 參考資料中找到每種運算單元類型的可用屬性。舉例來說,actions.type.DeliveryAddressValue
版位類型會對應到 DeliveryAddressValue
位置的參考內容。
運算單元值對應
在許多情況下,先前的意圖比對可能包含部分或全部填滿相應場景版位值的參數。在這些情況下,如果運算單元名稱與意圖參數名稱相符,由意圖參數填入的所有運算單元都會對應至場景的運算單元填充。
舉例來說,如果使用者透過說出「I want to order a Large vanilla 咖啡」來比對用來訂購飲料的意圖,只要場景定義相同的運算單元,系統就會在對應的場景中填入現有尺寸、口味和飲料類型的現有運算單元。
處理輸入內容
在這個階段中,您可以讓 Google 助理 NLU 將使用者輸入內容和意圖進行比對。您可以將所需意圖新增至場景中,以將意圖比對範圍限制在特定場景。如此一來,您就可以指示 Google 助理在特定情境啟用時比對特定意圖,藉此控制對話流程。