Webhook是否与Watson Assistant集成?

时间:2018-08-17 03:22:20

标签: ibm-cloud watson-conversation

我想知道IBM Watson Assistant是否具有调用Webhook的功能。

这意味着当工作空间的意图匹配时,Watson Assistant需要将发布请求发送到包含请求主体中意图的外部服务器。

网络挂钩示例:

https://123.456.789.12:7788/myWebhook/testMethod

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

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

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

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

以下是我的json响应。我认为,一旦意图匹配后,发布请求应转到我的Web服务。但是我通过在控制台上打印请求正文来检查我的Web服务。但没有任何要求。你能告诉我我想念哪里吗?

{
  "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"
     }
  ]
 }

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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