Предусмотрите обработку ситуаций, когда смартап не понимает запрос пользователя, т.к. запрос относится к другому смартапу.
Например, если пользователь сделает голосовой запрос «ТВ-каналы», находясь внутри другого смартапа, то ассистент не поймет, что пользователь хочет включить именно ТВ-каналы. В этому случае обрабатывать реплику пользователя будет ваш сценарий.
Чтобы подобные голосовые запросы обрабатывались не сценарием вашего смартапа, а самим ассистентом, нужно отправить ассистенту сообщение с типом NOTHING_FOUND. В этом случае ассистент сможет открыть другое приложение по запросу пользователя.
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});
Подробнее о синтаксисе NOTHING_FOUND.
Обработка отдельных запросов
Если запрос пользователя был обработан вне сценария, то будущие запросы так же будут обрабатываться ассистентом. Для возврата в контекст сценария, смартап нужно перезапустить.
Чтобы конкретный запрос пользователя обрабатывался вне сценария смартапа, в Graph нужно:
- Создать глобальный Блок Интент.
- Добавить нужную фразу и сохранить блок.
- Создать Блок JS Код со следующим кодом:
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});
- Соединить Блок Интент и Блок JS Код.
В этом случае по запросу «ТВ-каналы» будут открыты ТВ-каналы, т.к. запрос обрабатывается ассистентом, а не сценарием смартапа. Вместо фразы «ТВ-каналы» вы можете задать собственную фразу и добавить любое количество голосовых команд, которые будут обрабатываться вне сценария смартапа.
Обработка всех незнакомых запросов
Если запрос пользователя был обработан вне сценария, то будущие запросы так же будут обрабатываться ассистентом. Для возврата в контекст сценария, смартап нужно перезапустить.
Чтобы все незнакомые запросы обрабатывались вне сценария смартапа, в Graph нужно:
- Создать глобальный Блок События.
- Выбрать событие Не удалось распознать фразу пользователя и сохранить блок.
- Создать Блок JS Код со следующим кодом:
$response.replies = $response.replies || [];
$response.replies.push({
type: 'raw',
messageName: 'NOTHING_FOUND',
body: {},
});
- Соединить Блок События и Блок JS Код.
В этом случае любой незнакомый запрос будет обрабатываться ассистентом, а не сценарием смартапа.