Сцена — это основная единица потока управления при построении разговора. Их можно объединять в цепочку с другими сценами, генерировать подсказки для конечного пользователя и определять слоты. Имя сцены указано в имени файла.
YAML-представление | |
---|---|
onEnter: object ( |
Поля | |
---|---|
onEnter | Обработчик, вызываемый при переходе в эту сцену. |
intentEvents[] | Список событий, которые срабатывают в зависимости от намерений. Эти события могут быть вызваны в любое время после вызова обработчика on_load. Важно: эти события определяют набор намерений, которые относятся к этой сцене, и будут иметь приоритет над любыми глобально определенными событиями, имеющими те же намерения или их триггерные фразы. Имена намерений должны быть уникальными в пределах сцены. |
conditionalEvents[] | Список событий, которые инициируются на основе условных операторов. Они оцениваются после заполнения формы или сразу после on_load, если в этой сцене нет формы (оценка выполняется только один раз). Будет запущено только первое соответствующее событие. |
slots[] | Упорядоченный список слотов. Каждый слот определяет тип данных, которые он будет обрабатывать, и конфигурацию для настройки процесса этого разрешения (например, подсказки). |
onSlotUpdated | Обработчик вызывается, когда происходит изменение состояния слота, не вызванное обновлениями внутри другого обработчика. Это позволяет сделать недействительными слоты, сцену или другие изменения в состоянии сцены. |
Слот
Конфигурация слота. Слоты — это отдельные единицы данных, которые можно заполнить с помощью естественного языка (т. е. параметров намерений), параметров сеанса и других источников.
YAML-представление | |
---|---|
name: string type: object ( |
Поля | |
---|---|
name | Необходимый. Название слота. |
type | Необходимый. Объявляет тип данных этого слота. |
required | Необязательный. Указывает, необходимо ли заполнить слот перед продвижением. Обязательные слоты, которые не заполнены, вызывают у пользователя настраиваемый запрос. |
promptSettings | Необязательный. Регистры Подсказки для разных этапов заполнения слотов. |
commitBehavior | Необязательный. Зафиксировать поведение, связанное со слотом. |
config | Необязательный. Дополнительная конфигурация, связанная со слотом, которая используется для заполнения слота. Формат конфигурации зависит от типа слота. В эту конфигурацию можно добавить ссылки на ресурсы для пользователя или параметра сеанса. Этот конфиг нужен для заполнения слотов, связанных с транзакциями и вовлечением пользователей. Пример. Для слота типа action.type.CompletePurchaseValue следующая конфигурация предлагает цифровой заказ товара со ссылкой на определенный клиентом параметр сеанса { "@type": "type.googleapis.com/ google.actions.transactions.v3.CompletePurchaseValueSpec", "skuId": { "skuType": "SKU_TYPE_IN_APP", "id": "$session.params.userSelectedSkuId", "packageName": "com.example.company" } } |
defaultValue | Необязательный. Конфигурация для заполнения значения по умолчанию для этого слота. |
Подскажите настройки
Единственное место, где определяются подсказки слотов.
YAML-представление | |
---|---|
initialPrompt: object ( |
Поля | |
---|---|
initialPrompt | Запрос самого значения слота. Пример: «Какой размер вы хотели?» |
noMatchPrompt1 | Запрашивать ввод, когда ввод пользователя не соответствует ожидаемому типу значения для слота в первый раз. Пример: «Извините, я этого не понял». |
noMatchPrompt2 | Запрос на ввод, если ввод пользователя не соответствует ожидаемому типу значения для слота во второй раз. Пример: «Извините, я этого не понял». |
noMatchFinalPrompt | Запрос на ввод, если ввод пользователя не соответствует ожидаемому типу значения для слота в последний раз. Пример: «Извините, я этого не понял». |
noInputPrompt1 | Запросить ввод, если пользователь не вводит данные в первый раз. Пример: «Извините, я этого не понял». |
noInputPrompt2 | Запрашивать ввод, если пользователь не вводит данные во второй раз. Пример: «Извините, я этого не понял». |
noInputFinalPrompt | Запрашивать ввод, когда пользователь не вводит данные в последний раз. Пример: «Извините, я этого не понял». |
CommitBehavior
Сообщение, описывающее поведение фиксации, связанное со слотом, после его успешного заполнения.
YAML-представление | |
---|---|
writeSessionParam: string |
Поля | |
---|---|
writeSessionParam | Параметр сеанса для записи значения слота после его заполнения. Обратите внимание, что вложенные пути в настоящее время не поддерживаются. «$$» используется для записи значения слота в параметр сеанса с тем же именем, что и слот. Например: writeSessionParam = «fruit» соответствует «$session.params.fruit». writeSessionParam = «тикет» соответствует «$session.params.ticket». |
Значение по умолчанию
Конфигурация для заполнения значения по умолчанию для этого слота.
YAML-представление | |
---|---|
sessionParam: string constant: value |
Поля | |
---|---|
sessionParam | Необязательный. Параметр сеанса, который будет использоваться для инициализации значения слота, если оно имеет непустое значение. Тип значения должен соответствовать типу слота. Обратите внимание, что вложенные пути в настоящее время не поддерживаются. Например: |
constant | Необязательный. Постоянное значение по умолчанию для слота. Это будет использоваться только в том случае, если значение для этого слота не было заполнено через |