類型可用來設定 Google 助理 NLU (自然語言理解) 引擎,從使用者輸入內容中擷取結構化資料。在下列情況中,您可以使用類型:
在意圖中,您可以使用類型為訓練詞組加註,藉此建立運算單元。當使用者說出符合運算單元的內容時,NLU 引擎會擷取該類型參數,方便您在「情境」中處理。
在場景的「條件」conditions階段中,您可以依據參數是否具有在類型中定義的特定值,而建立邏輯。
自訂類型
自訂類型可讓您建立自己的類型規格,藉此通知 NLU 將一組值指派給單一鍵。您可透過多種方式指定類型:
- 字詞和同義詞可讓您將多個值對應至單一鍵,也稱為項目。您的類型可包含一或多個項目。如果選擇這個選項,您也可以啟用下列 NLU 設定:
- 啟用模糊比對:此功能允許比對含有多個字詞的項目,即使字詞以不同順序說出也是如此。
- 接受未知值:如果您無法指定所有可能的值,語言處理工具就可以根據周遭的輸入和意圖訓練資料,接受未知的字詞或詞組,例如可能會加入雜貨清單的項目。
- 規則運算式可讓類型根據 Google 的 RE2 標準,使用規則運算式模式來比對值。
- 「任意形式文字」可讓類型比對使用者說的內容。用這個類型為意圖加上註解可讓您使用所有輸入內容做為參數,並傳遞到自己的 NLU。
系統類型
系統類型可讓您使用系統提供的訓練資料和值,註解及擷取使用者輸入內容中的已知資料。支援的系統類型如下:
類型 | 說明 |
---|---|
actions.type.DateTime |
根據使用者的裝置設定提供日期、時間和時區。適用於運算單元填充和訓練詞組註解。 |
actions.type.Date |
僅包含日期。僅適用於運算單元填充。 |
actions.type.Time |
只顯示時間。僅適用於運算單元填充。 |
actions.type.Number |
Number 類型會與序數和基數相符。 |
DateTime
、Date
和 Time
用量
視您使用的類型以及符合類型的使用者輸入內容而定,這些類型的行為會有所不同。
與意圖搭配使用
在意圖中為訓練詞組加上註解僅支援 DateTime
類型。使用者輸入內容不需要與整個 DateTime
值相符。舉例來說,如果使用者只提供年份,工作階段參數可能如下所示:
"date_time": {
"year": 2019
}
與運算單元填充使用
運算單元填充支援 DateTime
、Date
和 Time
。
- 如果運算單元類型為
DateTime
,Google 助理會提示使用者,直到提供完整值為止。 - 如果版位類型為
Date
,Google 助理會提示使用者,直到提供日期值為止。收集時,您收到的參數是完整的DateTime
,時間設為 00:00。 - 如果運算單元類型為
Time
,Google 助理會提示使用者,直到提供時間值為止。收集資料時,您收到的參數是完整的DateTime
物件,並將日期設為目前日期。
舉例來說,假設位於洛杉磯的使用者說:「Ok Google,建立 2024 年 1 月 15 日晚上 8 點的提醒」。系統擷取 DateTime
做為運算單元填充程序的一部分時,完整參數可能會如下所示:
"date_time": {
"day": 15,
"hours": 20,
"minutes": 0,
"month": 1,
"nanos": 0,
"seconds": 0,
"time_zone": {
"id": "America/Los_Angeles"
},
"year": 2024
}
搭配條件使用
條件僅允許使用數字和字串,因此使用頂層 DateTime
參數會產生條件為 False 的結果。例如:
$session.params.my_dateTime.day > 5
是有效的條件,因為day
值是數字且受支援的。$session.params.my_dateTime > "01-01-2010"
是無效條件,因為頂層「DateTime」物件不是數字或字串。
執行階段類型覆寫
執行階段類型覆寫功能可讓您在執行要求中動態建立或修改類型。這項功能可讓您在執行階段新增或取代類型規格。例如,您可以檢查後端資料來源,將每日選單項目載入執行要求中的類型。
如要進一步瞭解如何建構類型覆寫,請參閱 Webhook 指南。