Диалоговый поток: перенаправление на указанный блок c на основе даты или дня - PullRequest
0 голосов
/ 02 мая 2020

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

Пример:

  1. Я бы хотел, чтобы пользователи проходили ежедневную викторину, если день (понедельник - суббота).

  2. Если отправляет их воскресенье намерение на еженедельную викторину.

  3. Если это последний день месяца, отправьте их на намерение на ежемесячную викторину.

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Допустим, пользователь говорит «Я хочу пройти тест» вашему чат-боту, что вызывает намерение take.quiz. В коде выполнения вы можете установить followupEvents в зависимости от дня / даты.

Например. если это понедельник-суббота, сделайте это как agent.setFollowupEvent('take.quiz.daily'); Это «перенаправит» его на ежедневную викторину.

Что-то вроде

intentMap.set('take.quiz', takeQuiz);

function takeQuiz(agent) {
  //if day is Monday-Saturday
  agent.setFollowupEvent('take.quiz.daily')

  //if day is Sunday
  agent.setFollowupEvent('take.quiz.weekly')

  //if its last day of the month
  agent.setFollowupEvent('take.quiz.monthly')
}
1 голос
/ 02 мая 2020

Intents захватывает то, что пользователь говорит , а не то, что вы отправляете или как вы обрабатываете то, что они отправили. Таким образом, вы не можете «перенаправить» пользователя к определенному Намерению.

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

...