Method: projects.sendInteraction

Воспроизводит один раунд разговора.

HTTP-запрос

POST https://actions.googleapis.com/v2/{project=projects/*}:sendInteraction

URL-адрес использует синтаксис транскодирования gRPC .

Параметры пути

Параметры
project

string

Необходимый. Тестируемый проект, обозначенный идентификатором проекта. Формат: проекты/{проект}

Тело запроса

Тело запроса содержит данные следующей структуры:

JSON-представление
{
  "input": {
    object (UserInput)
  },
  "deviceProperties": {
    object (DeviceProperties)
  },
  "conversationToken": string
}
Поля
input

object ( UserInput )

Необходимый. Ввод предоставлен пользователем.

deviceProperties

object ( DeviceProperties )

Необходимый. Свойства устройства, используемого для взаимодействия с Действием.

conversationToken

string

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

Тело ответа

В случае успеха тело ответа содержит данные следующей структуры:

Ответ на раунд разговора.

JSON-представление
{
  "output": {
    object (Output)
  },
  "diagnostics": {
    object (Diagnostics)
  },
  "conversationToken": string
}
Поля
output

object ( Output )

Вывод предоставляется пользователю.

diagnostics

object ( Diagnostics )

Диагностическая информация, объясняющая, как был обработан запрос.

conversationToken

string

Непрозрачный токен, который необходимо установить в SendInteractionRequest при следующем вызове RPC, чтобы продолжить тот же диалог.

Пользовательский ввод

Пользовательский ввод, предоставленный в ходе разговора.

JSON-представление
{
  "query": string,
  "type": enum (InputType)
}
Поля
query

string

Содержимое ввода, отправленного пользователем.

type

enum ( InputType )

Тип входа.

Тип ввода

Указывает источник ввода, печатный запрос или голосовой запрос.

Перечисления
INPUT_TYPE_UNSPECIFIED Неуказанный источник ввода.
TOUCH Запрос из взаимодействия с графическим интерфейсом.
VOICE Голосовой запрос.
KEYBOARD Типизированный запрос.
URL Действие было вызвано URL-ссылкой.

Свойства устройства

Свойства устройства, относящиеся к раунду разговора.

JSON-представление
{
  "surface": enum (Surface),
  "location": {
    object (Location)
  },
  "locale": string,
  "timeZone": string
}
Поля
surface

enum ( Surface )

Поверхность, используемая для взаимодействия с Действием.

location

object ( Location )

Местоположение устройства, например широта, долгота и форматированный адрес.

locale

string

Языковой стандарт, установленный на устройстве. Формат должен соответствовать BCP 47: https://tools.ietf.org/html/bcp47 . Примеры: en, en-US, es-419 (дополнительные примеры можно найти на https://tools.ietf.org/html/bcp47#appendix) . -А) .

timeZone

string

Часовой пояс, установленный на устройстве. Формат должен соответствовать базе данных часовых поясов IANA, например «Америка/Нью-Йорк»: https://www.iana.org/time-zones .

Поверхность

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

Перечисления
SURFACE_UNSPECIFIED Значение по умолчанию. Это значение не используется.
SPEAKER Динамик (например, Google Home).
PHONE Телефон.
ALLO Алло Чат.
SMART_DISPLAY Интеллектуальное устройство отображения.
KAI_OS КайОС.

Расположение

Контейнер, представляющий местоположение.

JSON-представление
{
  "coordinates": {
    object (LatLng)
  },
  "formattedAddress": string,
  "zipCode": string,
  "city": string
}
Поля
coordinates

object ( LatLng )

Геокоординаты. Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION].

formattedAddress

string

Отобразить адрес, например, «1600 Amphitheatre Pkwy, Mountain View, CA 94043». Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION].

zipCode

string

Почтовый индекс. Требуется разрешение [DEVICE_PRECISE_LOCATION] [google.actions.v2.Permission.DEVICE_PRECISE_LOCATION] или [DEVICE_COARSE_LOCATION] [google.actions.v2.Permission.DEVICE_COARSE_LOCATION].

city

string

Город. Требуется разрешение [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

number

Широта в градусах. Оно должно находиться в диапазоне [-90,0, +90,0].

longitude

number

Долгота в градусах. Оно должно находиться в диапазоне [-180,0, +180,0].

Выход

Видимый пользователю вывод раунда разговора.

JSON-представление
{
  "text": string,
  "speech": [
    string
  ],
  "canvas": {
    object (Canvas)
  },
  "actionsBuilderPrompt": {
    object (Prompt)
  }
}
Поля
text

string

Голосовой ответ отправляется пользователю в виде простой строки.

speech[]

string

Речевое содержание, созданное Действием. Это может включать элементы разметки, такие как SSML.

canvas

object ( Canvas )

Интерактивный контент Canvas.

actionsBuilderPrompt

object ( Prompt )

Состояние подсказки в конце раунда разговора. Дополнительная информация о приглашении: https://developers.google.com/assistant/conversational/prompts .

Холст

Представляет ответ Interactive Canvas, который будет отправлен пользователю. Его можно использовать вместе с полем «firstSimple» в содержащем приглашении для разговора с пользователем в дополнение к отображению ответа на интерактивном холсте. Максимальный размер ответа — 50 КБ.

JSON-представление
{
  "url": string,
  "data": [
    value
  ],
  "suppressMic": boolean,
  "enableFullScreen": boolean
}
Поля
url

string

URL-адрес интерактивного веб-приложения на основе холста для загрузки. Если не установлено, URL-адрес текущего активного холста будет использоваться повторно.

data[]

value ( Value format)

Необязательный. Данные JSON, которые будут переданы на веб-страницу иммерсивного опыта как событие. Если поле «переопределить» в содержащем приглашении имеет значение «ложь», значения данных, определенные в этом приглашении Canvas, будут добавлены после значений данных, определенных в предыдущих приглашениях Canvas.

suppressMic

boolean

Необязательный. Значение по умолчанию: ложь.

enableFullScreen

boolean

Если true приложение Canvas занимает весь экран и не имеет заголовка вверху. На экране загрузки также будет отображаться всплывающее сообщение, содержащее отображаемое имя действия, имя разработчика и инструкции по выходу из действия. Значение по умолчанию: false .

Быстрый

Представлять ответ пользователю.

JSON-представление
{
  "append": boolean,
  "override": boolean,
  "firstSimple": {
    object (Simple)
  },
  "content": {
    object (Content)
  },
  "lastSimple": {
    object (Simple)
  },
  "suggestions": [
    {
      object (Suggestion)
    }
  ],
  "link": {
    object (Link)
  },
  "canvas": {
    object (Canvas)
  }
}
Поля
append
(deprecated)

boolean

Необязательный. Режим объединения этих сообщений с ранее определенными сообщениями. «false» очистит все ранее определенные сообщения (первое и последнее простое, содержимое, ссылку на предложения и холст) и добавит сообщения, определенные в этом приглашении. «true» добавит сообщения, определенные в этом приглашении, к сообщениям, определенным в предыдущих ответах. Установка для этого поля значения «истина» также позволит добавлять к некоторым полям простые приглашения, приглашение «Предложение» и приглашение «Холст» (часть приглашения «Содержимое»). Сообщения о содержимом и ссылках всегда будут перезаписаны, если они определены в приглашении. Значение по умолчанию — «ложь».

override

boolean

Необязательный. Режим объединения этих сообщений с ранее определенными сообщениями. «true» удаляет все ранее определенные сообщения (первое и последнее простое, содержимое, ссылку на предложения и холст) и добавляет сообщения, определенные в этом приглашении. «false» добавляет сообщения, определенные в этом приглашении, к сообщениям, определенным в предыдущих ответах. Если оставить для этого поля значение «false», также можно будет добавлять к некоторым полям простые приглашения, приглашение «Предложения» и приглашение «Холст» (часть приглашения «Содержимое»). Сообщения «Содержимое» и «Ссылка» всегда перезаписываются, если они определены в приглашении. Значение по умолчанию — «ложь».

firstSimple

object ( Simple )

Необязательный. Первый голосовой и текстовый ответ.

content

object ( Content )

Необязательный. Содержимое, такое как карточка, список или медиафайл, который будет отображаться пользователю.

lastSimple

object ( Simple )

Необязательный. Последний голосовой и текстовый ответ.

suggestions[]

object ( Suggestion )

Необязательный. Предложения, которые будут отображаться пользователю и всегда будут появляться в конце ответа. Если поле «переопределить» в содержащем приглашении имеет значение «ложь», заголовки, определенные в этом поле, будут добавлены к заголовкам, определенным в любых ранее определенных подсказках предложений, а повторяющиеся значения будут удалены.

canvas

object ( Canvas )

Необязательный. Представляет ответ Interactive Canvas, который будет отправлен пользователю.

Простой

Представляет простой запрос, который необходимо отправить пользователю.

JSON-представление
{
  "speech": string,
  "text": string
}
Поля
speech

string

Необязательный. Представляет речь, которая будет произнесена пользователю. Это может быть SSML или преобразование текста в речь. Если поле «переопределить» в содержащем приглашении имеет значение «истина», речь, определенная в этом поле, заменяет речь предыдущего простого приглашения.

text

string

Необязательный текст для отображения в чате. Если не задано, будет использоваться отображение речевого поля выше. Ограничено 640 символами. Если поле «переопределить» в содержащем приглашении имеет значение «истина», текст, определенный в этом поле, заменяется на текст предыдущего простого приглашения.

Содержание

Содержимое, которое будет показано.

JSON-представление
{

  // Union field content can be only one of the following:
  "card": {
    object (Card)
  },
  "image": {
    object (Image)
  },
  "table": {
    object (Table)
  },
  "media": {
    object (Media)
  },
  "canvas": {
    object (Canvas)
  },
  "collection": {
    object (Collection)
  },
  "list": {
    object (List)
  }
  // End of list of possible types for union field content.
}
Поля
content поля объединения. Содержание. content может быть только одним из следующих:
card

object ( Card )

Базовая карта.

image

object ( Image )

Изображение.

table

object ( Table )

Настольная карта.

media

object ( Media )

Ответ, указывающий набор медиафайлов для воспроизведения.

canvas
(deprecated)

object ( Canvas )

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

collection

object ( Collection )

Карточка, представляющая набор вариантов на выбор.

list

object ( List )

Карточка со списком вариантов для выбора.

Карта

Базовая карточка для отображения некоторой информации, например изображения и/или текста.

JSON-представление
{
  "title": string,
  "subtitle": string,
  "text": string,
  "image": {
    object (Image)
  },
  "imageFill": enum (ImageFill),
  "button": {
    object (Link)
  }
}
Поля
title

string

Общее название карты. Необязательный.

subtitle

string

Необязательный.

text

string

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

image

object ( Image )

Изображение героя для карты. Высота фиксирована и равна 192dp. Необязательный.

imageFill

enum ( ImageFill )

Как будет заполнен фон изображения. Необязательный.

button

object ( Link )

Кнопка. Необязательный.

Изображение

Изображение, отображаемое на карточке.

JSON-представление
{
  "url": string,
  "alt": string,
  "height": integer,
  "width": integer
}
Поля
url

string

Исходный URL изображения. Изображения могут быть в формате JPG, PNG и GIF (анимированные и неанимированные). Например, https://www.agentx.com/logo.png . Необходимый.

alt

string

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

height

integer

Высота изображения в пикселях. Необязательный.

width

integer

Ширина изображения в пикселях. Необязательный.

Заполнение изображения

Возможные варианты отображения изображения, влияющие на представление изображения. Это следует использовать, когда соотношение сторон изображения не соответствует соотношению сторон контейнера изображения.

Перечисления
UNSPECIFIED Неуказанная заливка изображения.
GRAY Заполните промежутки между изображением и контейнером изображения серыми полосами.
WHITE Заполните промежутки между изображением и контейнером изображения белыми полосами.
CROPPED Изображение масштабируется таким образом, чтобы ширина и высота изображения соответствовали размерам контейнера или превышали их. Это может обрезать верхнюю и нижнюю часть изображения, если масштабированная высота изображения больше высоты контейнера, или обрезать левую и правую часть изображения, если ширина масштабированного изображения больше ширины контейнера. Это похоже на «Режим масштабирования» на широкоэкранном телевизоре при воспроизведении видео с соотношением сторон 4:3.

OpenUrl

Действие, выполняемое, когда пользователь открывает ссылку.

JSON-представление
{
  "url": string,
  "hint": enum (UrlHint)
}
Поля
url

string

Поле URL-адреса, которое может быть любым из: URL-адреса http/https для открытия приложения, связанного с приложением, или веб-страницы.

hint

enum ( UrlHint )

Указывает подсказку для типа URL-адреса.

URL-подсказка

Различные типы подсказок URL.

Перечисления
AMP URL-адрес, указывающий непосредственно на контент AMP, или канонический URL-адрес, который ссылается на контент AMP через .

Стол

Карточка таблицы для отображения таблицы текста.

JSON-представление
{
  "title": string,
  "subtitle": string,
  "image": {
    object (Image)
  },
  "columns": [
    {
      object (TableColumn)
    }
  ],
  "rows": [
    {
      object (TableRow)
    }
  ],
  "button": {
    object (Link)
  }
}
Поля
title

string

Общее название таблицы. Необязательно, но должно быть установлено, если установлены субтитры.

subtitle

string

Подзаголовок к таблице. Необязательный.

image

object ( Image )

Изображение, связанное с таблицей. Необязательный.

columns[]

object ( TableColumn )

Заголовки и выравнивание столбцов.

rows[]

object ( TableRow )

Данные строки таблицы. Первые три строки гарантированно будут показаны, но на определенных поверхностях остальные могут быть обрезаны. Пожалуйста, протестируйте с помощью симулятора, чтобы увидеть, какие строки будут отображаться для данной поверхности. На поверхностях, которые поддерживают возможность WEB_BROWSER, вы можете указать пользователю на веб-страницу с дополнительными данными.

button

object ( Link )

Кнопка.

ТаблицаСтолбец

Описывает столбец в таблице.

JSON-представление
{
  "header": string,
  "align": enum (HorizontalAlignment)
}
Поля
header

string

Текст заголовка столбца.

align

enum ( HorizontalAlignment )

Горизонтальное выравнивание содержимого по столбцу. Если не указано, содержимое будет выровнено по переднему краю.

Горизонтальное выравнивание

Выравнивание содержимого внутри ячейки.

Перечисления
UNSPECIFIED Неопределенное горизонтальное выравнивание.
LEADING Передний край ячейки. Это значение по умолчанию.
CENTER Содержимое выравнивается по центру столбца.
TRAILING Содержимое выравнивается по заднему краю столбца.

ТаблицаРоу

Описывает строку в таблице.

JSON-представление
{
  "cells": [
    {
      object (TableCell)
    }
  ],
  "divider": boolean
}
Поля
cells[]

object ( TableCell )

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

divider

boolean

Указывает, должен ли быть разделитель после каждой строки.

Таблеселл

Описывает ячейку в строке.

JSON-представление
{
  "text": string
}
Поля
text

string

Текстовое содержимое ячейки.

СМИ

Представляет один медиа-объект. Содержит информацию о носителе, такую ​​как имя, описание, URL-адрес и т. д.

JSON-представление
{
  "mediaType": enum (MediaType),
  "startOffset": string,
  "optionalMediaControls": [
    enum (OptionalMediaControls)
  ],
  "mediaObjects": [
    {
      object (MediaObject)
    }
  ]
}
Поля
mediaType

enum ( MediaType )

Тип носителя.

startOffset

string ( Duration format)

Начальное смещение первого медиа-объекта.

Длительность в секундах, содержащая до девяти дробных цифр, заканчивающаяся символом « s ». Пример: "3.5s" .

optionalMediaControls[]

enum ( OptionalMediaControls )

Дополнительные типы управления мультимедиа, которые может поддерживать этот сеанс ответа на мультимедиа. Если установлено, запрос будет отправлен на 3p, когда произойдет определенное медиа-событие. Если не установлено, 3p все равно должен обрабатывать два типа управления по умолчанию: FINISHED и FAILED.

mediaObjects[]

object ( MediaObject )

Список медиа-объектов

Медиатип

Тип носителя этого ответа.

Перечисления
MEDIA_TYPE_UNSPECIFIED Неуказанный тип носителя.
AUDIO Аудио файл.
MEDIA_STATUS_ACK Ответ на подтверждение отчета о состоянии СМИ.

Необязательные элементы управления медиа

Дополнительные типы управления мультимедиа, которые может поддерживать ответ мультимедиа

Перечисления
OPTIONAL_MEDIA_CONTROLS_UNSPECIFIED Неустановленное значение
PAUSED Приостановленное мероприятие. Срабатывает, когда пользователь приостанавливает воспроизведение мультимедиа.
STOPPED Остановленное мероприятие. Срабатывает, когда пользователь выходит из сеанса 3p во время воспроизведения мультимедиа.

Медиаобъект

Представляет один медиа-объект

JSON-представление
{
  "name": string,
  "description": string,
  "url": string,
  "image": {
    object (MediaImage)
  }
}
Поля
name

string

Имя этого медиа-объекта.

description

string

Описание этого медиа-объекта.

url

string

URL-адрес, указывающий на медиа-контент.

image

object ( MediaImage )

Изображение для показа вместе с медиа-картой.

Медиаизображение

Изображение для показа вместе с медиа-картой.

JSON-представление
{

  // Union field image can be only one of the following:
  "large": {
    object (Image)
  },
  "icon": {
    object (Image)
  }
  // End of list of possible types for union field image.
}
Поля
image поля объединения. Изображение. image может быть только одним из следующих:
large

object ( Image )

Большое изображение, например обложка альбома и т. д.

icon

object ( Image )

Небольшой значок изображения отображается справа от заголовка. Его размер изменен до 36x36 dp.

Коллекция

Карточка, представляющая набор вариантов на выбор.

JSON-представление
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (CollectionItem)
    }
  ],
  "imageFill": enum (ImageFill)
}
Поля
title

string

Название сборника. Необязательный.

subtitle

string

Подзаголовок сборника. Необязательный.

items[]

object ( CollectionItem )

мин: 2 макс: 10

imageFill

enum ( ImageFill )

Как будут заполняться фоны изображений предметов коллекции. Необязательный.

КоллекцияЭлемент

Предмет в коллекции

JSON-представление
{
  "key": string
}
Поля
key

string

Необходимый. Ключ NLU, соответствующий имени ключа записи в связанном типе.

Список

Карточка для представления списка вариантов на выбор.

JSON-представление
{
  "title": string,
  "subtitle": string,
  "items": [
    {
      object (ListItem)
    }
  ]
}
Поля
title

string

Название списка. Необязательный.

subtitle

string

Подзаголовок списка. Необязательный.

items[]

object ( ListItem )

мин: 2 макс: 30

Пункт списка

Элемент в списке

JSON-представление
{
  "key": string
}
Поля
key

string

Необходимый. Ключ NLU, соответствующий имени ключа записи в связанном типе.

Предположение

Введите предложение, которое будет представлено пользователю.

JSON-представление
{
  "title": string
}
Поля
title

string

Необходимый. Текст, отображаемый в чипе предложения. При нажатии этот текст будет дословно отправлен обратно в беседу, как если бы пользователь его набрал. Каждое название должно быть уникальным среди набора фишек предложений. Макс. 25 символов

Диагностика

Диагностическая информация, относящаяся к раунду разговора.

JSON-представление
{
  "actionsBuilderEvents": [
    {
      object (ExecutionEvent)
    }
  ]
}
Поля
actionsBuilderEvents[]

object ( ExecutionEvent )

Список событий с подробной информацией об обработке раунда беседы на этапах модели взаимодействия Actions Builder. Заполняется только для приложений Actions Builder и Actions SDK.

Событие выполнения

Содержит информацию о событии выполнения, которое произошло во время обработки запроса диалога Actions Builder. Обзор этапов запроса беседы см. на странице https://developers.google.com/assistant/conversational/actions .

JSON-представление
{
  "eventTime": string,
  "executionState": {
    object (ExecutionState)
  },
  "status": {
    object (Status)
  },
  "warningMessages": [
    string
  ],

  // Union field EventData can be only one of the following:
  "userInput": {
    object (UserConversationInput)
  },
  "intentMatch": {
    object (IntentMatch)
  },
  "conditionsEvaluated": {
    object (ConditionsEvaluated)
  },
  "onSceneEnter": {
    object (OnSceneEnter)
  },
  "webhookRequest": {
    object (WebhookRequest)
  },
  "webhookResponse": {
    object (WebhookResponse)
  },
  "webhookInitiatedTransition": {
    object (WebhookInitiatedTransition)
  },
  "slotMatch": {
    object (SlotMatch)
  },
  "slotRequested": {
    object (SlotRequested)
  },
  "slotValidated": {
    object (SlotValidated)
  },
  "formFilled": {
    object (FormFilled)
  },
  "waitingUserInput": {
    object (WaitingForUserInput)
  },
  "endConversation": {
    object (EndConversation)
  }
  // End of list of possible types for union field EventData.
}
Поля
eventTime

string ( Timestamp format)

Временная метка, когда произошло событие.

Временная метка в формате RFC3339 UTC «Зулу» с наносекундным разрешением и до девяти дробных цифр. Примеры: "2014-10-02T15:01:23Z" и "2014-10-02T15:01:23.045123456Z" .

executionState

object ( ExecutionState )

Состояние выполнения во время этого события.

status

object ( Status )

Результирующий статус конкретного шага выполнения.

warningMessages[]

string

Список предупреждений, созданных во время выполнения этого события. Предупреждения — это подсказки для разработчика, обнаруженные во время запроса на беседу. Обычно они некритичны и не останавливают выполнение запроса. Например, предупреждения могут генерироваться, когда веб-перехватчик пытается переопределить несуществующий пользовательский тип. Об ошибках сообщается в виде кода состояния сбоя, но предупреждения могут присутствовать, даже если состояние «ОК».

Поле объединения EventData . Подробная информация, относящаяся к различным событиям, которые могут участвовать в обработке раунда разговора. Установленное здесь поле определяет тип этого события. EventData может быть только одним из следующих:
userInput

object ( UserConversationInput )

Событие обработки пользовательского ввода.

intentMatch

object ( IntentMatch )

Событие соответствия намерения.

conditionsEvaluated

object ( ConditionsEvaluated )

Событие оценки состояния.

onSceneEnter

object ( OnSceneEnter )

Событие выполнения OnSceneEnter.

webhookRequest

object ( WebhookRequest )

Событие отправки запроса вебхука.

webhookResponse

object ( WebhookResponse )

Событие получения ответа вебхука.

webhookInitiatedTransition

object ( WebhookInitiatedTransition )

Событие перехода, инициируемое Webhook.

slotMatch

object ( SlotMatch )

Событие сопоставления слотов.

slotRequested

object ( SlotRequested )

Событие запроса слота.

slotValidated

object ( SlotValidated )

Событие проверки слота.

formFilled

object ( FormFilled )

Событие заполнения формы.

waitingUserInput

object ( WaitingForUserInput )

Событие ожидания ввода пользователя.

endConversation

object ( EndConversation )

Событие окончания разговора.

Состояние выполнения

Текущее состояние исполнения.

JSON-представление
{
  "currentSceneId": string,
  "sessionStorage": {
    object
  },
  "slots": {
    object (Slots)
  },
  "promptQueue": [
    {
      object (Prompt)
    }
  ],
  "userStorage": {
    object
  },
  "householdStorage": {
    object
  }
}
Поля
currentSceneId

string

Идентификатор сцены, которая активна в данный момент.

sessionStorage

object ( Struct format)

Состояние хранилища сеансов: https://developers.google.com/assistant/conversational/storage-session .

slots

object ( Slots )

Состояние заполнения слотов, если применимо: https://developers.google.com/assistant/conversational/scenes#slot_filling

promptQueue[]

object ( Prompt )

Очередь подсказок: https://developers.google.com/assistant/conversational/prompts .

userStorage

object ( Struct format)

Состояние пользовательского хранилища: https://developers.google.com/assistant/conversational/storage-user .

householdStorage

object ( Struct format)

Состояние домашнего хранилища: https://developers.google.com/assistant/conversational/storage-home .

Слоты

Представляет текущее состояние слотов сцены.

JSON-представление
{
  "status": enum (SlotFillingStatus),
  "slots": {
    string: {
      object (Slot)
    },
    ...
  }
}
Поля
status

enum ( SlotFillingStatus )

Текущий статус заполнения слотов.

slots

map (key: string, value: object ( Slot ))

Слоты, связанные с текущей сценой.

Объект, содержащий список пар "key": value . Пример: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

Статус заполнения слота

Представляет текущий статус заполнения слотов.

Перечисления
UNSPECIFIED Резервное значение, если поле использования не заполнено.
INITIALIZED Слоты инициализированы, но заполнение слотов не началось.
COLLECTING Значения слотов собираются.
FINAL Все значения слотов являются окончательными и не могут быть изменены.

Слот

Представляет слот.

JSON-представление
{
  "mode": enum (SlotMode),
  "status": enum (SlotStatus),
  "value": value,
  "updated": boolean,
  "prompt": {
    object (Prompt)
  }
}
Поля
mode

enum ( SlotMode )

Режим слота (обязательный или необязательный). Может быть установлен разработчиком.

status

enum ( SlotStatus )

Статус слота.

value

value ( Value format)

Стоимость слота. Изменение этого значения в ответе приведет к изменению значения в заполнении слота.

updated

boolean

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

prompt

object ( 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

integer

Код состояния, который должен быть значением перечисления google.rpc.Code .

message

string

Сообщение об ошибке для разработчика, которое должно быть на английском языке. Любое сообщение об ошибке, обращенное к пользователю, должно быть локализовано и отправлено в поле google.rpc.Status.details или локализовано клиентом.

details[]

object

Список сообщений, содержащих сведения об ошибке. Существует общий набор типов сообщений для использования API.

Объект, содержащий поля произвольного типа. Дополнительное поле "@type" содержит URI, идентифицирующий тип. Пример: { "id": 1234, "@type": "types.example.com/standard/id" } .

Усерконверсатионинпут

Информация, связанная с пользовательским вводом.

JSON-представление
{
  "type": string,
  "originalQuery": string
}
Поля
type

string

Тип пользовательского ввода. Например, клавиатура, голос, сенсорный экран и т. д.

originalQuery

string

Исходный ввод текста от пользователя.

ИнтентМатч

Информация о совпадении по намерению (глобально или внутри сцены): https://developers.google.com/assistant/conversational/intents.

JSON-представление
{
  "intentId": string,
  "intentParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  },
  "handler": string,
  "nextSceneId": string
}
Поля
intentId

string

Идентификатор намерения, вызвавшего это взаимодействие.

intentParameters

map (key: string, value: object ( IntentParameterValue ))

Параметры намерения, вызвавшие это взаимодействие.

Объект, содержащий список пар "key": value . Пример: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

handler

string

Имя обработчика, прикрепленного к этому взаимодействию.

nextSceneId

string

Сцена, к которой приводит это взаимодействие.

УсловияОценено

Результаты оценки условий: https://developers.google.com/assistant/conversational/scenes#conditions .

JSON-представление
{
  "failedConditions": [
    {
      object (Condition)
    }
  ],
  "successCondition": {
    object (Condition)
  }
}
Поля
failedConditions[]

object ( Condition )

Список условий, которые были оценены как «ложные».

successCondition

object ( Condition )

Первое условие, которое было оценено как «истина», если таковое имеется.

Состояние

Оцененное состояние.

JSON-представление
{
  "expression": string,
  "handler": string,
  "nextSceneId": string
}
Поля
expression

string

Выражение, указанное в этом условии.

handler

string

Имя обработчика, указанное в оцениваемом условии.

nextSceneId

string

Сцена назначения указана в оцененном состоянии.

OnSceneEnter

Информация о выполнении этапа onSceneEnter: https://developers.google.com/assistant/conversational/scenes#onEnter .

JSON-представление
{
  "handler": string
}
Поля
handler

string

Имя обработчика, указанное в событии onSceneEnter.

ВебхукЗапрос

Информация о запросе, отправленном на веб-перехватчик действий: https://developers.google.com/assistant/conversational/webhooks#payloads.

JSON-представление
{
  "requestJson": string
}
Поля
requestJson

string

Полезная нагрузка запроса веб-перехватчика.

ВебхукОтвет

Информация об ответе, полученном от веб-перехватчика Action: https://developers.google.com/assistant/conversational/webhooks#payloads .

JSON-представление
{
  "responseJson": string
}
Поля
responseJson

string

Полезная нагрузка ответа веб-перехватчика.

WebhookInitiatedTransition

Событие, инициируемое целевой сценой, возвращенной из веб-перехватчика: https://developers.google.com/assistant/conversational/webhooks#transition_scenes

JSON-представление
{
  "nextSceneId": string
}
Поля
nextSceneId

string

ID сцены, к которой ведет переход.

СлотМатч

Информация о подходящих слотах: https://developers.google.com/assistant/conversational/scenes#slot_filling .

JSON-представление
{
  "nluParameters": {
    string: {
      object (IntentParameterValue)
    },
    ...
  }
}
Поля
nluParameters

map (key: string, value: object ( IntentParameterValue ))

Параметры, извлекаемые NLU из пользовательского ввода.

Объект, содержащий список пар "key": value . Пример: { "name": "wrench", "mass": "1.3kg", "count": "3" } .

Слот запрошен

Информация о запрашиваемом слоте: https://developers.google.com/assistant/conversational/scenes#slot_filling .

JSON-представление
{
  "slot": string,
  "prompt": {
    object (Prompt)
  }
}
Поля
slot

string

Имя запрошенного слота.

prompt

object ( 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

Конец разговора

Событие, сообщающее о завершении разговора с агентом.