【问题标题】:Triggering Intent using event in dialogflow在对话流中使用事件触发 Intent
【发布时间】:2020-01-15 17:12:48
【问题描述】:

我正在尝试创建一个测验机器人,我希望在其中验证用户的答案。我创建了一个显示问题的意图,然后创建了一个后续意图来验证答案。以下是简要的想法:

当用户看到问题时,他/她也会看到一个单词选项作为建议图块,用户选择建议图块(他/她认为是正确答案),那么后续意图应该是触发以验证答案,机器人应以正确或不正确的答案响应。

到目前为止,我可以在聊天框中显示问题和选项,但是一旦用户选择该选项,就会触发默认的回退意图。 此外,我在意图的培训中包含了所有答案,这些答案只有一个字长。

有没有办法使用用户的输入来触发意图?另外,如果有任何其他方法可以在对话流中创建测验机器人,请发表评论?

【问题讨论】:

  • 如果您在问题中包含一些相关 Intent 的屏幕截图来说明您遇到的问题,我们可以为您提供更好的帮助。

标签: dialogflow-es dialogflow-es-fulfillment


【解决方案1】:

我还在 Google 主页上创建了一个测验。 我也遇到了同样的问题,我想出了以下解决方案:

默认 Welcome Intent 的输出上下文为 await_answer,我在此意图中提出问题。 然后是 getAnswerIntent,它以 await_answer 作为输入上下文,并以 answerCodeEntity 作为训练短语。该实体包括:

A: 1, A, answer 1, answer A, first, first one, the first one
B: 2, 2nd answer, second answer, answer B, B, ...
C: ...
D: ...

例如:月球离地球有多远? 答:384.000公里 B:50.000公里 或 C:1.000.000 公里

这样用户就知道如何回答了。您将避免让用户无法说出答案或只是不记得。始终尝试期待用户的反应。

这样你就可以在getAnswerIntent中处理用户的回答了。

希望对你有帮助!

【讨论】:

  • He;y Mathias,感谢您的回答。只是为了检查我是否理解正确,您为每个选项定义了一个单独的实体?以及如何将选项分配给实体,是通过在训练短语选项卡中输入选项(根据意图)然后将其标记到实体。这在我的情况下可能不起作用,因为我有很多上传选项,大约 1000+
  • 我只是跟踪当前正在讲话的用户当前处于活动状态的 questionId。在我的 Firestore 数据库中,我跟踪问题并有一个字段“correctAnswerCode”。然后我在 getAnswerIntent 中得到带有相应 questionId 的问题,并检查实体是否 === 正确答案代码。希望这是有道理的!
猜你喜欢
  • 1970-01-01
  • 2012-01-13
  • 2015-11-17
  • 1970-01-01
  • 2015-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多