【问题标题】:DialogFlow CX webhook basicsDialogFlow CX webhook 基础知识
【发布时间】:2021-06-30 14:28:33
【问题描述】:

我想给我的聊天机器人一些计算能力,但我完全没有使用 webhook 的经验。不幸的是,关于 DialogFlow CX 的这个主题的文档似乎接近于零(除了一些关于 webhook 的通用描述)。

有没有人知道一个具体的教程来展示如何做到这一点?或者有人能指出我正确的方向吗?

我的出发点:我有一个带有几个会话参数的 DialogFlow CX 机器人,我想将它们用于一些计算,然后计算结果应该包含在机器人文本话语中。

我现在需要执行哪些不同的步骤?有没有人有具体的样本,包括。我可以重复使用的示例代码? (我基本上只知道我需要在 DialogFlow CX 中设置一个 webhook 资源,并且这种 webhook 最简单的方法可能是使用 Cloud Functions(我以前从未这样做过))

非常感谢!!!

【问题讨论】:

    标签: dialogflow-cx


    【解决方案1】:

    请注意,在 System functions 的帮助下,可以在没有 webhook 的 Dialogflow CX 中完成加法和减法等简单计算。

    对于更复杂的计算,您可以按照以下一般步骤为 Dialogflow CX 设置和使用 webhook:

    1. 在您首选的托管站点(例如 Cloud 功能)并参考Webhook service requirementsAuthentication.

    2. 设置好 webhook 服务后,您可以add it to your agent as a webhook resource via the Dialogflow CX console or API

    3. 为您的代理创建 webhook 资源后,您可以添加 它在任何支持使用 webhook 的部分中(例如FulfillmentRoutesEvent handlers 等)。

    4. 当代理调用 webhook 时,它 发送webhook request json。见WebhookRequest reference 有关详细信息的文档。

    5. 你可以在下面获取Session parameters webhookRequest.sessionInfo.parametersjson正文:

      {
        "sessionInfo" : {
          "session":<session string>,
          "parameters": {
             "param1": {
                 "value": "sample1"
             }
         }
      
      }
      

      这是一个使用 Node.js 提取值的示例 webhook 代码 “param1”参数:

      让 yourParameter = request.body.sessionInfo.parameters.param1;

    6. 您的 webhook 服务必须返回webhook response json 的有效格式。请参阅WebhookResponse reference 文档了解 细节。 这是一个使用 Node.js 发送文本的示例代码 响应并从 webhook 响应中传递会话参数:

      let jsonResponse = {
         fulfillment_response: {
           messages: [
             {
               text: {
                 text: ["This is a sample response."]
               }
             }
           ]
         },
         sessionInfo: {
           parameters: {
                "sample-parameter": {
                    value: "sample1"
                }
           }
         }
       };
      
       response.json(jsonResponse);
      

    请注意,接收、处理和发送 json 数据的确切代码会因您使用的编程语言而异。

    您可以查看 JavaScript webhook 示例以计算 this Stackoverflow post 中的值。

    【讨论】:

    • 非常感谢您的解释,马克。我只是仔细研究了 DialogFlow 提供的系统功能,而无需 webhook。我是否正确理解只有 ADD 和 SUBTRACT 而不是 MULTIPLY 或 DIVIDE 作为算术函数提供?我简直不敢相信 MULTIPLY 和 DIVIDE 不会被覆盖?!?!
    • 是的。目前,Dialogflow CX 系统函数不支持乘法和除法函数。如果 Dialogflow CX 将来支持这些功能,您可以继续关注Release Notes
    • 好的,非常感谢您提供的信息。我认为 * 和 / 是迫切需要的。允许在许多基本用例中不需要 webhook。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-16
    • 2018-05-25
    • 2014-11-28
    • 2014-02-14
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多