【问题标题】:Dialogflow v2 user input and fulfillmentDialogflow v2 用户输入和执行
【发布时间】:2018-08-17 14:22:46
【问题描述】:

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

我要求用户创建一个列表,然后可以选择对其进行排序。

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

然后我需要供应商的名称及其将订单转发到的手机号码。

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

基本上,这就是我想要的对话方式。

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

然后他们说从列表中排序

聊天机器人要求提供商店名称和手机号码以进行订购 Chatbot 检查数据库中的名称,如果不存在则添加它。

询问用户姓名、号码地址

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

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

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

【问题讨论】:

    标签: dialogflow-es fulfillment


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。你能举个例子更具体吗?不幸的是,我没有列表中的商店名称。商店可以是新商店,因此它可能不在实体列表中。所以我无法真正验证它,也无法使用插槽填充。我确实知道 Transaction API,但谢谢。问题也是这个,如果用户说 Veggie Reggie,我可能不知道这是一家商店。那么我应该说商店和商店名称吗?这是我可以确定她输入的是商店名称的唯一方法。
    • 另外,我使用 MySQL 来存储用户的查询和数据,所以可能不需要参数。
    • 您可能需要手动更新数据库中的商店名称以及您支持的商店的实体中的商店名称。该列表之外的那些应该由用户以单独的流程一起输入,或者您可以要求用户尝试不同的商店,因为您不支持当前的商店。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多