Scene

場景是設計對話時,控制流程的基本單位。可與其他場景鏈結在一起、為使用者產生提示,以及定義版位。場景名稱透過檔案名稱指定。

YAML 表示法
onEnter: 
  object (EventHandler)
intentEvents: 
  - object (IntentEvent)
conditionalEvents: 
  - object (ConditionalEvent)
slots: 
  - object (Slot)
onSlotUpdated: 
  object (EventHandler)
欄位
onEnter

object (EventHandler)

轉換至這個場景時叫用的處理常式。

intentEvents[]

object (IntentEvent)

根據意圖觸發的事件清單。呼叫 on_load Handler 後,隨時可以觸發這些事件。重要事項 - 這些事件會定義一組範圍限定在這個情境的意圖,且優先度高於任何具有相同意圖或觸發詞組的全域定義事件。場景中的意圖名稱不得重複。

conditionalEvents[]

object (ConditionalEvent)

根據條件陳述式觸發的事件清單。系統會在使用者填寫表單後進行評估。如果這個場景沒有表單,則會在 on_load 後立即評估 (評估作業僅執行一次)。系統只會觸發第一個相符的事件。

slots[]

object (Slot)

已排序的運算單元清單。每個運算單元都會定義要解析的資料類型,並設定適當的解析度,藉此自訂這個解析度 (例如提示) 的體驗。

onSlotUpdated

object (EventHandler)

當其他 Handler 內的更新導致運算單元狀態變更時,會呼叫此處理常式。如此一來,版位就會失效、場景失效或其他場景狀態變更。

運算單元

運算單元的設定。運算單元是單一資料單位,可透過自然語言 (例如意圖參數)、工作階段參數和其他來源填入。

YAML 表示法
name: string
type: 
  object (ClassReference)
required: boolean
promptSettings: 
  object (PromptSettings)
commitBehavior: 
  object (CommitBehavior)
config: value
defaultValue: 
  object (DefaultValue)
欄位
name

string

必要欄位。版位名稱。

type

object (ClassReference)

必要欄位。宣告此運算單元的資料類型。

required

boolean

選用設定。指出是否要在前進前填入版位。未填入內容的必要版位會觸發可自訂的使用者提示。

promptSettings

object (PromptSettings)

選用設定。針對運算單元填滿的不同階段註冊提示。

commitBehavior

object (CommitBehavior)

選用設定。與運算單元相關聯的修訂行為。

config

value (Value format)

選用設定。與用來填入運算單元的運算單元相關聯的其他設定。設定的格式視運算單元類型而定。您可以將使用者或工作階段參數的資源參照新增至這項設定。必須啟用這項設定,才能填入與交易和使用者參與度相關的版位。

範例:針對 actions.type.CompletePurchaseValue 類型的版位,下列設定提出數位良好訂單,並參照用戶端定義的工作階段參數 userSelectedSkuId

{ "@type": "type.googleapis.com/ google.actions.transactions.v3.CompletePurchaseValueSpec", "skuId": { "skuType": "SKU_TYPE_IN_APP", "id": "$session.params.userSelectedSkuId", "packageName": "com.example.company" } }

defaultValue

object (DefaultValue)

選用設定。要填入這個版位預設值的設定。

PromptSettings

定義版位提示的單一位置。

YAML 表示法
initialPrompt: 
  object (EventHandler)
noMatchPrompt1: 
  object (EventHandler)
noMatchPrompt2: 
  object (EventHandler)
noMatchFinalPrompt: 
  object (EventHandler)
noInputPrompt1: 
  object (EventHandler)
noInputPrompt2: 
  object (EventHandler)
noInputFinalPrompt: 
  object (EventHandler)
欄位
initialPrompt

object (EventHandler)

提示版位值本身。例如:「您想要哪種尺寸?」

noMatchPrompt1

object (EventHandler)

當使用者的輸入內容不符合該時段的預期值類型時,系統會顯示提示。例如:「很抱歉,我聽不懂。」

noMatchPrompt2

object (EventHandler)

當使用者的輸入內容與時段所需的預期值類型不符時,系統會提示你。例如:「很抱歉,我聽不懂。」

noMatchFinalPrompt

object (EventHandler)

當使用者的輸入內容不符合時段的預期值類型時,系統會顯示提示。例如:「很抱歉,我聽不懂。」

noInputPrompt1

object (EventHandler)

在使用者首次輸入內容時,系統顯示提示。例如:「很抱歉,我聽不懂。」

noInputPrompt2

object (EventHandler)

當使用者未在第二次中提供輸入內容時,系統提示你。例如:「很抱歉,我聽不懂。」

noInputFinalPrompt

object (EventHandler)

當使用者未在上次輸入內容時提供輸入內容的提示。例如:「很抱歉,我聽不懂。」

CommitBehavior

這個訊息說明運算單元在成功填入後與其相關聯的修訂行為。

YAML 表示法
writeSessionParam: string
欄位
writeSessionParam

string

工作階段參數會在填入後寫入版位值。請注意,目前不支援巢狀路徑。「$$」用於將版位值寫入與版位名稱相同的工作階段參數。例如:writeSessionParam = "fruit" 對應「$session.params.fruit」。writeSessionParam = "ticket" 對應「$session.params.ticket」。

DefaultValue

要填入這個版位預設值的設定。

YAML 表示法
sessionParam: string
constant: value
欄位
sessionParam

string

選用設定。當版位值包含非空白時,用於初始化版位值的工作階段參數。值的類型必須與版位類型相符。請注意,目前不支援巢狀路徑。例如:sessionParam = "fruit" 對應 $session.params.fruitsessionParam = "ticket" 對應 $session.params.ticket

constant

value (Value format)

選用設定。版位的常數預設值。只有在未透過 sessionParam 填入這個版位的值時,才會使用這個參數。這個值的類型必須與時段類型相符。