Webhook 与 Watson Assistant 集成?

Webhook integration with Watson Assistant?

我想知道IBM Watson Assistant有没有调用webhook的功能

这意味着当工作区的意图匹配时,Watson Assistant 需要向外部服务器发送一个 post 请求,包括请求正文中的意图。

webhook 示例:

https://123.456.789.12:7788/myWebhook/testMethod

IBM Watson Assistant 需要向该服务发送 Post 请求,该服务将 return 一个文本字符串。 Watson Assistant 应该获取该文本并将其显示给用户。

那是我的用例。它可以与 Watson Assistant 一起使用吗?

我从 IBM 站点找到了以下文档。 https://console.bluemix.net/docs/services/conversation/dialog-actions.html

它说要更新 json 响应。即,将另一个键值对添加到 json 对象作为 "action"。在动作 json 数组中有 "name" 参数。我在上面添加了 url 到名称参数,并通过调用意图检查请求是否到达我的 Web 服务,但它没有。

以下是我的 json 回复。我假设一旦意图匹配,一个 post 请求应该转到我的网络服务。但我通过在控制台上打印请求正文来检查我的网络服务。但没有任何要求。你能告诉我我错过了什么吗?

{
  "context": {
    "skip_user_input": true
  },
  "output": {
     "text": {
        "values": [
             "your current outstanding balance is $my_balance ."
        ],
     "selection_policy": "sequential"
    }
  },
  "actions": [
     {
       "name": "https://123.456.789.12:7788/myWebhook/testMethod",
       "type": "client",
       "parameters": {
           "body": "$body"
       },
      "result_variable": "context.my_balance"
     }
  ]
 }

您找到了实施 webhook 的正确方法,即对话操作。

Watson Assistant 支持服务器端或客户端操作:

  • 对于服务器端操作,您可以使用 IBM Cloud Functions 设置操作。该操作将调用 webhook。
  • 对于客户端,您会将与您在问题中显示的信息类似的信息传递给应用程序(客户端)。您的应用需要做出反应并调用网络钩子。

根据我对您案例的了解,我建议您检查服务器端操作。 This tutorial about a database-driven bot implements a couple of those actions。您可以调用 webhook,而不是调用数据库。

截至 2019 年 8 月,Watson Assistant 中现在有 an integrated webhook feature

转到“助手”对话框中的“选项”并启用 webhook。粘贴从云函数创建操作后得到的 url。不要忘记将“.json”添加到您在助手 webhook 页面中粘贴的 url。在此处查看更多信息: https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-webhooks