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 处理程序后随时触发。重要提示 - 这些事件定义了范围限定为此场景的一组 intent,其优先级将高于具有相同 intent 或其触发短语的任何全局定义的事件。intent 名称在场景中必须是唯一的。

conditionalEvents[]

object (ConditionalEvent)

根据条件语句触发的事件列表。这些是在表单填充后评估的;如果场景没有表单,则会立即在 on_load 之后进行评估(评估仅执行一次)。系统只会触发第一个匹配事件。

slots[]

object (Slot)

有序的槽列表。每个槽位均定义其将解析的数据类型,并对其进行配置以自定义此解决方案的体验(例如提示)。

onSlotUpdated

object (EventHandler)

当槽的状态更改不是由另一个处理程序中的更新引起的时调用的处理程序。这会使槽失效、场景失效或对场景状态进行其他更改。

广告位

槽的配置。槽是可以通过自然语言(即 intent 参数)、会话参数和其他来源填充的单个数据单元。

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 填充此广告位的值时,才会用到此字段。此值的类型必须与广告位的类型一致。