【问题标题】:How to implement "client" type action in IBM Watson Assistant client?如何在 IBM Watson Assistant 客户端中实现“客户端”类型的操作?
【发布时间】:2019-08-26 01:21:23
【问题描述】:

我正在开发 IBM Watson Assistant 服务来构建 AI 聊天机器人,目前我正在为此构建客户端 UI,因此根据 IBM 的文档,它们支持各种操作来使用函数触发外部业务逻辑。我认为“客户端”类型的操作可以帮助我触发一些 javascript 函数,但我在 google 上看不到任何工作示例。所以请帮助我在我的 html/javascript 客户端中实现“客户端”类型的操作。

【问题讨论】:

    标签: ibm-watson


    【解决方案1】:

    检查此帖子中的问题 - https://developer.ibm.com/answers/questions/477020/help-with-custom-actions-for-ibm-watson-assistant/

    客户端操作有两个部分。第一个是在对话框中,它表示需要执行操作,以及操作结果应该放置在哪里。客户端操作要求您有一个编排层。这意味着您可以控制对话流和做出反应的编排层。如何让他们进行协调取决于您。您没有义务遵循任何模式。最简单的方法是使用上下文。该对话框设置一个上下文变量,例如。 'PleaseDoSomething',应用程序看到它并执行一些操作。

    记录在案的客户端操作构造是一个规范,它为这个过程提供了一个结构;允许其他编排层理解操作;让您相对轻松地切换到 Cloud Functions。

    如果使用客户端操作构造。

    那么对话框 json 将如下所示:

    {
      "output": {
        "text": {
          "values": [
            "Hang on I need to look that up."
          ],
          "selection_policy": "sequential"
        },
        "actions": [
         {
           "name": "fetchBalance",
           "type": "client",
           "result_variable": "balance"
         }
       ]
      }
    }
    

    您的编排层查找“Actions”,运行“fetchBalance”并将结果放入上下文字段“balance”中。

    【讨论】:

    • 我理解 fetchBalance 是在客户端定义的函数,但它是如何自动执行的?
    • 因为你的编排层会执行它。助理服务或对话框中没有任何内容会自动执行客户端操作。
    • 好的,知道了,所以我需要触发该功能。我需要遵循任何 json 结构来获取该函数的返回值吗?
    • 这并不取决于你如何做,但惯例规定你将上下文中的结果作为值返回给result_variable。 IE。在上下文字段balance 的示例中,可以是您想要的任何类型 - 字符串、数字、数组、对象...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-22
    • 2019-02-10
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    • 2010-12-19
    相关资源
    最近更新 更多