類型可讓您設定 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 指南。