Reputation: 3
IBM Watson Assistant apidoc v2 says that output.user_defined as
"An object containing any custom properties included in the response. This object includes any arbitrary properties defined in the dialog JSON editor as part of the dialog node output."
But it does not say where in JSON editor to set it up. Is it under output?
{
"output": {
"text": {
"values": [],
"selection_policy": "sequential"
},
"xxx": "aaa"
},
"context": {}
}
Can't set it to root level in JSON editor as the editor would complain that only output, output.generic, actions, context are allowed.
Where should I put it in JSON editor so that it appears in output.user_defined in response to /message REST call?
Upvotes: 0
Views: 881
Reputation: 376
As @data_henrik stated above, extra json elements added via the JSON editor to the output section of the response are moved into the user_defined section of the V2 output response.
These "extra" json elements do not have to be labelled user_defined. In my own case I have output.extra elements within my dialog responses. In V1 they remain output.extra, but in V2 they become output.user_defined.extra.
As you are just starting, it would be best to keep consistent and use output.user_defined as your starting point.
Upvotes: 0
Reputation: 17118
You can move that into the output section as user_defined. Here is what I tried:
"output": {
"text": {
"values": [],
"selection_policy": "sequential"
},
"user_defined": {
"test": "henrik"
}
}
I then used the V2 API of my test tool to verify. Here is the relevant part of how it was reported:
"output": {
"generic": [
{
"text": "Ok, checking the event information.",
"response_type": "text"
},
{
"text": "ok.",
"response_type": "text"
}
],
"debug": {...
},
"intents": [...
],
"user_defined": {
"test": "henrik"
},
"entities": [
{...
See also this section in the IBM Watson Assistan documentation with some more information on the response JSON.
Upvotes: 1