類型

類型可用來設定 Google 助理 NLU (自然語言理解) 引擎,從使用者輸入內容中擷取結構化資料。在下列情況中,您可以使用類型:

  • 意圖中,您可以使用類型為訓練詞組加註,藉此建立運算單元。當使用者說出符合運算單元的內容時,NLU 引擎會擷取該類型參數,方便您在「情境」中處理。

  • 在場景的「運算單元填充」階段中,您可以指定多個運算單元,方便使用者在轉換或離開場景前提供。

  • 在場景的「條件」conditions階段中,您可以依據參數是否具有在類型中定義的特定值,而建立邏輯。

自訂類型

自訂類型可讓您建立自己的類型規格,藉此通知 NLU 將一組值指派給單一鍵。您可透過多種方式指定類型:

  • 字詞和同義詞可讓您將多個值對應至單一鍵,也稱為項目。您的類型可包含一或多個項目。如果選擇這個選項,您也可以啟用下列 NLU 設定:
    • 啟用模糊比對:此功能允許比對含有多個字詞的項目,即使字詞以不同順序說出也是如此。
    • 接受未知值:如果您無法指定所有可能的值,語言處理工具就可以根據周遭的輸入和意圖訓練資料,接受未知的字詞或詞組,例如可能會加入雜貨清單的項目。
  • 規則運算式可讓類型根據 Google 的 RE2 標準,使用規則運算式模式來比對值。
  • 任意形式文字可讓類型比對使用者說的內容。用這個類型為意圖加上註解可讓您使用所有輸入內容做為參數,並傳遞到自己的 NLU。

系統類型

系統類型可讓您使用系統提供的訓練資料和值,註解及擷取使用者輸入內容中的已知資料。支援的系統類型如下:

類型 說明
actions.type.DateTime 根據使用者的裝置設定提供日期、時間和時區。適用於運算單元填充和訓練詞組註解。
actions.type.Date 僅包含日期。僅適用於運算單元填充。
actions.type.Time 只顯示時間。僅適用於運算單元填充。
actions.type.Number Number 類型會與序數和基數相符。

DateTimeDateTime 用量

視您使用的類型以及符合類型的使用者輸入內容而定,這些類型的行為會有所不同。

與意圖搭配使用

在意圖中為訓練詞組加上註解僅支援 DateTime 類型。使用者輸入內容不需要與整個 DateTime 值相符。舉例來說,如果使用者只提供年份,工作階段參數可能如下所示:

"date_time": {
  "year": 2019
}

與運算單元填充使用

運算單元填充支援 DateTimeDateTime

  • 如果運算單元類型為 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 指南。