首页 > 解决方案 > 未收到回复时转到下一个问题

问题描述

我们让一位开发人员为用于簿记问题的机器人提出原型,我们知道该机器人并不完美。我们最大的挑战是确保机器人在 2-3 次尝试失败后收到适当的响应后,机器人会继续处理下一个问题,仅此而已。我们之前的开发人员声称这是不可能的,这是真的吗?目前,机器人在几次尝试后就放弃了,就是这样。

我不是技术人员,我非常感谢您对此的帮助。

理想场景的假设示例:

问:你们用什么会计软件?答:问dnjsajld

问:没听懂。你用什么会计软件?答:asdkjnajksdn

问:对不起,没听懂。让我们继续下一个问题……您希望什么时候收到您的财务数据?A:月底

谢谢您的帮助!

标签: botsdialogflow-es

解决方案


是的,这是可能的,尽管您如何执行此操作的具体细节首先取决于您如何处理来自用户的响应。

然而,处理这个问题要记住的最重要的事情是记住 Intents 代表用户所说的内容,而不是您如何处理它或您如何回复

最后一点为您的问题提供了最简单的答案 - 当然,您可以回复,但您希望机器人在每一轮后回复。听起来您能够实现逻辑,说明如果它得到了它不想要的结果 - 您可以扩展它以添加一个计数器,该计数器在多次尝试后仅使用下一个问题作为其回复。

更困难的部分是确保您知道用户正在回答什么问题,并确保您获得正确的价值,以防他们试图返回并回答之前的问题。

这个问题的一般解决方案是双重的:

  • 有一个 Intent 可以直接回答您当前正在处理的问题,但只有在设置某些输入上下文时才能触发它。然后在您提出问题时将该上下文设置为有效,并在回答问题时删除该上下文。
  • 有其他 Intent 专门响应用户在返回回答问题时可能如何表达问题。

例如,如果您问“您使用什么软件?” 您可以将上下文设置为“询问软件使用”。然后你会有两个意图:

  • 一个输入上下文为“ask-software-used”,只接受有效的软件名称。

  • 另一个没有输入上下文,但可能有训练短语,例如

    • “我正在使用 XXXX 软件”
    • “我们正在使用 XXXX 包”

一旦用户确实回答了这个问题,清除“ask-software-used”上下文,问下一个问题,并设置它的上下文。

您还可以使用它来跟踪您必须重复该问题的次数,以等待答案。如果该计数器达到限制,请执行相同的操作:清除上下文,询问下一个问题,然后设置其上下文。


推荐阅读