首页 > 解决方案 > Dialogflow v2 用户输入和执行

问题描述

我正在用 Google 上的 Actions 编写一个 Dialogflow v2 聊天机器人。

我要求用户创建一个列表,然后可以选择订购它们。

我需要从用户那里获得一些信息。她的姓名、电话号码和地址。

然后我需要供应商的名称和他们的手机号码,订单将被转发到那里。

如果他们已经给出了他们的名字,我想给他们看,让他们确认。问题是一切都是一个意图。例如,他们说从我的列表中订购。我必须向他们询问商店名称,例如沃尔玛。现在的问题是我可能没有实体列表中的所有供应商。如果他们只是说沃尔玛,我怎么知道它是否是供应商名称。我知道我可以有后续意图,但不确定当他们说错话时会发生什么。

基本上,这就是我希望对话的方式。

他们创建了一个我正在工作的列表。

然后他们说从列表中订购

聊天机器人询问商店的名称和手机号码,以便从聊天机器人检查数据库中的名称,如果不存在则添加它。

询问用户的姓名、号码地址

显示订单、供应商和用户的姓名和地址

将此信息传递给服务器实现挂钩。

下次它需要感知它知道用户名、地址和号码并要求用户确认。

标签: dialogflow-esfulfillment

解决方案


简单来说,您需要依赖上下文和 webhook 来验证商店名称。

  • 如果商店无效,请重置上下文(与输入相同)并礼貌地要求用户提供正确的商店名称。
  • 在参数中维护一个计数器以跟踪错误尝试的次数。
  • 错误时增加该计数器,正确时重置。
  • 如果柜台达到 3 或 4,礼貌地回复您无法为他们提供该供应商,并要求他们稍后尝试该应用程序。

如果此助手应用程序是基于美国的,您可能还需要添加 Transaction API 以显示最终订单并向用户确认。Transaction API 目前在美国可用,因此请记住这一点。


推荐阅读