Ошибки
Ошибки возникают, когда ваше действие не может двигаться вперед, потому что оно 1) не поняло ввод пользователя или 2) не получило ввода. Поскольку это может произойти в любое время, ваше действие должно иметь уникальную обработку ошибок для каждого поворота в диалоге, чтобы помочь пользователю вернуться в нужное русло.
Методические рекомендации
То, как ваше действие реагирует на ошибки, может улучшить или испортить взаимодействие с пользователем. Когда пользователи не могут выполнить свои задачи, они вряд ли будут обращаться к вашему действию в будущем. Одна плохо обработанная ошибка может перевесить десятки успешных взаимодействий. Но при хорошей обработке ошибок пользователь даже не узнает, что произошла ошибка.
Имейте в виду следующие соображения:
Сотрудничество
Прозрачность
Контекстно-зависимый
Существует 3 типа ошибок:
Ошибки в разговоре между людьми | Ошибки в разговорах человека с компьютером | ||
---|---|---|---|
Представьте, что вы разговариваете с кем-то и... | ... они не отвечают вам. | Нет ввода | Действие не услышало ответ пользователя или пользователь не ответил к моменту закрытия микрофона. |
... они говорят что-то, что вас смущает. | Не совпадает | Действие не может понять или интерпретировать ответ пользователя в контексте. | |
...они просят вас сделать то, что вы не можете сделать. | Системная ошибка | Системы, от которых зависит информация Действия, не могут выполнить задачу. |
Не совпадает
Почему нет совпадений
Ошибка «Нет соответствия» возникает, когда действие не может понять или интерпретировать ответ пользователя в контексте.
Вот несколько возможных причин ошибок «Нет совпадений».
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch1.png?authuser=6&hl=ru)
Пользователь не отвечает полностью или четко, возможно, колеблясь, передумав или не закончив предложение.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch2.png?authuser=6&hl=ru)
Пользователь может не обращаться к действию.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch3.png?authuser=6&hl=ru)
Пользователь говорит что-то, относящееся к вопросу, задаче или предметной области, но действие этого не понимает. Это может произойти, если ответ пользователя не включен в грамматику распознавания или дан в шумной обстановке.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynomatch4.png?authuser=6&hl=ru)
Пользователь хочет полностью переключить темы.
1-й уровень Нет соответствия (быстрый повторный запрос)
Быстро и лаконично соберите информацию заново или другим способом. Пользователь пытался привлечь внимание, поэтому ему, вероятно, просто нужен еще один шанс. Не повторяйте исходную подсказку дословно, так как она будет звучать роботизированно.
Быстрые подсказки обычно сочетают в себе извинения с кратким повторением первоначального вопроса .
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch1-do.png?authuser=6&hl=ru)
Делать.
Повторите вопрос быстро и кратко.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch1-dont.png?authuser=6&hl=ru)
Не.
Не зацикливайтесь на ошибке и не объясняйте ее слишком подробно.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnomatch3-do.png?authuser=6&hl=ru)
Делать.
Включение дополнительной информации может помочь пользователям ответить, сузив свой запрос.
2-й уровень Нет соответствия (расширяющаяся детализация)
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch1-do.png?authuser=6&hl=ru)
Делать.
Старайтесь быть полезными, предоставляя наиболее релевантную информацию, которая может оказаться полезной.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch1-dont.png?authuser=6&hl=ru)
Не.
Не повторяйте одно и то же снова и снова. Пользователь застрял и нуждается в дополнительных указаниях.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch2-do.png?authuser=6&hl=ru)
Делать.
Поговорите с пользователем, как будто вы разговариваете между людьми.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnomatch2-dont.png?authuser=6&hl=ru)
Не.
Убедитесь, что вы не снисходительны!
Макс. нет соответствия
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch1-do.png?authuser=6&hl=ru)
Делать.
Завершите разговор изящно, когда вы ничем не можете помочь пользователю.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch1-dont.png?authuser=6&hl=ru)
Не.
Расплывчатые обещания, особенно когда вы не знаете, о чем просил пользователь, бесполезны и подрывают доверие пользователя.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch2-do.png?authuser=6&hl=ru)
Делать.
Следующие шаги могут быть лучше, чем ничего, даже если пользователь должен сделать это самостоятельно.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnomatch2-dont.png?authuser=6&hl=ru)
Не.
Не рекомендуем повторять попытку через несколько минут или на другом устройстве, если это вряд ли решит проблему.
Нет ввода
Почему не происходит ввода
Действие не обнаружило ответа от пользователя, потому что пользователь:
- ничего не сказал, пока микрофон был открыт
- говорил недостаточно громко
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs1.png?authuser=6&hl=ru)
Пользователь вышел из комнаты, отвлекся или, может быть, передумал.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs2.png?authuser=6&hl=ru)
Нет речи, только шум.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs3.png?authuser=6&hl=ru)
Пользователь думает или не знает, как ответить.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-whynoinputs4.png?authuser=6&hl=ru)
Пользователь говорил до того, как микрофон открылся.
1-й уровень Нет ввода
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput1-do.png?authuser=6&hl=ru)
Делать.
Повторите вопрос (перефразировав) аналогичным и лаконичным образом.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput1-dont.png?authuser=6&hl=ru)
Не.
Не говорите «Я вас не слышал», потому что, скорее всего, пользователь ничего не сказал. И не думайте, что пользователь услышал первый вопрос или помнит предложенные варианты.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput2-do.png?authuser=6&hl=ru)
Делать.
Когда есть большая вероятность, что пользователь может оказаться в тупике, посмотрите, можете ли вы предоставить дополнительную поддержку.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput2.1-do.png?authuser=6&hl=ru)
Делать.
Пользователи могут не ответить на общий вопрос , потому что не знают, что сказать. Так дайте им несколько вариантов.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-1stlevelnoinput3-do.png?authuser=6&hl=ru)
Делать.
Перейдите к следующему шагу, если информация не требуется. Однако постарайтесь не наказывать пользователя, например, пропуская что-то, что кажется важным или интересным, без возможности сообщить об этом позже.
2-й уровень Нет ввода
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-2ndlevelnoinput-do.png?authuser=6&hl=ru)
Делать.
Переформулируйте вопрос, чтобы дать пользователю еще один шанс ответить.
Макс. без ввода
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-maxnoinput-do.png?authuser=6&hl=ru)
Делать.
Грамотно завершите разговор, когда пользователь перестанет вовлекаться.
Счетчики ошибок
Пользователи должны столкнуться не более чем с 3 ошибками «Нет ввода» или «Нет соответствия» подряд, после чего ваше действие должно воспроизвести соответствующую подсказку о максимальной ошибке и выйти из диалога.
Хорошая обработка ошибок зависит от контекста. Даже если вы запрашиваете одну и ту же информацию, контекст разговора отличается со второй или третьей попытки. Чтобы воспроизвести правильное сообщение об ошибке для контекста, вам необходимо отслеживать, сколько и какого типа ошибок произошло.
Следуйте этой блок-схеме, чтобы определить, какую подсказку об ошибке следует воспроизвести. Обратите внимание, что каждый раз, когда вы открываете микрофон, может возникнуть ошибка «Нет ввода» или «Нет соответствия».
![](https://developers.google.cn/static/assistant/conversation-design/images/noinputnomatch.png?authuser=6&hl=ru)
Блок-схема, чтобы определить, какую подсказку об ошибке следует воспроизвести.
Системные ошибки
- Сбой системы (система не отвечает или возвращает общую ошибку, например, свет не включается, база данных недоступна)
- Неверный запрос (например, пользователь пытался записаться на прием в прошлом)
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-systemerrors1-do.png?authuser=6&hl=ru)
Делать.
Постарайтесь быть прозрачным, но не слишком техническим. Посмотрите, есть ли какие-либо следующие шаги, которые вы могли бы предложить.
![](https://developers.google.cn/static/assistant/conversation-design/images/errors-systemerrors2-do.png?authuser=6&hl=ru)
Делать.
Постарайтесь предоставить обратную связь о том, почему запрос был недействителен, и по возможности просветите пользователя.