Существует два основных способа сделать это.
Первый способ - использовать контексты , которые можно динамически настраивать для ограничения типов намерений, которые могут быть инициированы.Это позволит вам очень точно разработать древовидную структуру.Однако этим методом будет сложнее управлять при масштабировании.
Альтернативой является хранение данных, таких как ответы на вопросы и трудности, в данных сеанса и иметь единственное намерение Dialogflow, способноеперехватите ответ пользователя, дайте ему пропуск / неудачу и задайте следующий вопрос.
app.intent('My Question', (conv, {answer}) => {
const {currentQuestion} = conv.data
if (currentQuestion.answer === answer) {
conv.ask('Correct!')
conv.data.difficulty++
} else {
conv.ask('Wrong!')
conv.data.difficulty--
}
const nextQuestion = customShuffle(conv.data.allQuestions, conv.data.difficulty)
conv.data.allQuestions[nextQuestion.id] = undefined
conv.ask('Next question! ' + nextQuestion.question)
})