1

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

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

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

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

非常感谢!!!

4

1 回答 1

1

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

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

  1. 在您首选的托管站点上创建一个 Web 服务(例如云功能)并参考Webhook 服务要求身份验证

  2. 设置好 Webhook 服务后,您可以通过 Dialogflow CX 控制台或 API 将其作为 Webhook 资源添加到您的代理中

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

  4. 当代理调用 webhook 时,它会发送一个webhook 请求json。有关详细信息,请参阅WebhookRequest 参考 文档。

  5. 您可以在 webhookRequest下获取Session 参数sessionInfo.parameters json 正文:

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

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

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

  6. 然后,您的 webhook 服务必须返回有效格式的webhook 响应json。有关详细信息,请参阅WebhookResponse 参考文档。这是一个使用 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 数据的确切代码会因您使用的编程语言而异。

您可以在此 Stackoverflow 帖子中查看用于计算值的 JavaScript webhook 示例。

于 2021-07-02T17:20:14.977 回答