ym88659208ym87991671
Ответы смартапа | Документация для разработчиков

Ответы смартапа

Обновлено 13 февраля 2023

Раздел содержит описание ответов смартапа.

Ассистент ожидает ответа в течение семи секунд.

На запрос ассистента смартап вернет один из следующих типов ответа:

  • ANSWER_TO_USER — содержит ответ, который ассистент предоставит пользователю;
  • POLICY_RUN_APP — сообщает, что смартап хочет запустить другое приложение. Включение функции обсуждается индивидуально на этапе модерации;
  • NOTHING_FOUND — смартап не смог найти ответ. Может указывать на то, что приложение было запущено по ошибке;
  • ERROR — сообщает ассистенту, что в смартапе возникла ошибка. Ассистент самостоятельно сообщит пользователю о возникнокении ошибки;

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

В ответах нельзя передавать null. Переносы строк в JSON-ответах смартапов запрещены.

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

ANSWER_TO_USER

sessionId
required
string <= 36 characters

Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.

При использовании с messageId гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.

messageId
required
integer <int32>

Идентификатор запроса, который отправил ассистент.

Ответ на запрос должен содержать такой же идентификатор в поле messageId.

required
object

Составной идентификатор пользователя.

Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId. Идентификатор создается на основе значения поля sub. Если поле sub отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId.

messageName
required
string

Название сообщения

Value: "ANSWER_TO_USER"
required
object

Полезная нагрузка сообщения.

Объект может быть дополнен новыми полями.

{
  • "sessionId": "86024848-c12b-4056-b58b-93c69b412314",
  • "messageId": 0,
  • "uuid": {
    },
  • "messageName": "ANSWER_TO_USER",
  • "payload": {
    }
}

POLICY_RUN_APP

Позволяет запускать сторонние смартапы. Включение функции согласуется индивидуально на этапе модерации.

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

sessionId
required
string <= 36 characters

Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.

При использовании с messageId гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.

messageId
required
integer <int32>

Идентификатор запроса, который отправил ассистент.

Ответ на запрос должен содержать такой же идентификатор в поле messageId.

required
object

Составной идентификатор пользователя.

Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId. Идентификатор создается на основе значения поля sub. Если поле sub отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId.

messageName
required
string

Название сообщения

Value: "POLICY_RUN_APP"
required
object

Полезная нагрузка сообщения.

Объект может быть дополнен новыми полями.

{
  • "sessionId": "86024848-c12b-4056-b58b-93c69b412314",
  • "messageId": 0,
  • "uuid": {
    },
  • "messageName": "POLICY_RUN_APP",
  • "payload": {
    }
}

NOTHING_FOUND

sessionId
required
string <= 36 characters

Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.

При использовании с messageId гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.

messageId
required
integer <int32>

Идентификатор запроса, который отправил ассистент.

Ответ на запрос должен содержать такой же идентификатор в поле messageId.

required
object

Составной идентификатор пользователя.

Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId. Идентификатор создается на основе значения поля sub. Если поле sub отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId.

messageName
required
string

Название сообщения

Value: "NOTHING_FOUND"
required
object

Полезная нагрузка сообщения.

Объект может быть дополнен новыми полями.

{
  • "sessionId": "86024848-c12b-4056-b58b-93c69b412314",
  • "messageId": 0,
  • "uuid": {
    },
  • "messageName": "NOTHING_FOUND",
  • "payload": {
    }
}

ERROR

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

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

sessionId
required
string <= 36 characters

Идентификатор соединения (не диалоговой сессии). Обновляется при каждом новом запросе с сохранением контекста диалога.

При использовании с messageId гарантирует уникальность сообщения. В том числе если пользователь взаимодействует с несколькими поверхностями.

messageId
required
integer <int32>

Идентификатор запроса, который отправил ассистент.

Ответ на запрос должен содержать такой же идентификатор в поле messageId.

required
object

Составной идентификатор пользователя.

Code создает собственный идентификатор пользователя, который можно получить в сценарии: $session.userId. Идентификатор создается на основе значения поля sub. Если поле sub отсутствует в запросе ассистента, для создания идентификатора используется значение поля userId.

messageName
required
string

Название сообщения

Value: "ERROR"
required
object

Полезная нагрузка сообщения.

Объект может быть дополнен новыми полями.

{
  • "sessionId": "86024848-c12b-4056-b58b-93c69b412314",
  • "messageId": 0,
  • "uuid": {
    },
  • "messageName": "ERROR",
  • "payload": {
    }
}

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

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