Предусмотрите обработку ситуаций, когда приложение не понимает запрос пользователя, т.к. запрос относится к другому приложению.
Например, если пользователь сделает голосовой запрос «ТВ-каналы», находясь внутри другого приложения, то ассистент не поймет, что пользователь хочет включить именно ТВ-каналы. В этому случае обрабатывать реплику пользователя будет ваш сценарий.
Чтобы подобные голосовые запросы обрабатывались не сценарием вашего проекта, а самим ассистентом, нужно отправить ассистенту сообщение с типом 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 Код.
В этом случае любой незнакомый запрос будет обрабатываться ассистентом, а не сценарием.