如何在Google上做出像树一样的结构化会话动作?

时间:2019-07-07 05:05:06

标签: dialogflow actions-on-google

我想采取行动,向用户提问并以是或否回答。答案影响玩家的未来,并根据用户答案得到不同的问题。我也想存储状态,以便用户以后可以恢复。我认为类似二叉树的结构将起作用,但是如何在dialogflow中实现它。

1 个答案:

答案 0 :(得分:0)

主要有两种方法。

第一种方法是使用contexts,可以对其进行动态配置以限制可以触发的意图类型。这将允许您以非常精确的方式开发树状结构。但是,随着扩展,这种方法将更难以管理。

另一种选择是在session data中存储诸如回答问题和困难之类的数据,并具有单个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)
})