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. Важно: эти события определяют набор намерений, которые относятся к этой сцене, и будут иметь приоритет над любыми глобально определенными событиями, имеющими те же намерения или их триггерные фразы. Имена намерений должны быть уникальными в пределах сцены.

conditionalEvents[]

object ( ConditionalEvent )

Список событий, которые инициируются на основе условных операторов. Они оцениваются после заполнения формы или сразу после on_load, если в этой сцене нет формы (оценка выполняется только один раз). Будет запущено только первое соответствующее событие.

slots[]

object ( Slot )

Упорядоченный список слотов. Каждый слот определяет тип данных, которые он будет обрабатывать, и конфигурацию для настройки процесса этого разрешения (например, подсказки).

onSlotUpdated

object ( EventHandler )

Обработчик вызывается, когда происходит изменение состояния слота, не вызванное обновлениями внутри другого обработчика. Это позволяет сделать недействительными слоты, сцену или другие изменения в состоянии сцены.

Слот

Конфигурация слота. Слоты — это отдельные единицы данных, которые можно заполнить с помощью естественного языка (т. е. параметров намерений), параметров сеанса и других источников.

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)

Необязательный. Дополнительная конфигурация, связанная со слотом, которая используется для заполнения слота. Формат конфигурации зависит от типа слота. В эту конфигурацию можно добавить ссылки на ресурсы для пользователя или параметра сеанса. Этот конфиг нужен для заполнения слотов, связанных с транзакциями и вовлечением пользователей.

Пример. Для слота типа action.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 )

Необязательный. Конфигурация для заполнения значения по умолчанию для этого слота.

Подскажите настройки

Единственное место, где определяются подсказки слотов.

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 = «билет» соответствует «$session.params.ticket».

Значение по умолчанию

Конфигурация для заполнения значения по умолчанию для этого слота.

YAML-представление
sessionParam: string
constant: value
Поля
sessionParam

string

Необязательный. Параметр сеанса, который будет использоваться для инициализации значения слота, если оно имеет непустое значение. Тип значения должен соответствовать типу слота. Обратите внимание, что вложенные пути в настоящее время не поддерживаются. Например: sessionParam = "fruit" соответствует $session.params.fruit . sessionParam = "ticket" соответствует $session.params.ticket .

constant

value ( Value format)

Необязательный. Постоянное значение по умолчанию для слота. Это будет использоваться только в том случае, если значение для этого слота не было заполнено через sessionParam . Тип этого значения должен соответствовать типу слота.