【问题标题】:Dialogflow Integration into Custom CRMDialogflow 集成到自定义 CRM
【发布时间】:2019-06-11 14:42:48
【问题描述】:

我正在尝试使用 Dialogflow 来开发 SMS 聊天机器人并将其与我们的自定义 CRM 集成。 Intent 的创建非常强大且直接。但是,我正在尝试了解某些​​事情的最佳实践。如果我有一个意图用于返回某个位置的服务价格,我可以在对话流中非常轻松地对其进行建模。但是,当 SMS 消息进来时,它将来自某个位置的新客户或已知的现有客户。对于现有客户,我们已经知道位置,因此不希望他们必须在意图中指定位置值。在将入站 SMS 消息发送到客户端 API 以匹配意图之前,如何在意图中预设“位置”参数值,以便即使入站 SMS 消息不包含它也确实存在?例如,达拉斯的一位知名客户只需要说“xxx 多少钱”而不是“达拉斯的 xxx 多少钱”。

您可以在调用 API 之前使用 API 设置参数值来尝试匹配意图吗?如果是这样,你如何在没有会话 ID 的情况下做到这一点?需要“位置”的原因是因为当我们完成时,相同服务的价格因位置而异,所以我需要知道,但我们不想让现有客户说出位置。

也许另一种选择是使用可以通过 API 触发的事件的位置意图。这将有一个输出上下文,称为设置参数值的位置和履行。但即便如此,我仍然难以理解如何将位置、电话号码等值从调用应用程序传递到对话流中,以便对话流具有这些参数值以用于实现。

阅读文档、观看视频并开始测试客户端 API v2

【问题讨论】:

    标签: dialogflow-es


    【解决方案1】:

    这当然是可能的。您想要做的是为此使用 Dialogflow API。您可以在此处找到 Google 为其创建客户端库的语言:https://cloud.google.com/dialogflow/docs/reference/libraries/overview

    只要您的代码中有任何“如果”,您就应该使用以下内容:https://dialogflow.com/docs/fulfillment

    我将如何处理:

    • 客户端发送短信
    • 如果该用户是已知的,您可以签入您的后端。如果知道 -> 不问位置,否则你问位置
    • 将用户查询与 Dialogflow 客户端库进行匹配
    • 如果(任何)匹配,Dialogflow 将返回意图

    您应该在调用 Dialogflow 库之前定义和实现任何逻辑。

    【讨论】:

    • 如果我们已经知道位置并且位置是意图中的一个参数,我如何不询问位置?有没有办法将托管应用程序的参数值传递到对话流客户端 API 调用中,以设置实体的参数值或其他东西?
    • 你会做出 2 个意图: - location.knownUser:没有位置参数 - location.unknownUser:存在位置参数用户与否。如果这是有道理的^请让我知道如果没有!
    • 这是有道理的,但似乎是一个糟糕的设计。现在您必须维护重复的意图。对于使用实现的更复杂的意图,您似乎需要能够将数据传递到意图中。例如,在使用履行时,我可能需要知道客户 ID 或至少他们的电话号码。
    • 您不必维护重复的意图。您可以使用“操作”在您的履行中处理多个意图名称。或者使用包含两种场景的 1 个意图(带参数的训练短语和不带参数的训练短语)。然后,您检查参数是否存在于您的意图中。我会选择后者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多