Как отключить определенные намерения в пользовательском навыке Alexa? - PullRequest
0 голосов
/ 17 июня 2020
...
CountryIntent{ ... };
CityIntent{ ... };
YesIntent{ ... };
FallBackIntent{ ... };
...

Я создаю особый навык Alexa. Пользователь звонит CityIntent из CountryIntent . Но если пользователь случайно скажет YES , он вызовет YesIntent из CountryIntent ; это будет неверный лог c. Как отключить YesIntent , чтобы пользователь вызывал FallBackIntent , когда он случайно говорит YES ?

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Согласен с @slawciu. Лучший способ обрабатывать ответы да / нет - отслеживать последнее намерение в атрибутах сеанса

В вашем случае вы можете включить проверку намерения города принимать только действительный город имена, тем самым устраняя необходимость обрабатывать неправильный ответ.

0 голосов
/ 18 июня 2020

Вы не можете отключить намерения. Создавая намерения, вы учите свой навык понимать конкретные c предложения / слова, произносимые человеком - и однажды научившись, их трудно забыть.

На самом деле вы можете построить конечный автомат и сохранить текущее состояние вашего разговора в SessionAttribute. Затем в каждом намерении вы должны проверить, в каком состоянии находится разговор, и действовать в соответствии с вашим логом c - так что в вашем случае, когда вы ожидаете город, и кто-то говорит «Да», ваше умение должно еще раз спросить о городе и игнорировать ответ «да».

...