mpjjonker
mpjjonker

Reputation: 947

Watson Assistant (Conversation) service behaves differently when created via API versus created in the Browser

We are seeing different behaviour when we create a workspace in the WebInterface versus when we create the same conversation via the API.

The JSON export for the dialognode is the same:

{ "type": "standard",
"title": "SmallTalk: weerbericht", "output": {
"text": { "values": [], "selection_policy": "sequential" } },
"parent": "smalltalk_container",

"context": { "user_weer": "@weerbericht", "user_location": "@plaatsnamen" },
"metadata": { "_customization": { "mcr": false } },
"next_step": { "behavior": "jump_to", "selector": "condition", "dialog_node": "node_33_1519129633532" },
"conditions": "#ST_weersbericht",
"description": null, "dialog_node": "node_9_1517408489377",
"previous_sibling": "node_3_1518680265483" },

But the behaviour is different, which can be explained when we look at the UI there is a difference This is the UI for the dialogNode created via the browser enter image description here

This is the UI for the same dialogNode created via the API enter image description here

One difference we found is the Multiple Reponse switch: enter image description here It should be OFF (image on the right) and as per the JSON (mcr:false). But even when we switch it on manually, the context variables don't show.

What should I be looking for in the API to fix this ?

Upvotes: 0

Views: 188

Answers (1)

Michal Bida
Michal Bida

Reputation: 1326

The dialog model for multiple condition responses is that the parent node needs to be either standard dialog node or frame. Now when adding a multiple condition response to this node (and hence making an MCR node out of that parent node) you need to add a dialog node with "type":"response_condition" under this node.

This is a way how to create multiple condition responses through the api.

To give you and example to create MCR node: enter image description here

The JSON of dialog nodes that need to pushed through the API will look like:

{
    "type": "standard",
    "title": "mcr node",
    "output": {

    },
    "parent": null,
    "context": null,
    "metadata": {
        "_customization": {
            "mcr": true
        }
    },
    "next_step": null,
    "conditions": "#book_flight",
    "digress_in": "does_not_return",
    "description": null,
    "dialog_node": "node_8_1525086089064",
    "digress_out": "allow_all",
    "previous_sibling": null
},
{
    "type": "response_condition",
    "title": null,
    "output": {
        "text": {
            "values": ["I see city entity!"]
        }
    },
    "parent": "node_8_1525086089064",
    "context": null,
    "metadata": {

    },
    "next_step": null,
    "conditions": "@city",
    "description": null,
    "dialog_node": "node_9_1525086100114",
    "previous_sibling": null
},
{
    "type": "response_condition",
    "title": null,
    "output": {
        "text": {
            "values": ["I don't see anything."]
        }
    },
    "parent": "node_8_1525086089064",
    "context": null,
    "metadata": {

    },
    "next_step": null,
    "conditions": "anything_else",
    "description": null,
    "dialog_node": "node_10_1525086122332",
    "previous_sibling": "node_9_1525086100114"
}

Upvotes: 1

Related Questions