(Алекса) Можно ли получить ответ в том же обработчике намерений?

У меня есть собственный навык Alexa Skill, похожий на некоторые навыки Q&A, в которых я прошу пользователя ответить (скажем, option_1, option_2, option_3), но когда пользователь отвечает одним из этих запрошенных вариантов, другое намерение (скажем, ruleIntent) запускается, потому что текст варианта несколько похож на его высказывания.

Я думаю, что это не лучший дизайн, если для одной и той же (или похожей) фразы запускается более одного IntentHandler, но тогда я не знаю заранее текст параметров, чтобы этого избежать (или то, что пользователь собирается высказать как ответ на заданный вопрос). Что, если я смогу каким-то образом поддерживать контекст ответа пользователя, я думаю, это будет одним из решений.

Пример: -

1.User : Start a Science test  {Invokes testIntent }.
2.Alexa : Okay, but before starting do you want to know the rules. Please answer in Yes or No. { response generated from testIntentHandler}
3.User : Yes { invokes many intents }

В строке 3, даже если я жестко закодировать это к Intent (скажем ruleIntent), то что произойдет, если какой - то вопрос содержит свои варианты, как Да или Нет. Как мне это различить и сопоставить с ответом на заданный вопрос.

2 ответа

Один из способов справиться с этим - отслеживать состояние с помощью постоянных атрибутов или атрибутов сеанса.

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

Один из способов решить эту проблему - использовать диалоги. Вы можете использовать автоматическое делегирование для диалогов

Включите автоматическое делегирование для всего навыка или для конкретных целей. В этом случае Alexa выполняет все шаги диалога на основе вашей модели диалога. Alexa отправляет вашему умению один IntentRequest, когда диалог завершен.

Делегируйте диалог на Alexa

Другие вопросы по тегам