- HTTP-запрос
- Параметры пути
- Тело запроса
- Тело ответа
- Пользовательский ввод
- Тип ввода
- Свойства устройства
- Поверхность
- Расположение
- ШиротаДлительность
- Выход
- Холст
- Быстрый
- Простой
- Содержание
- Карта
- Изображение
- Заполнение изображения
- Связь
- OpenUrl
- URL-подсказка
- Стол
- ТаблицаСтолбец
- Горизонтальное выравнивание
- ТаблицаРоу
- Таблеселл
- СМИ
- Медиатип
- Необязательные элементы управления медиа
- Медиаобъект
- Медиаизображение
- Коллекция
- КоллекцияЭлемент
- Список
- Листитем
- Предположение
- Диагностика
- Событие выполнения
- Состояние выполнения
- Слоты
- Статус заполнения слота
- Слот
- Слотрежим
- Статус слота
- Статус
- Усерконверсатионинпут
- ИнтентМатч
- УсловияОценено
- Состояние
- OnSceneEnter
- ВебхукЗапрос
- ВебхукОтвет
- WebhookInitiatedTransition
- СлотМатч
- Слот запрошен
- Слот проверен
- ФормаЗаполнена
- ОжиданиеForUserInput
- Конец разговора
Воспроизводит один раунд разговора.
HTTP-запрос
 POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction
URL-адрес использует синтаксис транскодирования gRPC .
Параметры пути
| Параметры | |
|---|---|
| project |   Необходимый. Тестируемый проект, обозначенный идентификатором проекта. Формат: проекты/{проект} | 
Тело запроса
Тело запроса содержит данные следующей структуры:
| JSON-представление | |
|---|---|
| { "input": { object ( | |
| Поля | |
|---|---|
| input |   Необходимый. Ввод предоставлен пользователем. | 
| deviceProperties |   Необходимый. Свойства устройства, используемого для взаимодействия с Действием. | 
| conversationToken |   Непрозрачный токен, который необходимо передать как полученный от SendInteractionResponse при предыдущем взаимодействии. Это значение можно оставить неустановленным, чтобы начать новый разговор либо в качестве первого взаимодействия в сеансе тестирования, либо для прекращения предыдущего разговора и начала нового. | 
Тело ответа
В случае успеха тело ответа содержит данные следующей структуры:
Ответ на раунд разговора.
| JSON-представление | |
|---|---|
| { "output": { object ( | |
| Поля | |
|---|---|
| output |   Вывод предоставляется пользователю. | 
| diagnostics |   Диагностическая информация, объясняющая, как был обработан запрос. | 
| conversationToken |   Непрозрачный токен, который необходимо установить в SendInteractionRequest при следующем вызове RPC, чтобы продолжить тот же диалог. | 
Пользовательский ввод
Пользовательский ввод, предоставленный в ходе разговора.
| JSON-представление | |
|---|---|
| {
  "query": string,
  "type": enum ( | |
| Поля | |
|---|---|
| query |   Содержимое ввода, отправленного пользователем. | 
| type |   Тип входа. | 
Тип ввода
Указывает источник ввода, печатный запрос или голосовой запрос.
| Перечисления | |
|---|---|
| INPUT_TYPE_UNSPECIFIED | Неуказанный источник ввода. | 
| TOUCH | Запрос из взаимодействия с графическим интерфейсом. | 
| VOICE | Голосовой запрос. | 
| KEYBOARD | Типизированный запрос. | 
| URL | Действие было вызвано URL-ссылкой. | 
Свойства устройства
Свойства устройства, относящиеся к раунду разговора.
| JSON-представление | |
|---|---|
| { "surface": enum ( | |
| Поля | |
|---|---|
| surface |   Поверхность, используемая для взаимодействия с Действием. | 
| location |   Местоположение устройства, например широта, долгота и форматированный адрес. | 
| locale |   Языковой стандарт, установленный на устройстве. Формат должен соответствовать BCP 47: https://tools.ietf.org/html/bcp47. Примеры: en, en-US, es-419 (дополнительные примеры можно найти на https://tools.ietf.org/html/bcp47#appendix ). -А) . | 
| timeZone |   Часовой пояс, установленный на устройстве. Формат должен соответствовать базе данных часовых поясов IANA, например «Америка/Нью-Йорк»: https://www.iana.org/time-zones . | 
Поверхность
Возможные поверхности, используемые для взаимодействия с Действием. В будущем могут быть включены дополнительные значения.
| Перечисления | |
|---|---|
| SURFACE_UNSPECIFIED | Значение по умолчанию. Это значение не используется. | 
| SPEAKER | Динамик (например, Google Home). | 
| PHONE | Телефон. | 
| ALLO | Алло Чат. | 
| SMART_DISPLAY | Интеллектуальное устройство отображения. | 
| KAI_OS | КайОС. | 
Расположение
Контейнер, представляющий местоположение.
| JSON-представление | |
|---|---|
| {
  "coordinates": {
    object ( | |
| Поля | |
|---|---|
| coordinates |   Геокоординаты. Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION]. | 
| formattedAddress |   Отобразить адрес, например, «1600 Amphitheatre Pkwy, Mountain View, CA 94043». Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION]. | 
| zipCode |   Почтовый индекс. Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] или [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION]. | 
| city |   Город. Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] или [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION]. | 
ШиротаДлительность
Объект, представляющий пару широты и долготы. Это выражается в виде пары двойных чисел, обозначающих градусы широты и градусы долготы. Если не указано иное, этот объект должен соответствовать стандарту WGS84 . Значения должны находиться в пределах нормализованных диапазонов.
| JSON-представление | |
|---|---|
| { "latitude": number, "longitude": number } | |
| Поля | |
|---|---|
| latitude |   Широта в градусах. Оно должно находиться в диапазоне [-90,0, +90,0]. | 
| longitude |   Долгота в градусах. Оно должно находиться в диапазоне [-180,0, +180,0]. | 
Выход
Видимый пользователю вывод раунда разговора.
| JSON-представление | |
|---|---|
| { "text": string, "speech": [ string ], "canvas": { object ( | |
| Поля | |
|---|---|
| text |   Голосовой ответ отправляется пользователю в виде простой строки. | 
| speech[] |   Речевое содержание, созданное Действием. Это может включать элементы разметки, такие как SSML. | 
| canvas |   Интерактивный контент Canvas. | 
| actionsBuilderPrompt |   Состояние подсказки в конце раунда разговора. Дополнительная информация о приглашении: https://developers.google.com/assistant/conversational/prompts. | 
Холст
Представляет ответ Interactive Canvas, который будет отправлен пользователю. Его можно использовать вместе с полем «firstSimple» в содержащем приглашении для разговора с пользователем в дополнение к отображению ответа на интерактивном холсте. Максимальный размер ответа — 50 КБ.
| JSON-представление | |
|---|---|
| { "url": string, "data": [ value ], "suppressMic": boolean, "enableFullScreen": boolean } | |
| Поля | |
|---|---|
| url |   URL-адрес интерактивного веб-приложения на основе холста для загрузки. Если не установлено, URL-адрес текущего активного холста будет использоваться повторно. | 
| data[] |   Необязательный. Данные JSON, которые будут переданы на веб-страницу иммерсивного опыта как событие. Если поле «переопределить» в содержащем приглашении имеет значение «ложь», значения данных, определенные в этом приглашении Canvas, будут добавлены после значений данных, определенных в предыдущих приглашениях Canvas. | 
| suppressMic |   Необязательный. Значение по умолчанию: ложь. | 
| enableFullScreen |    Если  | 
Быстрый
Представлять ответ пользователю.
| JSON-представление | |
|---|---|
| { "append": boolean, "override": boolean, "firstSimple": { object ( | |
| Поля | |
|---|---|
| append |   Необязательный. Режим объединения этих сообщений с ранее определенными сообщениями. «false» очистит все ранее определенные сообщения (первое и последнее простое, содержимое, ссылку на предложения и холст) и добавит сообщения, определенные в этом приглашении. «true» добавит сообщения, определенные в этом приглашении, к сообщениям, определенным в предыдущих ответах. Установка для этого поля значения «истина» также позволит добавлять к некоторым полям простые приглашения, приглашение «Предложение» и приглашение «Холст» (часть приглашения «Содержимое»). Сообщения о содержимом и ссылках всегда будут перезаписаны, если они определены в приглашении. Значение по умолчанию — «ложь». | 
| override |   Необязательный. Режим объединения этих сообщений с ранее определенными сообщениями. «true» удаляет все ранее определенные сообщения (первое и последнее простое, содержимое, ссылку на предложения и холст) и добавляет сообщения, определенные в этом приглашении. «false» добавляет сообщения, определенные в этом приглашении, к сообщениям, определенным в предыдущих ответах. Если оставить для этого поля значение «false», также можно будет добавлять к некоторым полям простые приглашения, приглашение «Предложения» и приглашение «Холст» (часть приглашения «Содержимое»). Сообщения «Содержимое» и «Ссылка» всегда перезаписываются, если они определены в приглашении. Значение по умолчанию — «ложь». | 
| firstSimple |   Необязательный. Первый голосовой и текстовый ответ. | 
| content |   Необязательный. Содержимое, такое как карточка, список или медиафайл, который будет отображаться пользователю. | 
| lastSimple |   Необязательный. Последний голосовой и текстовый ответ. | 
| suggestions[] |   Необязательный. Предложения, которые будут отображаться пользователю и всегда будут появляться в конце ответа. Если поле «переопределить» в содержащем приглашении имеет значение «ложь», заголовки, определенные в этом поле, будут добавлены к заголовкам, определенным в любых ранее определенных подсказках предложений, а повторяющиеся значения будут удалены. | 
| link |    Необязательный. Дополнительный чип предложения, который может ссылаться на соответствующее приложение или сайт. Чип будет отображаться с заголовком «Открыть». | 
| canvas |   Необязательный. Представляет ответ Interactive Canvas, который будет отправлен пользователю. | 
Простой
Представляет простой запрос, который необходимо отправить пользователю.
| JSON-представление | |
|---|---|
| { "speech": string, "text": string } | |
| Поля | |
|---|---|
| speech |   Необязательный. Представляет речь, которая будет произнесена пользователю. Это может быть SSML или преобразование текста в речь. Если поле «переопределить» в содержащем приглашении имеет значение «истина», речь, определенная в этом поле, заменяет речь предыдущего простого приглашения. | 
| text |   Необязательный текст для отображения в чате. Если не задано, будет использоваться отображение речевого поля выше. Ограничено 640 символами. Если поле «переопределить» в содержащем приглашении имеет значение «истина», текст, определенный в этом поле, заменяется на текст предыдущего простого приглашения. | 
Содержание
Содержимое, которое будет показано.
| JSON-представление | |
|---|---|
| { // Union field | |
| Поля | ||
|---|---|---|
| contentполя объединения. Содержание.contentможет быть только одним из следующих: | ||
| card |   Базовая карта. | |
| image |   Изображение. | |
| table |   Настольная карта. | |
| media |   Ответ, указывающий набор медиафайлов для воспроизведения. | |
| canvas |   Ответ, который будет использоваться для интерактивного взаимодействия с холстом. | |
| collection |   Карточка, представляющая набор вариантов на выбор. | |
| list |   Карточка со списком вариантов для выбора. | |
Карта
Базовая карточка для отображения некоторой информации, например изображения и/или текста.
| JSON-представление | |
|---|---|
| { "title": string, "subtitle": string, "text": string, "image": { object ( | |
| Поля | |
|---|---|
| title |   Общее название карты. Необязательный. | 
| subtitle |   Необязательный. | 
| text |   Текст карточки. Поддерживает ограниченный набор синтаксиса уценки для форматирования. Обязательно, если изображение не присутствует. | 
| image |   Изображение героя для карты. Высота фиксирована и равна 192dp. Необязательный. | 
| imageFill |   Как будет заполнен фон изображения. Необязательный. | 
| button |   Кнопка. Необязательный. | 
Изображение
Изображение, отображаемое на карточке.
| JSON-представление | |
|---|---|
| { "url": string, "alt": string, "height": integer, "width": integer } | |
| Поля | |
|---|---|
| url |    Исходный URL изображения. Изображения могут быть в формате JPG, PNG и GIF (анимированные и неанимированные). Например,  | 
| alt |   Текстовое описание изображения, которое будет использоваться для обеспечения доступности, например программы чтения с экрана. Необходимый. | 
| height |   Высота изображения в пикселях. Необязательный. | 
| width |   Ширина изображения в пикселях. Необязательный. | 
Заполнение изображения
Возможные варианты отображения изображения, влияющие на представление изображения. Это следует использовать, когда соотношение сторон изображения не соответствует соотношению сторон контейнера изображения.
| Перечисления | |
|---|---|
| UNSPECIFIED | Неуказанная заливка изображения. | 
| GRAY | Заполните промежутки между изображением и контейнером изображения серыми полосами. | 
| WHITE | Заполните промежутки между изображением и контейнером изображения белыми полосами. | 
| CROPPED | Изображение масштабируется таким образом, чтобы ширина и высота изображения соответствовали размерам контейнера или превышали их. Это может обрезать верхнюю и нижнюю часть изображения, если масштабированная высота изображения больше высоты контейнера, или обрезать левую и правую часть изображения, если ширина масштабированного изображения больше ширины контейнера. Это похоже на «Режим масштабирования» на широкоэкранном телевизоре при воспроизведении видео с соотношением сторон 4:3. | 
Связь
Ссылка на контент.
| JSON-представление | |
|---|---|
| {
  "name": string,
  "open": {
    object ( | |
| Поля | |
|---|---|
| name |   Название ссылки | 
| open |   Что происходит, когда пользователь открывает ссылку | 
OpenUrl
Действие, выполняемое, когда пользователь открывает ссылку.
| JSON-представление | |
|---|---|
| {
  "url": string,
  "hint": enum ( | |
| Поля | |
|---|---|
| url |   Поле URL-адреса, которое может быть любым из: URL-адреса http/https для открытия приложения, связанного с приложением, или веб-страницы. | 
| hint |   Указывает подсказку для типа URL-адреса. | 
URL-подсказка
Различные типы подсказок URL.
| Перечисления | |
|---|---|
| LINK_UNSPECIFIED | Не указано | 
| AMP | URL-адрес, указывающий непосредственно на контент AMP, или канонический URL-адрес, который ссылается на контент AMP через . | 
Стол
Карточка таблицы для отображения таблицы текста.
| JSON-представление | |
|---|---|
| { "title": string, "subtitle": string, "image": { object ( | |
| Поля | |
|---|---|
| title |   Общее название таблицы. Необязательно, но должно быть установлено, если установлены субтитры. | 
| subtitle |   Подзаголовок к таблице. Необязательный. | 
| image |   Изображение, связанное с таблицей. Необязательный. | 
| columns[] |   Заголовки и выравнивание столбцов. | 
| rows[] |   Данные строки таблицы. Первые три строки гарантированно будут показаны, но на определенных поверхностях остальные могут быть обрезаны. Пожалуйста, протестируйте с помощью симулятора, чтобы увидеть, какие строки будут отображаться для данной поверхности. На поверхностях, поддерживающих возможность WEB_BROWSER, вы можете указать пользователю на веб-страницу с дополнительными данными. | 
| button |   Кнопка. | 
ТаблицаСтолбец
Описывает столбец в таблице.
| JSON-представление | |
|---|---|
| {
  "header": string,
  "align": enum ( | |
| Поля | |
|---|---|
| header |   Текст заголовка столбца. | 
| align |   Горизонтальное выравнивание содержимого по столбцу. Если не указано, содержимое будет выровнено по переднему краю. | 
Горизонтальное выравнивание
Выравнивание содержимого внутри ячейки.
| Перечисления | |
|---|---|
| UNSPECIFIED | Неопределенное горизонтальное выравнивание. | 
| LEADING | Передний край ячейки. Это значение по умолчанию. | 
| CENTER | Содержимое выравнивается по центру столбца. | 
| TRAILING | Содержимое выравнивается по заднему краю столбца. | 
ТаблицаРоу
Описывает строку в таблице.
| JSON-представление | |
|---|---|
| {
  "cells": [
    {
      object ( | |
| Поля | |
|---|---|
| cells[] |   Ячейки в этом ряду. Первые три ячейки гарантированно будут показаны, но на определенных поверхностях остальные могут быть обрезаны. Пожалуйста, протестируйте с помощью симулятора, чтобы увидеть, какие ячейки будут отображаться для данной поверхности. | 
| divider |   Указывает, должен ли быть разделитель после каждой строки. | 
Таблеселл
Описывает ячейку в строке.
| JSON-представление | |
|---|---|
| { "text": string } | |
| Поля | |
|---|---|
| text |   Текстовое содержимое ячейки. | 
СМИ
Представляет один медиа-объект. Содержит информацию о носителе, такую как имя, описание, URL-адрес и т. д.
| JSON-представление | |
|---|---|
| { "mediaType": enum ( | |
| Поля | |
|---|---|
| mediaType |   Тип носителя. | 
| startOffset |   Начальное смещение первого медиа-объекта.  Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся символом «  | 
| optionalMediaControls[] |   Дополнительные типы управления мультимедиа, которые может поддерживать этот сеанс ответа на мультимедиа. Если установлено, запрос будет отправлен на 3p, когда произойдет определенное медиа-событие. Если не установлено, 3p все равно должен обрабатывать два типа управления по умолчанию: FINISHED и FAILED. | 
| mediaObjects[] |   Список медиа-объектов | 
Медиатип
Тип носителя этого ответа.
| Перечисления | |
|---|---|
| MEDIA_TYPE_UNSPECIFIED | Неуказанный тип носителя. | 
| AUDIO | Аудио файл. | 
| MEDIA_STATUS_ACK | Ответ на подтверждение отчета о состоянии СМИ. | 
Необязательные элементы управления медиа
Дополнительные типы управления мультимедиа, которые может поддерживать ответ мультимедиа
| Перечисления | |
|---|---|
| OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED | Неустановленное значение | 
| PAUSED | Приостановленное мероприятие. Срабатывает, когда пользователь приостанавливает воспроизведение мультимедиа. | 
| STOPPED | Остановленное мероприятие. Срабатывает, когда пользователь выходит из сеанса 3p во время воспроизведения мультимедиа. | 
Медиаобъект
Представляет один медиа-объект
| JSON-представление | |
|---|---|
| {
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object ( | |
| Поля | |
|---|---|
| name |   Имя этого медиа-объекта. | 
| description |   Описание этого медиа-объекта. | 
| url |   URL-адрес, указывающий на медиа-контент. | 
| image |   Изображение для показа вместе с медиа-картой. | 
Медиаизображение
Изображение для показа вместе с медиа-картой.
| JSON-представление | |
|---|---|
| { // Union field | |
| Поля | ||
|---|---|---|
| imageполя объединения. Изображение.imageможет быть только одним из следующих: | ||
| large |   Большое изображение, например обложка альбома и т. д. | |
| icon |   Небольшой значок изображения отображается справа от заголовка. Его размер изменен до 36x36 dp. | |
Коллекция
Карточка, представляющая набор вариантов на выбор.
| JSON-представление | |
|---|---|
| { "title": string, "subtitle": string, "items": [ { object ( | |
| Поля | |
|---|---|
| title |   Название сборника. Необязательный. | 
| subtitle |   Подзаголовок сборника. Необязательный. | 
| items[] |   мин: 2 макс: 10 | 
| imageFill |   Как будут заполняться фоны изображений предметов коллекции. Необязательный. | 
КоллекцияЭлемент
Предмет в коллекции
| JSON-представление | |
|---|---|
| { "key": string } | |
| Поля | |
|---|---|
| key |   Необходимый. Ключ NLU, соответствующий имени ключа записи в связанном типе. | 
Список
Карточка для представления списка вариантов на выбор.
| JSON-представление | |
|---|---|
| {
  "title": string,
  "subtitle": string,
  "items": [
    {
      object ( | |
| Поля | |
|---|---|
| title |   Название списка. Необязательный. | 
| subtitle |   Подзаголовок списка. Необязательный. | 
| items[] |   мин: 2 макс: 30 | 
Листитем
Элемент в списке
| JSON-представление | |
|---|---|
| { "key": string } | |
| Поля | |
|---|---|
| key |   Необходимый. Ключ NLU, соответствующий имени ключа записи в связанном типе. | 
Предположение
Введите предложение, которое будет представлено пользователю.
| JSON-представление | |
|---|---|
| { "title": string } | |
| Поля | |
|---|---|
| title |   Необходимый. Текст, отображаемый в чипе предложения. При нажатии этот текст будет дословно отправлен обратно в беседу, как если бы пользователь его набрал. Каждое название должно быть уникальным среди набора фишек предложений. Макс. 25 символов | 
Диагностика
Диагностическая информация, относящаяся к раунду разговора.
| JSON-представление | |
|---|---|
| {
  "actionsBuilderEvents": [
    {
      object ( | |
| Поля | |
|---|---|
| actionsBuilderEvents[] |   Список событий с подробной информацией об обработке раунда беседы на этапах модели взаимодействия Actions Builder. Заполняется только для приложений Actions Builder и Actions SDK. | 
Событие выполнения
Содержит информацию о событии выполнения, которое произошло во время обработки запроса диалога Actions Builder. Обзор этапов запроса беседы см. на странице https://developers.google.com/assistant/conversational/actions .
| JSON-представление | |
|---|---|
| { "eventTime": string, "executionState": { object ( | |
| Поля | ||
|---|---|---|
| eventTime |   Временная метка, когда произошло событие.  Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры:  | |
| executionState |   Состояние выполнения во время этого события. | |
| status |   Результирующий статус конкретного шага выполнения. | |
| warningMessages[] |   Список предупреждений, созданных во время выполнения этого события. Предупреждения — это подсказки для разработчика, обнаруженные во время запроса на беседу. Обычно они некритичны и не останавливают выполнение запроса. Например, предупреждения могут генерироваться, когда веб-перехватчик пытается переопределить несуществующий пользовательский тип. Об ошибках сообщается в виде кода состояния сбоя, но предупреждения могут присутствовать, даже если состояние «ОК». | |
| Поле объединения EventData. Подробная информация, относящаяся к различным событиям, которые могут участвовать в обработке раунда разговора. Установленное здесь поле определяет тип этого события.EventDataможет быть только одним из следующих: | ||
| userInput |   Событие обработки пользовательского ввода. | |
| intentMatch |   Событие соответствия намерения. | |
| conditionsEvaluated |   Событие оценки состояния. | |
| onSceneEnter |   Событие выполнения OnSceneEnter. | |
| webhookRequest |   Событие отправки запроса вебхука. | |
| webhookResponse |   Событие получения ответа вебхука. | |
| webhookInitiatedTransition |   Событие перехода, инициируемое Webhook. | |
| slotMatch |   Событие сопоставления слотов. | |
| slotRequested |   Событие запроса слота. | |
| slotValidated |   Событие проверки слота. | |
| formFilled |   Событие заполнения формы. | |
| waitingUserInput |   Событие ожидания ввода пользователя. | |
| endConversation |   Событие окончания разговора. | |
Состояние выполнения
Текущее состояние исполнения.
| JSON-представление | |
|---|---|
| { "currentSceneId": string, "sessionStorage": { object }, "slots": { object ( | |
| Поля | |
|---|---|
| currentSceneId |   Идентификатор сцены, которая активна в данный момент. | 
| sessionStorage |   Состояние хранилища сеансов: https://developers.google.com/assistant/conversational/storage-session. | 
| slots |   Состояние заполнения слотов, если применимо: https://developers.google.com/assistant/conversational/scenes#slot_filling | 
| promptQueue[] |   Очередь подсказок: https://developers.google.com/assistant/conversational/prompts. | 
| userStorage |   Состояние пользовательского хранилища: https://developers.google.com/assistant/conversational/storage-user. | 
| householdStorage |   Состояние домашнего хранилища: https://developers.google.com/assistant/conversational/storage-home. | 
Слоты
Представляет текущее состояние слотов сцены.
| JSON-представление | |
|---|---|
| { "status": enum ( | |
| Поля | |
|---|---|
| status |   Текущий статус заполнения слотов. | 
| slots |   Слоты, связанные с текущей сценой.  Объект, содержащий список пар  | 
Статус заполнения слота
Представляет текущий статус заполнения слотов.
| Перечисления | |
|---|---|
| UNSPECIFIED | Резервное значение, если поле использования не заполнено. | 
| INITIALIZED | Слоты инициализированы, но заполнение слотов не началось. | 
| COLLECTING | Значения слотов собираются. | 
| FINAL | Все значения слотов являются окончательными и не могут быть изменены. | 
Слот
Представляет слот.
| JSON-представление | |
|---|---|
| { "mode": enum ( | |
| Поля | |
|---|---|
| mode |   Режим слота (обязательный или необязательный). Может быть установлен разработчиком. | 
| status |   Статус слота. | 
| value |   Стоимость слота. Изменение этого значения в ответе приведет к изменению значения в заполнении слота. | 
| updated |   Указывает, было ли получено значение слота в последний ход. Это поле доступно только для чтения. | 
| prompt |   Необязательный. Это приглашение отправляется пользователю, когда необходимо заполнить необходимый слот. Это приглашение переопределяет существующее приглашение, определенное в консоли. Это поле не включается в запрос вебхука. | 
Слотрежим
Представляет режим слота, то есть требуется он или нет.
| Перечисления | |
|---|---|
| MODE_UNSPECIFIED | Резервное значение, если поле использования не заполнено. | 
| OPTIONAL | Указывает, что слот не требуется для завершения заполнения слота. | 
| REQUIRED | Указывает, что слот необходим для завершения заполнения слота. | 
Статус слота
Представляет состояние слота.
| Перечисления | |
|---|---|
| SLOT_UNSPECIFIED | Резервное значение, если поле использования не заполнено. | 
| EMPTY | Указывает, что слот не имеет значений. Этот статус нельзя изменить посредством ответа. | 
| INVALID | Указывает, что значение слота недопустимо. Этот статус можно установить через ответ. | 
| FILLED | Указывает, что слот имеет значение. Этот статус нельзя изменить посредством ответа. | 
Статус
 Тип Status определяет логическую модель ошибок, подходящую для различных сред программирования, включая API REST и API RPC. Он используется gRPC . Каждое сообщение Status содержит три части данных: код ошибки, сообщение об ошибке и сведения об ошибке.
Подробнее об этой модели ошибок и о том, как с ней работать, можно узнать в API Design Guide .
| JSON-представление | |
|---|---|
| { "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } | |
| Поля | |
|---|---|
| code |    Код состояния, который должен быть значением перечисления  | 
| message |    Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке, обращенное к пользователю, должно быть локализовано и отправлено в поле  | 
| details[] |   Список сообщений, содержащих сведения об ошибке. Существует общий набор типов сообщений для использования API.  Объект, содержащий поля произвольного типа. Дополнительное поле  | 
Усерконверсатионинпут
Информация, связанная с пользовательским вводом.
| JSON-представление | |
|---|---|
| { "type": string, "originalQuery": string } | |
| Поля | |
|---|---|
| type |   Тип пользовательского ввода. Например, клавиатура, голос, сенсорный экран и т. д. | 
| originalQuery |   Исходный ввод текста от пользователя. | 
ИнтентМатч
Информация о совпадении по намерению (глобально или внутри сцены): https://developers.google.com/assistant/conversational/intents .
| JSON-представление | |
|---|---|
| {
  "intentId": string,
  "intentParameters": {
    string: {
      object ( | |
| Поля | |
|---|---|
| intentId |   Идентификатор намерения, вызвавшего это взаимодействие. | 
| intentParameters |   Параметры намерения, вызвавшие это взаимодействие.  Объект, содержащий список пар  | 
| handler |   Имя обработчика, прикрепленного к этому взаимодействию. | 
| nextSceneId |   Сцена, к которой приводит это взаимодействие. | 
УсловияОценено
Результаты оценки условий: https://developers.google.com/assistant/conversational/scenes#conditions.
| JSON-представление | |
|---|---|
| { "failedConditions": [ { object ( | |
| Поля | |
|---|---|
| failedConditions[] |   Список условий, которые были оценены как «ложные». | 
| successCondition |   Первое условие, которое было оценено как «истина», если таковое имеется. | 
Состояние
Оцененное состояние.
| JSON-представление | |
|---|---|
| { "expression": string, "handler": string, "nextSceneId": string } | |
| Поля | |
|---|---|
| expression |   Выражение, указанное в этом условии. | 
| handler |   Имя обработчика, указанное в оцениваемом условии. | 
| nextSceneId |   Сцена назначения указана в оцененном состоянии. | 
OnSceneEnter
Информация о выполнении этапа onSceneEnter: https://developers.google.com/assistant/conversational/scenes#onEnter.
| JSON-представление | |
|---|---|
| { "handler": string } | |
| Поля | |
|---|---|
| handler |   Имя обработчика, указанное в событии onSceneEnter. | 
ВебхукЗапрос
Информация о запросе, отправленном на веб-хук действий: https://developers.google.com/assistant/conversational/webhooks#payloads.
| JSON-представление | |
|---|---|
| { "requestJson": string } | |
| Поля | |
|---|---|
| requestJson |   Полезная нагрузка запроса веб-перехватчика. | 
ВебхукОтвет
Информация об ответе, полученном от веб-перехватчика Action: https://developers.google.com/assistant/conversational/webhooks#payloads.
| JSON-представление | |
|---|---|
| { "responseJson": string } | |
| Поля | |
|---|---|
| responseJson |   Полезная нагрузка ответа веб-перехватчика. | 
WebhookInitiatedTransition
Событие, инициируемое целевой сценой, возвращенной из веб-перехватчика: https://developers.google.com/assistant/conversational/webhooks#transition_scenes
| JSON-представление | |
|---|---|
| { "nextSceneId": string } | |
| Поля | |
|---|---|
| nextSceneId |   ID сцены, к которой ведет переход. | 
СлотМатч
Информация о соответствующих слотах: https://developers.google.com/assistant/conversational/scenes#slot_filling.
| JSON-представление | |
|---|---|
| {
  "nluParameters": {
    string: {
      object ( | |
| Поля | |
|---|---|
| nluParameters |   Параметры, извлекаемые NLU из пользовательского ввода.  Объект, содержащий список пар  | 
Слот запрошен
Информация о запрашиваемом слоте: https://developers.google.com/assistant/conversational/scenes#slot_filling.
| JSON-представление | |
|---|---|
| {
  "slot": string,
  "prompt": {
    object ( | |
| Поля | |
|---|---|
| slot |   Имя запрошенного слота. | 
| prompt |   Слот подсказка. | 
Слот проверен
Событие, которое происходит после завершения проверки веб-перехватчика для слотов: https://developers.google.com/assistant/conversational/scenes#slot_filling .
ФормаЗаполнена
Событие, которое происходит, когда форма полностью заполнена: https://developers.google.com/assistant/conversational/scenes#slot_filling
ОжиданиеForUserInput
Событие, которое происходит, когда системе требуется ввод данных пользователем: https://developers.google.com/assistant/conversational/scenes#input
Конец разговора
Событие, сообщающее о завершении разговора с агентом.
