對話動作功能將於 2023 年 6 月 13 日淘汰。詳情請參閱「對話動作已淘汰」。

類型

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

  • 意圖中,您可以為具有類型註解的訓練詞組加上註解,以建立運算單元。當使用者說出符合某個版位的內容時,NLU 引擎就會將其擷取為類型參數,方便您以情境進行處理。

  • 在情境的「運算單元填充」階段內,您可以指定要讓客戶在其轉換或離開場景前,所提供的多個運算單元。

  • 在情境的「條件」階段中,您可以根據「參數」內是否定義特定類型的特定值來建立邏輯。

自訂類型

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

  • 「字詞和同義詞」可讓您將多個值對應至單一鍵 (稱為「項目」)。您的類型可以包含一或多個項目。如果選擇這個選項,您也可以啟用下列 NLU 設定:
    • 啟用模糊比對功能:無論字詞是否以不同的順序排列,這項功能都能比對多個字詞。
    • 接受不明的值 - 當您無法指定所有可能的值時,語言處理工具可能會接受以輸入和意圖訓練資料為基礎的不明字詞或詞組,例如可能新增至雜貨清單的項目。
  • 「規則運算式」可讓類型依據 Google 的 RE2 標準使用規則運算式模式比對值。
  • 任意形式文字可讓類型與使用者表達的內容相符。使用這種類型為意圖加上註解時,您就能將所有輸入做為參數,用於管道專屬的管道。

系統類型

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

類型 說明
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 指南。