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

Обработка запросов вне сценария Code

Обновлено 29 июля 2024

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

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

Чтобы подобные голосовые запросы обрабатывались не сценарием вашего смартапа, а самим ассистентом, нужно отправить ассистенту сообщение с типом NOTHING_FOUND. В этом случае ассистент сможет открыть другое приложение по запросу пользователя.

$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});

Подробнее о синтаксисе NOTHING_FOUND.

Обработка отдельных запросов

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

Чтобы конкретный запрос пользователя обрабатывался вне сценария смартапа, в Code нужно добавить новый стейт:

state: StateName
q!: ТВ каналы
script:
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});

В этом случае запрос "ТВ каналы" будет обрабатываться ассистентом, а не сценарием смартапа, в следствии чего откроется просмотр ТВ-каналов. Вместо фразы "ТВ каналы" вы можете задать собственную фразу и добавить любое количество голосовых команд, которые будут обрабатываться вне сценария смартапа.

Обработка всех незнакомых запросов

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

Чтобы все незнакомые запросы обрабатывались вне сценария смартапа, в Code нужно добавить новый стейт:

state: noMatch
event!: noMatch
script:
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});

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

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей.
Вы можете запретить сохранение cookie в настройках своего браузера.