0

IBM Watson Assistant apidoc v2说 output.user_defined 为

“包含响应中包含的任何自定义属性的对象。此对象包括在对话 JSON 编辑器中定义的任意属性,作为对话节点输出的一部分。”

但它没有说明在 JSON 编辑器中的哪个位置进行设置。是不是输出不足?

{
  "output": {
    "text": {
      "values": [],
      "selection_policy": "sequential"
    },
    "xxx": "aaa"
  },
  "context": {}
}

无法在 JSON 编辑器中将其设置为根级别,因为编辑器会抱怨只允许输出、output.generic、动作、上下文。

我应该把它放在 JSON 编辑器的哪里,以便它出现在 output.user_defined 中以响应 /message REST 调用?

4

2 回答 2

1

您可以将其作为user_defined移动到输出部分。这是我尝试过的:

  "output": {
    "text": {
      "values": [],
      "selection_policy": "sequential"
    },
    "user_defined": {
      "test": "henrik"
    }
  }

然后我使用我的测试工具的 V2 API进行验证。以下是报告方式的相关部分:

  "output": {
    "generic": [
      {
        "text": "Ok, checking the event information.", 
        "response_type": "text"
      }, 
      {
        "text": "ok.", 
        "response_type": "text"
      }
    ], 
    "debug": {...
    }, 
    "intents": [...
    ], 
    "user_defined": {
      "test": "henrik"
    }, 
    "entities": [
      {...

另请参阅IBM Watson Assistan 文档中的此部分,了解有关响应 JSON 的更多信息

于 2019-05-09T06:38:24.693 回答
0

正如上面的@data_henrik 所述,通过 JSON 编辑器添加到响应的输出部分的额外 json 元素被移动到 V2 输出响应的 user_defined 部分。

这些“额外”的 json 元素不必标记为 user_defined。在我自己的情况下,我的对话响应中有 output.extra 元素。在 V1 中,它们仍然是 output.extra,但在 V2 中,它们变成了 output.user_defined.extra。
当您刚刚开始时,最好保持一致并使用 output.user_defined 作为您的起点。

于 2019-05-09T12:50:39.093 回答