Ibm cloud IBM Watson Assistant:在JSON编辑器中在何处设置output.user_定义的对象?

Ibm cloud IBM Watson Assistant:在JSON编辑器中在何处设置output.user_定义的对象?,ibm-cloud,watson-assistant,Ibm Cloud,Watson Assistant,表示output.user_定义为 包含响应中包含的任何自定义属性的对象。此对象包括作为对话框节点输出的一部分在对话框JSON编辑器中定义的任意属性 但它没有说明在JSON编辑器中的何处设置它。产量不足吗 { "output": { "text": { "values": [], "selection_policy": "sequential" }, "xxx": "aaa" }, "context": {} } 无法在JSON编辑器

表示output.user_定义为

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

但它没有说明在JSON编辑器中的何处设置它。产量不足吗

{
  "output": {
    "text": {
      "values": [],
      "selection_policy": "sequential"
    },
    "xxx": "aaa"
  },
  "context": {}
}
无法在JSON编辑器中将其设置为根级别,因为编辑器会抱怨只允许输出、output.generic、操作和上下文


我应该把它放在JSON编辑器中的什么位置,以便它出现在响应/message REST call而定义的output.user\u中?

您可以将其移动到用户定义的输出部分。以下是我尝试过的:

  "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": [
      {...

另请参见中的本节。

如上所述,通过json编辑器添加到响应输出部分的额外json元素将移动到V2输出响应的用户定义部分。 这些额外的json元素不必标记为用户定义的。在我自己的情况下,对话框响应中有output.extra元素。在V1中,它们仍然是output.extra,但在V2中它们变成output.user_defined.extra。
由于您刚刚开始,最好保持一致,并使用output.user_作为您的起点

我按照建议做了。它起作用了。但也发现了一些有趣的东西。如果JSON编辑器使用的是output.generic而不是output.text,则将附加对象放在output.additional下面不会在响应中给出output.user_defined.additiona的结果。