Ассистент передает запросы следующих типов:
MESSAGE_TO_SKILL— содержит сообщение, которое приходит в сценарий на голосовой или текстовый запрос пользователя.SERVER_ACTION— отправляется фронтом в сценарий, сообщая о действиях пользователя.RUN_APP— сообщает о запуске смартапа. Приходит в бэкенд смартапа при передаче сообщенияPOLICY _RUN_APPили запуске смартапа с помощью действия.CLOSE_APP— сообщает о закрытии и не требует ответа от смартапа. Содержимое сообщения совпадает с содержимымpayloadсообщенияMESSAGE_TO_SKILL.
Каждое сообщение содержит объект payload, наполнение которого зависит от типа сообщения. В будущем payload может быть дополнен новыми полями.
Описание запросов
MESSAGE_TO_SKILL
{
"sessionId": "86024848-c12b-4056-b58b-93c69b412314",
"messageId": 0,
"uuid": {
"userChannel": "B2С",
"sub": "d2d6da62-6bdd-452b-b5dd-a145090075ba",
"userId": 123
},
"messageName": "MESSAGE_TO_SKILL",
"payload": {
"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"
},
"intent": "rain",
"original_intent": "rain",
"intent_meta": {},
"meta": {
"time": {
"timezone_id": "Europe/Moscow",
"timezone_offset_sec": 10800,
"timestamp": 1432233446145000
},
"features": {
"screen": {
"enabled": false
},
"int_login": {
"enabled": false
}
}
},
"projectName": "weather",
"selected_item": {
"index": 0,
"title": "Яблочный сок",
"is_query_by_number": 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": {}
},
"new_session": false,
"character": {
"id": "sber",
"name": "Сбер",
"gender": "male",
"appeal": "official"
},
"strategies": {
"happy_birthday": false,
"last_call": 158644724,
"is_alice": true
},
"annotations": {
"censor_data": {
"classes": [
"politicians",
"obscene",
"model_response"
],
"probas": [
0,
0,
0.20716862380504608
]
},
"text_sentiment": {
"classes": [
"negative",
"positive",
"neutral"
],
"probas": [
0.1,
0.4,
0.2
]
},
"asr_sentiment": {
"classes": [
"negative",
"positive",
"neutral"
],
"probas": [
0.1,
0.4,
0.2
]
}
},
"message": {
"original_text": "хочу заказать пиццу на девять вечера за пятьсот рублей",
"normalized_text": "хотеть заказать пицца на TIME_TIME_TOKEN за MONEY_TOKEN .",
"asr_normalized_message": "Хочу заказать пиццу на 9 вечера за 500 ₽",
"entities": {},
"tokenized_elements_list": []
}
}
}
Возможные значения: <= 36 characters
Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.
При использовании с messageId гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.
Идентификатор запроса, который отправил ассистент.
Ответ на запрос должен содержать такой же идентификатор в поле messageId.
uuid
object
required
Составной идентификатор пользователя.
Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId. Идентификатор создается на основе значения поля sub. Если поле sub отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId.
Возможные значения: <= 64 characters
Идентификатор канала коммуникации.
Возможные значения: <= 256 characters
Идентификатор пользователя в смартапе.
Может использоваться для хранения контекста диалога пользователя. Контекст диалога можно обновлять по значению поля new_session.