当前位置: 首页 > 知识库问答 >
问题:

在Watson Assistant中处理来自IBM云功能的多个答案

丌官霖
2023-03-14

我需要在Watson Assistant对话节点中显示未知数量的按钮。按钮的数据来自IBM Cloud函数。

如果我在我的节点中手动设置一个响应类型“选项”答案,JSON对象看起来像这样:

{
  "output": {
    "generic": [
      {
        "title": "Välj mötestyp",
        "options": [
          {
            "label": "Rådgivning familjerätt 30 min",
            "value": {
              "input": {
                "text": "447472"
              }
            }
          },
          {
            "label": "Rådgivning familjerätt 60 min",
            "value": {
              "input": {
                "text": "448032"
              }
            }
          }
        ],
        "description": "Välj typ av möte du vill boka",
        "response_type": "option",
        "preference": "dropdown"
      }
    ]
  }
}

我的云函数可以用x no选项创建这个JSON。但是我如何在助手中使用这些数据呢?

最简单的方法是让云函数生成完整的JSON,然后像这样输出返回的JSON:

{
  $context.output"
}

...但那是不允许的。

从我的函数生成输出对象:

[{"serviceId":447472,"serviceName":"Rådgivning Familjerätt 30 min"},{"serviceId":448032,"serviceName":"Rådgivning Familjerätt 60 min"}]

有什么建议吗?

共有1个答案

郑松
2023-03-14
  1. 生成选项标签和值
  2. 将它们传递到一个通用输出节点,该节点具有1、2、3等选项的预定义结构。根据要填充的预定义响应结构的上下文变量的数组大小进行检查

我测试了以下内容:

  {
  "context": {"my": [ {
            "label": "First option",
            "value": "one" 
          },
          {
            "label": "Second",
            "value": "two" }]},


  "output": {
    "generic": [
      {
        "title": "This is a test",
        "options": [{"label": "<? $my[0].label ?>", 
                     "value": {
              "input": {
                "text": "my[0].value"
              }
            }
},{"label": "<? $my[1].label ?>",             "value": {
              "input": {
                "text": "<? $my[1].value ?>"
              }
            }
}],
        "response_type": "option"
      }
    ]
  }
}

它用选项定义了一个上下文变量,类似于选项结构。在输出中访问标签和值,稍后修改以证明它们被使用并且可以被修改。

 类似资料:
  • 我正在尝试创建一个类似于以下内容的项目结构: 此外,我们希望避免使用require将所有函数拉到一个index.js文件中。

  • 我对Angular很陌生,很难掌握如何处理异步请求。 我有3个组件:父组件-AppComponent子组件-LoginComponent、NavbarComponent、仪表板组件、MainComponent、SidebarComponent 和一个AuthService 在日志组件上按“Login”按钮时,我需要将布尔值“true”传递给所有组件。在按下导航栏组件上的“注销”按钮时,我需要将布尔

  • 启用时在配置中添加插件名称 QustionPlugin,参数如下: 参数 描述 QustionPlugin 数组类型,内容为object类型(内容为多个问题和答案) id 问题和答案的唯一标识。 content 问题内容。类型:String showTime 显示问题的时间点类型:int explainInfo 问题答案的解释类型:String jump 是否跳过。类型:Boolean; back

  • 在Amazon S3 bucket中,事件日志以CSV文件的形式每小时发送一次。我想执行一些简短的描述性分析1周价值的数据,每周(例如168个文件每周)。分析的重点是输出每周的趋势产品列表。我在本地机器上编写了一个python脚本,它使用boto3从S3检索最新的168个文件,并进行所有必要的争论等。 以下是从本地计算机获取168个文件的代码: 所以,我的问题是,我是否可以将这段代码放入一个lam

  • 问题内容: 单个Servlet如何处理以用户请求形式出现的多个客户端请求?基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。对其所涉及的线程也感到困惑。 同样,这里提供了任何浏览器规范或设置,可用于跨请求发送请求或生成针对请求发送的线程。 所有框架都相同还是不同(例如,struts v / s springs)? 问题答案: Struts / S

  • 这几天我一直在追踪这个问题,似乎我在网上找到的所有参考资料都过时了,不再相关,所以我非常感谢任何建议。 我有一个Firebase项目,它有一个实时数据库和云功能,可以监听该数据库并写回更改等。我最近在同一个项目中添加了第二个数据库(更接近用户群),这是第一个数据库的相同副本,但我发现云功能并不像预期的那样适用。(默认DB位于“us-central1”中,第二个DB位于“eurpoe-west1”中