Выбор элемента интерфейса

Смартапы типа Canvas App поддерживают голосовое взаимодействие с элементами интерфейса. Пользователь может выбрать карточку, назвав ее содержимое.

Карточки с продуктами в интерфейсе смартапа

Для этого с фронтенда смартапа надо отправить ассистенту объект item_selector с описанием элементов интерфейса:

{
  "messageId": 1628668071,
  "sessionId": "adsf-e3bc-sdfdsf-adeb-asdf",
  "messageName": "CLASSIFY_TEXT",
  "payload": {
    "meta": {
          "item_selector": {
            "ignored_words": [
              "добавь",
              "удали"
            ],
            "items": [
              {
                "id": "c09a2d2a-e676-11e8-80c5-0cc47a817925",
                "number": 1,
                "title": "Вода с газом",
                "aliases": ["Вода"],
                "visible": true,
                "action": {
                  "action_id": "open_product",
                  "product_id": "100024263387"
                }
              },
              {
                "id": "21ff402f-fa98-11e8-80c5-0cc47a817925",
                "number": 2,
                "title": "Яблочный сок",
                "aliases": ["Сок"],
                "visible": true,
                "server_action": {
                  "action_id": "buy_product",
                  "product_id": "100024263387"
                }
              }
            ]
          }
        }
      }
  },
  "uuid": {
    "userId": "e6a1be42-bde8-40e0-8d64-814adbaa9558",
    "sub": "asldhfjkasdhfjkasdhfkj",
    "userChannel": "B2C"
  }
}
Каждый из объектов массива items может содержать произвольные поля, необходимые для работы смартапа.

Описание полей item_selector:

Наименование Описание

ignored_words

array of strings

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

Пример: "удали"

items

array of objects

Массив объектов, описывающих элементы интерфейса смартапа

    id

     Обязательное

string

Уникальный идентификатор контента

    number

integer

Номер элемента интерфейса, присвоенный смартапом

    title

string

Наименование объекта, отображающегося в элементе интерйеса. Например «Вода без газа», «Мультфильмы»

    visible

boolean

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

    aliases

array of strings

Массив слов, которые облегчат распознавание содержимого элемента интерфейса

    action

object

Действие, которое надо обработать во фронтенде смартапа

    server_action

object

Действие, которое надо обработать в сценарии (в бэкенде смартапа)

Ответ ассистента

Когда пользователь произнесет запрос, соответствующий содержимому элемента интерфейса смартапа, ассистент отправит сообщение MESSAGE_TO_SKILL, которое будет содержать объект selected_item:

{
  "messageName": "MESSAGE_TO_SKILL",
  "payload": {
    "selected_item": {
      "index": 0, // порядковый номер элемента во входящем массиве items_selector, начиная с 0
      "title": "Вода с газом"
    }
  }
}
Если пользователь ничего не выбрал, объект selected_item будет пустым.

Смартап должен обработать сообщение в сценарии или во фронтенде смартапа, в результате чего пользователь должен увидеть нужную информацию.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней