對話動作將於 2023 年 6 月 13 日淘汰。詳情請參閱對話動作停用

類型

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

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