Раздел содержит описание ответов смартапа.
Ассистент ожидает ответа в течение семи секунд.
На запрос ассистента смартап вернет один из следующих типов ответа:
ANSWER_TO_USER
— ответ сценария, который содержит команду для фронта навыка и ответ пользователю. Ответ сценария состоит из текста озвучки и текста, выводимого на экран.POLICY_RUN_APP
— позволяет из сценария одного смартапа запустить другой смартап. Включение функции обсуждается индивидуально на этапе модерации.NOTHING_FOUND
— смартап не смог найти ответ. Может указывать на то, что приложение было запущено по ошибке.ERROR
— сообщает ассистенту, что в смартапе возникла ошибка. Ассистент самостоятельно сообщит пользователю о возникновении ошибки.
Каждый ответ содержит объект payload
, наполнение которого зависит от типа ответа. Объект может быть дополнен новыми полями.
В ответах нельзя передавать null
. Переносы строк в JSON-ответах смартапов запрещены.
Описание ответов
ANSWER_TO_USER
ANSWER_TO_USER
— это ответ сценария, который содержит команду для фронта навыка и ответ пользователю. Ответ сценария состоит из текста озвучки и текста, выводимого на экран.
- Пример
- Описание
{
"sessionId": "86024848-c12b-4056-b58b-93c69b412314",
"messageId": 0,
"uuid": {
"userChannel": "B2С",
"sub": "d2d6da62-6bdd-452b-b5dd-a145090075ba",
"userId": 123
},
"messageName": "ANSWER_TO_USER",
"payload": {
"pronounceText": "Привет! Чем я могу помочь?",
"pronounceTextType": "application/text",
"emotion": {
"emotionId": "oups"
},
"items": [
{
"bubble": {},
"card": {},
"command": {}
}
],
"suggestions": {
"buttons": [
{
"title": "string",
"action": {},
"actions": [
{}
]
}
]
},
"auto_listening": false,
"finished": true,
"device": {
"platformType": "ANDROID",
"platformVersion": "1.0.2",
"surface": "SBOL",
"surfaceVersion": "1.0.2",
"devicesId": "string",
"features": {
"appTypes": [
"DIALOG"
]
},
"capabilities": {
"screen": {
"available": true,
"width": 1080,
"height": 1920,
"scale_factor": 2.5
},
"mic": {
"available": true
},
"speak": {
"available": true
}
},
"additionalInfo": {}
},
"intent": "string",
"asr_hints": {}
}
}
igrivost
— анимация игривости, которую ассистент может испытывать в ответ на дружеские шутки и подколки пользователя;udovolstvie
— анимация удовольствия;podavleniye_gneva
— анимация подавляемого раздражения на отрицательно окрашенные реплики в адрес ассистента;smushchennaya_ulibka
— анимация смущения, например, в ответ на похвалу;simpatiya
— анимация симпатии в ответ на положительно окрашенные реплики;oups
— анимация неловкости в ответ на легкое раздражение или неудобные вопросы пользователя. Например, при вопросе вида «Почему такие низкие ставки по вкладам?»;laugh
— анимация смеха над шуткой пользователя;ok_prinyato
— анимация исполнения запроса;bespokoistvo
— анимация беспокойства, например, при жалобе пользователя на самочувствие;predvkusheniye
— анимация возбужденного ожидания следующей реплики пользователя;vinovatiy
— анимация вины, например, если в приложении произошла ошибка;zhdu_otvet
— анимация ожидания реакции от пользователя, например, ответа на заданный вопрос;zadumalsa
— анимация размышление над репликой пользователя, например, если ее не удалось распознать;neznayu
— анимация отсутствия ответа.nedoumenie
— анимация сомнения, например, когда не удается точно распосзнать реплику.nedovolstvo
— анимация негативной реакции в ответ на репликуnesoglasie
— анимация несогласия с пользователем.pechal
— анимация грусти и тоскливого настроения.radost
— анимация радости или удовлетворения действиями или репликами пользователя.sochuvstvie
— анимация сопереживания или выражения участия в проблемах пользователя.strakh
— анимация испуга.zainteresovannost
— анимация проявления интереса или любопытства по отношению к действиям или репликам пользователя.- Array [
- ]
- Array [
- ]
true
— диалог завершeн, следующее сообщение пользователя поступит в другое приложение;false
— диалог продолжается, сообщения пользователя передаются в приложение.COMPANION
— запрос от приложения Салют;SBOL
— запрос от приложения СберБанк Онлайн;SBERBOX
— запрос пришел от устройства SberBox;SBERBOOM
— запрос пришел от устройства SberBoom;SBERBOOM_MINI
— запрос пришел от устройства SberBoom Mini;SATELLITE
— запрос от устройства SberBox Top;TIME
— запрос от устройства SberBox Time;STARGATE
— запрос от устройства SberPortal;TV
— запрос от умного телевизора Салют ТВ;TV_HUAWEI
— запрос от умного телевизора Huawei.
Возможные значения: <= 36 characters
Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.
При использовании с messageId
гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.
Идентификатор запроса, который отправил ассистент.
Ответ на запрос должен содержать такой же идентификатор в поле messageId
.
uuid objectrequired
Составной идентификатор пользователя.
Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId
. Идентификатор создается на основе значения поля sub
. Если поле sub
отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId
.
Возможные значения: <= 64 characters
Идентификатор канала коммуникации.
Возможные значения: <= 256 characters
Идентификатор пользователя в смартапе.
Может использоваться для хранения контекста диалога пользователя. Контекст диалога можно обновлять по значению поля new_session
.
Возможные значения: <= 64 characters
Идентификатор, который используется для определения не аутентифицированных пользователей.
Идентификатор может меняться при сбросе настроек или переустановке смартапа.
Название сообщения
payload objectrequired
Полезная нагрузка сообщения.
Объект может быть дополнен новыми полями.
Текст, который ассистент озвучит пользователю.
В тексте можно использовать SSML-разметку, если в поле pronounceTextType
указать значение application/ssml
.
Используйте разметку синтеза речи (тег audio
), чтобы добавлять звуки в смартап
Возможные значения: [application/text
, application/ssm
]
Указывает, что в тексте, который необходимо озвучить (поле pronounceText
) есть разметка application/text
или application/ssml
.
emotion object
Эмоция ассистента, которую он показывает с помощью лавашара
Возможные значения: [igrivost
, udovolstvie
, podavleniye_gneva
, smushchennaya_ulibka
, simpatiya
, oups
, laugh
, ok_prinyato
, bespokoistvo
, predvkusheniye
, vinovatiy
, zhdu_otvet
, zadumalsa
, neznayu
, nedoumenie
, nedovolstvo
, nesoglasie
, pechal
, radost
, sochuvstvie
, strakh
, zainteresovannost
]
Идентификатор эмоции, определяющий эмоцию ассистента.
Возможные значения:
items object[]
Список команд и элементов интерфейса смартапа
Карточка с данными. Например, карточка с прогнозом погоды
suggestions object
Предложения, которые смартап может сделать пользователю в зависимости от контекста диалога. Предложения могут быть представлены в виде кнопок и карточек.
Важно! В интерфейсе SberBox предложения носят информационный характер. Оформляйте их в виде подсказок, а не кнопок.
buttons object[]
Список кнопок с предложениями смартапа. Каждая кнопка представлена в виде отдельного объекта
Название кнопки, которое отображается в интерфейсе ассистента
Описывает действие, которое выполнится по нажатию кнопки.
Объект игнорируется, если кнопка содержит массив actions
Массив, содержащий несколько действий, которые выполнятся по нажатию кнопки. Содержит минимум один элемент
Указывает, что ассистент должен слушать пользователя после произнечения реплики или выполнения действия
Сообщает ассистенту о завершении работы смартапа. Ассистент интерпретирует отсутствие поля как false
.
Возможные значения:
Чтобы закрыть окно приложения после завершения работы смартапа нужно передать в сценарий команду close_app
.
device object
Данные об устройстве, на котором запущен смартап
Возможные значения: [ANDROID
, IOS
]
Операционная система устройства
Версия операционной системы
Возможные значения: [COMPANION
, SBOL
, SBERBOX
, SBERBOOM
, SBERBOOM_MINI
, SATELLITE
, TIME
, STARGATE
, TV
, TV_HUAWEI
]
Устройство или мобильное приложение, от которого приходит вызов ассистента
Версия поверхности
Идентификатор устройства
features object
Описание функциональности устройства
Возможные значения: [DIALOG
, WEB_APP
, APK
, CHAT_APP
]
Типы смартапов, которые поддерживает устройство
capabilities objectrequired
Описание возможностей устройства пользователя
screen object
Описание экрана устройства
Признак наличия экрана
Разрешение экрана в пикселях по ширине
Разрешение экрана в пикселях по высоте
Соотношение сторон экрана
mic object
Описание микрофона устройства
Признак наличия микрофона
speak object
Описание динамиков устройства
Признак наличия динамиков
Дополнительная информация об объекте или устройстве
Интент, который смартап получит в следующем ответе ассистента
POLICY_RUN_APP
POLICY_RUN_APP
— Позволяет запускать из сценария сторонние смартапы. Включение функции согласуется индивидуально на этапе модерации.
Добавить возможность запуска сторонних смартапов можно на этапе разработки или модерации:
На этапе разработки смартапа напишите письмо на developer@sberdevices.ru, в котором укажите:
- название смартапа;
- назначение смартапа;
- список смартапов, которые можно будет запускать из сценария.
При подготовке смартапа к модерации в поле Инструкция для тестирования укажите, что в сценарии используется сообщение
POLICY_RUN_APP
, и приведите список всех смартапов, которые можно будет запускать из сценария.
- Пример
- Описание
{
"sessionId": "86024848-c12b-4056-b58b-93c69b412314",
"messageId": 0,
"uuid": {
"userChannel": "B2С",
"sub": "d2d6da62-6bdd-452b-b5dd-a145090075ba",
"userId": 123
},
"messageName": "POLICY_RUN_APP",
"payload": {
"projectName": "weather",
"device": {
"platformType": "ANDROID",
"platformVersion": "1.0.2",
"surface": "SBOL",
"surfaceVersion": "1.0.2",
"devicesId": "string",
"features": {
"appTypes": [
"DIALOG"
]
},
"capabilities": {
"screen": {
"available": true,
"width": 1080,
"height": 1920,
"scale_factor": 2.5
},
"mic": {
"available": true
},
"speak": {
"available": true
}
},
"additionalInfo": {}
},
"server_action": {
"app_info": {
"projectId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"applicationId": "3fa85f64-5717-4562-b3fc-2c963f66afa7",
"appversionId": "3fa85f64-5717-4562-b3fc-2c963f66afa8",
"frontendEndpoint": "string",
"frontendType": "APK",
"systemName": "string",
"frontendStateId": "string"
},
"action_id": "string",
"parameters": {}
}
}
}
COMPANION
— запрос от приложения Салют;SBOL
— запрос от приложения СберБанк Онлайн;SBERBOX
— запрос пришел от устройства SberBox;SBERBOOM
— запрос пришел от устройства SberBoom;SBERBOOM_MINI
— запрос пришел от устройства SberBoom Mini;SATELLITE
— запрос от устройства SberBox Top;TIME
— запрос от устройства SberBox Time;STARGATE
— запрос от устройства SberPortal;TV
— запрос от умного телевизора Салют ТВ;TV_HUAWEI
— запрос от умного телевизора Huawei.
Возможные значения: <= 36 characters
Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.
При использовании с messageId
гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.
Идентификатор запроса, который отправил ассистент.
Ответ на запрос должен содержать такой же идентификатор в поле messageId
.
uuid objectrequired
Составной идентификатор пользователя.
Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId
. Идентификатор создается на основе значения поля sub
. Если поле sub
отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId
.
Возможные значения: <= 64 characters
Идентификатор канала коммуникации.
Возможные значения: <= 256 characters
Идентификатор пользователя в смартапе.
Может использоваться для хранения контекста диалога пользователя. Контекст диалога можно обновлять по значению поля new_session
.
Возможные значения: <= 64 characters
Идентификатор, который используется для определения не аутентифицированных пользователей.
Идентификатор может меняться при сбросе настроек или переустановке смартапа.
Название сообщения
payload objectrequired
Полезная нагрузка сообщения.
Объект может быть дополнен новыми полями.
Имя смартапа, которое задается при создании проекта и отображается в каталоге приложений.
device objectrequired
Данные об устройстве, на котором запущен смартап
Возможные значения: [ANDROID
, IOS
]
Операционная система устройства
Версия операционной системы
Возможные значения: [COMPANION
, SBOL
, SBERBOX
, SBERBOOM
, SBERBOOM_MINI
, SATELLITE
, TIME
, STARGATE
, TV
, TV_HUAWEI
]
Устройство или мобильное приложение, от которого приходит вызов ассистента
Версия поверхности
Идентификатор устройства
features object
Описание функциональности устройства
Возможные значения: [DIALOG
, WEB_APP
, APK
, CHAT_APP
]
Типы смартапов, которые поддерживает устройство
capabilities objectrequired
Описание возможностей устройства пользователя
screen object
Описание экрана устройства
Признак наличия экрана
Разрешение экрана в пикселях по ширине
Разрешение экрана в пикселях по высоте
Соотношение сторон экрана
mic object
Описание микрофона устройства
Признак наличия микрофона
speak object
Описание динамиков устройства
Признак наличия динамиков
Дополнительная информация об объекте или устройстве
server_action objectrequired
Информация о запускаемом смартапе и параметрах его запуска. Формируется бэкендом приложения. По умолчанию: пустой объект
app_info object
Данные о смартапе
Идентификатор проекта в SmartMarket Studio
Идентификатор смартапа
Идентификатор опубликованной версии смартапа
Ссылка на веб-приложение. Поле актуально для Canvas Apps
Возможные значения: [APK
, DIALOG
, WEB_APP
, CHAT_APP
]
Тип смартапа.
Обратите внимание, что ассистент перехватывает навигационные команды «вверх», «вниз», «влево» и «вправо» только в Canvas App (тип приложения WEB_APP
). В этом случае команды обрабатываются на уровне фронтенда приложения. В остальных случаях, команды передаются в бэкенд активного приложения.
Более читаемый аналог поля projectId
. Не актуален для внешних приложений
Объединенное значение полей projectId
, applicationId
и appversionId
Действие, которое обрабатывает бэкенд смартапа
Любые параметры, которые требуются для запуска смартапа. Параметры должны быть представлены в виде валидного JSON-объекта
NOTHING_FOUND
NOTHING_FOUND
— смартап не смог найти ответ. Может указывать на то, что приложение было запущено по ошибке.
- Пример
- Описание
{
"sessionId": "86024848-c12b-4056-b58b-93c69b412314",
"messageId": 0,
"uuid": {
"userChannel": "B2С",
"sub": "d2d6da62-6bdd-452b-b5dd-a145090075ba",
"userId": 123
},
"messageName": "NOTHING_FOUND",
"payload": {
"device": {
"platformType": "ANDROID",
"platformVersion": "1.0.2",
"surface": "SBOL",
"surfaceVersion": "1.0.2",
"devicesId": "string",
"features": {
"appTypes": [
"DIALOG"
]
},
"capabilities": {
"screen": {
"available": true,
"width": 1080,
"height": 1920,
"scale_factor": 2.5
},
"mic": {
"available": true
},
"speak": {
"available": true
}
},
"additionalInfo": {}
},
"intent": "string"
}
}
COMPANION
— запрос от приложения Салют;SBOL
— запрос от приложения СберБанк Онлайн;SBERBOX
— запрос пришел от устройства SberBox;SBERBOOM
— запрос пришел от устройства SberBoom;SBERBOOM_MINI
— запрос пришел от устройства SberBoom Mini;SATELLITE
— запрос от устройства SberBox Top;TIME
— запрос от устройства SberBox Time;STARGATE
— запрос от устройства SberPortal;TV
— запрос от умного телевизора Салют ТВ;TV_HUAWEI
— запрос от умного телевизора Huawei.
Возможные значения: <= 36 characters
Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.
При использовании с messageId
гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.
Идентификатор запроса, который отправил ассистент.
Ответ на запрос должен содержать такой же идентификатор в поле messageId
.
uuid objectrequired
Составной идентификатор пользователя.
Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId
. Идентификатор создается на основе значения поля sub
. Если поле sub
отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId
.
Возможные значения: <= 64 characters
Идентификатор канала коммуникации.
Возможные значения: <= 256 characters
Идентификатор пользователя в смартапе.
Может использоваться для хранения контекста диалога пользователя. Контекст диалога можно обновлять по значению поля new_session
.
Возможные значения: <= 64 characters
Идентификатор, который используется для определения не аутентифицированных пользователей.
Идентификатор может меняться при сбросе настроек или переустановке смартапа.
Название сообщения
payload objectrequired
Полезная нагрузка сообщения.
Объект может быть дополнен новыми полями.
device object
Данные об устройстве, на котором запущен смартап
Возможные значения: [ANDROID
, IOS
]
Операционная система устройства
Версия операционной системы
Возможные значения: [COMPANION
, SBOL
, SBERBOX
, SBERBOOM
, SBERBOOM_MINI
, SATELLITE
, TIME
, STARGATE
, TV
, TV_HUAWEI
]
Устройство или мобильное приложение, от которого приходит вызов ассистента
Версия поверхности
Идентификатор устройства
features object
Описание функциональности устройства
Возможные значения: [DIALOG
, WEB_APP
, APK
, CHAT_APP
]
Типы смартапов, которые поддерживает устройство
capabilities objectrequired
Описание возможностей устройства пользователя
screen object
Описание экрана устройства
Признак наличия экрана
Разрешение экрана в пикселях по ширине
Разрешение экрана в пикселях по высоте
Соотношение сторон экрана
mic object
Описание микрофона устройства
Признак наличия микрофона
speak object
Описание динамиков устройства
Признак наличия динамиков
Дополнительная информация об объекте или устройстве
Интент, который смартап получит в следующем ответе ассистента
ERROR
ERROR
— сообщает ассистенту, что в смартапе возникла ошибка. Ассистент самостоятельно сообщит пользователю о возникновении ошибки.
При возникновении ошибки в приложении, вам достаточно передать ассистенту сообщение с типом ERROR
и описанным ниже содержимым.
Ассистент оповестит пользователя об ошибке с помощью заранее подготовленного сообщения, соответствующего образу выбранного голоса.
- Пример
- Описание
{
"sessionId": "86024848-c12b-4056-b58b-93c69b412314",
"messageId": 0,
"uuid": {
"userChannel": "B2С",
"sub": "d2d6da62-6bdd-452b-b5dd-a145090075ba",
"userId": 123
},
"messageName": "ERROR",
"payload": {
"code": 1984,
"description": "Описание ошибки",
"device": {
"platformType": "ANDROID",
"platformVersion": "1.0.2",
"surface": "SBOL",
"surfaceVersion": "1.0.2",
"devicesId": "string",
"features": {
"appTypes": [
"DIALOG"
]
},
"capabilities": {
"screen": {
"available": true,
"width": 1080,
"height": 1920,
"scale_factor": 2.5
},
"mic": {
"available": true
},
"speak": {
"available": true
}
},
"additionalInfo": {}
},
"intent": "string"
}
}
COMPANION
— запрос от приложения Салют;SBOL
— запрос от приложения СберБанк Онлайн;SBERBOX
— запрос пришел от устройства SberBox;SBERBOOM
— запрос пришел от устройства SberBoom;SBERBOOM_MINI
— запрос пришел от устройства SberBoom Mini;SATELLITE
— запрос от устройства SberBox Top;TIME
— запрос от устройства SberBox Time;STARGATE
— запрос от устройства SberPortal;TV
— запрос от умного телевизора Салют ТВ;TV_HUAWEI
— запрос от умного телевизора Huawei.
Возможные значения: <= 36 characters
Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.
При использовании с messageId
гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.
Идентификатор запроса, который отправил ассистент.
Ответ на запрос должен содержать такой же идентификатор в поле messageId
.
uuid objectrequired
Составной идентификатор пользователя.
Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId
. Идентификатор создается на основе значения поля sub
. Если поле sub
отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId
.
Возможные значения: <= 64 characters
Идентификатор канала коммуникации.
Возможные значения: <= 256 characters
Идентификатор пользователя в смартапе.
Может использоваться для хранения контекста диалога пользователя. Контекст диалога можно обновлять по значению поля new_session
.
Возможные значения: <= 64 characters
Идентификатор, который используется для определения не аутентифицированных пользователей.
Идентификатор может меняться при сбросе настроек или переустановке смартапа.
Название сообщения
payload objectrequired
Полезная нагрузка сообщения.
Объект может быть дополнен новыми полями.
Код ошибки
Возможные значения: <= 30 characters
Описание ошибки
device objectrequired
Данные об устройстве, на котором запущен смартап
Возможные значения: [ANDROID
, IOS
]
Операционная система устройства
Версия операционной системы
Возможные значения: [COMPANION
, SBOL
, SBERBOX
, SBERBOOM
, SBERBOOM_MINI
, SATELLITE
, TIME
, STARGATE
, TV
, TV_HUAWEI
]
Устройство или мобильное приложение, от которого приходит вызов ассистента
Версия поверхности
Идентификатор устройства
features object
Описание функциональности устройства
Возможные значения: [DIALOG
, WEB_APP
, APK
, CHAT_APP
]
Типы смартапов, которые поддерживает устройство
capabilities objectrequired
Описание возможностей устройства пользователя
screen object
Описание экрана устройства
Признак наличия экрана
Разрешение экрана в пикселях по ширине
Разрешение экрана в пикселях по высоте
Соотношение сторон экрана
mic object
Описание микрофона устройства
Признак наличия микрофона
speak object
Описание динамиков устройства
Признак наличия динамиков
Дополнительная информация об объекте или устройстве
Интент, который смартап получит в следующем ответе ассистента