используя Alexa.net - могу ли я назвать намерение из кода? - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь создать игру-викторину, используя alexa.net.Однако я столкнулся с потенциальной проблемой.

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

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

Возможно ли это вообще?Если так, может кто-нибудь указать мне правильное направление, может даже написать краткий пример стиля hello-world?

1 Ответ

0 голосов
/ 04 декабря 2018

Предположим, вы хотите создать математическую игру-викторину, в которой Alexa будет задавать вам случайные вопросы по математике, и вы должны дать правильный ответ.Игра должна продолжаться до тех пор, пока пользователь не попросит специально выйти.

Создайте AnswerIntent, который срабатывает, когда пользователь говорит ответ.Наши ответы являются числами, поэтому создайте это намерение с помощью слота AMAZON.NUMBER, который позволит вам захватить произнесенные цифры.(Выберите свой слот в соответствии с ответами на ваши вопросы.)

Пример высказывания для AnswerIntent:

{number}
the answer is {number}
is it {number}

{number} -> AMAZON.NUMBER slot

Поэтому каждый раз, когда пользователь говорит ответ на ваш вопрос, вы будете получатьPOST запрос в вашем бэкэнде с запущенным намерением (в данном случае AnswerIntent), слотом и его значением.Затем:

  1. Подтвердите ответ.
  2. Обновите оценку (если вообще у вашего варианта использования есть оценка)
  3. Создайте следующий вопрос.
  4. Предоставьте ответ со следующим вопросом.

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

Пример взаимодействия:

User : Alexa, open math quiz
Alexa: Welcome to math quiz. Here is your first question. 
       What is the sum of five and four.
       [you will receive the launch request and your response has the first question]
User : Nine
       [you will receive AnswerIntent request, with number slot having value 9. 
        Validate the answer and generate the next question]
Alexa: Correct!. Here is your next question.
       What is the product of ten and five.
User : Twenty.
Alexa: Wrong, the right answer is fifty. 
       here is your next question.
       What is sum of two and six.
User : Stop
       [AMAZON.StopIntent is triggered and you can now end the game.]
Alexa: Bye.

Используйте sessionAttributes для хранения некоторой информации о вопросе или его ответе, чтобыВы можете легко проверить это на сервере, когда получите ответ от пользователя.

...