Search code examples
ibm-watsonwatson-conversation

How to create a context variable in the entire multiplied-replies node in Watson Assistant?


To add a context variable in a node with a single reply, I just add the var once in that response and that's fair enough.

But in multiple replies node, I must configure each response and add the context variable in each one with either context or JSON editor.

Can I add that only once?

If not what is the idea behind that?

Why does not even a node general variable option exist besides reply-specific ones?


Solution

  • The multiple response node is a way to easily have different responses nested together. Before this feature you had to create a node for every single response you wanted to do.

    This appears to be a side-effect of this, but is easy to resolve.

    Create your main node and set your context variable. Then create a child node and have the parent "Skip User Input". The child node should have your multiple responses.

    Example workspace:

    {
      "name": "Example single context for multiresponse node",
      "intents": [],
      "entities": [],
      "language": "en",
      "metadata": {
        "api_version": {
          "major_version": "v1",
          "minor_version": "2017-05-26"
        }
      },
      "description": "",
      "dialog_nodes": [
        {
          "type": "response_condition",
          "title": null,
          "output": {
            "generic": [
              {
                "values": [
                  {
                    "text": "two $example"
                  }
                ],
                "response_type": "text"
              }
            ]
          },
          "parent": "node_1_1532968597524",
          "context": null,
          "metadata": {},
          "next_step": null,
          "conditions": "input.text == \"2\"",
          "description": null,
          "dialog_node": "node_3_1532968635994",
          "previous_sibling": "node_2_1532968631610"
        },
        {
          "type": "response_condition",
          "title": null,
          "output": {
            "generic": [
              {
                "values": [
                  {
                    "text": "one $example"
                  }
                ],
                "response_type": "text",
                "selection_policy": "sequential"
              }
            ]
          },
          "parent": "node_1_1532968597524",
          "context": null,
          "metadata": {},
          "next_step": null,
          "conditions": "input.text == \"1\"",
          "description": null,
          "dialog_node": "node_2_1532968631610",
          "previous_sibling": null
        },
        {
          "type": "standard",
          "title": "Enter 1 or 2 to trigger.",
          "output": {},
          "parent": "node_4_1532968810899",
          "context": null,
          "metadata": {
            "_customization": {
              "mcr": true
            }
          },
          "next_step": null,
          "conditions": "anything_else",
          "description": null,
          "dialog_node": "node_1_1532968597524",
          "digress_out": "allow_all",
          "previous_sibling": null
        },
        {
          "type": "standard",
          "title": "$example set to value of \"example\"",
          "output": {
            "generic": [
              {
                "values": [],
                "response_type": "text",
                "selection_policy": "sequential"
              }
            ]
          },
          "parent": null,
          "context": {
            "example": "example"
          },
          "metadata": {},
          "next_step": {
            "behavior": "skip_user_input"
          },
          "conditions": "anything_else",
          "description": null,
          "dialog_node": "node_4_1532968810899",
          "previous_sibling": "Welcome"
        },
        {
          "type": "standard",
          "title": "Anything else",
          "output": {
            "generic": [
              {
                "values": [
                  {
                    "text": "I didn't understand. You can try rephrasing."
                  },
                  {
                    "text": "Can you reword your statement? I'm not understanding."
                  },
                  {
                    "text": "I didn't get your meaning."
                  }
                ],
                "response_type": "text",
                "selection_policy": "sequential"
              }
            ]
          },
          "parent": null,
          "context": null,
          "metadata": {},
          "next_step": null,
          "conditions": "anything_else",
          "description": null,
          "dialog_node": "Anything else",
          "previous_sibling": "node_4_1532968810899"
        },
        {
          "type": "standard",
          "title": "Welcome",
          "output": {
            "generic": [
              {
                "values": [
                  {
                    "text": "Hello. How can I help you?"
                  }
                ],
                "response_type": "text",
                "selection_policy": "sequential"
              }
            ]
          },
          "parent": null,
          "context": null,
          "metadata": {},
          "next_step": null,
          "conditions": "welcome",
          "description": null,
          "dialog_node": "Welcome",
          "previous_sibling": null
        }
      ],
      "workspace_id": "9e5b9851-5f0e-4e5f-9523-d2ac7045bf1d",
      "counterexamples": [],
      "system_settings": {
        "tooling": {
          "store_generic_responses": true
        },
        "disambiguation": {
          "prompt": "Did you mean:",
          "none_of_the_above_prompt": "None of the above"
        },
        "human_agent_assist": {
          "prompt": "Did you mean:"
        }
      },
      "learning_opt_out": false
    }