DialogFlow CX webhook 基础知识

DialogFlow CX webhook basics

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

有人知道具体的教程吗?或者有人能指出我正确的方向吗?

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

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

非常感谢!!!

请注意,在 System functions 的帮助下,无需 webhook 即可在 Dialogflow CX 中完成加减法等简单计算。

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

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

  2. 设置好 webhook 服务后,您可以添加它 通过 Dialogflow CX 控制台或 API.

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

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

  5. 可以得到Session parameterswebhookRequest.sessionInfo.parameters json 正文:

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

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

    让你的参数 = request.body.sessionInfo.parameters.param1;

  6. 您的 webhook 服务必须 return webhook 的有效格式 回应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 Whosebug post 中的值。