How to remove a context variable in Watson Assistant service on IBM Cloud
I am using this, but this only sets it to empty,
{
"context": {
"time": "",
"place": "",
"things": "",
"transport": ""
},
"output": {}
}
I also tried "time": "null"
and "time": "$time.remove"
Solution 1:
For those using Watson Assistant on an older API version:
The best is to use context.remove()
in the output section. I usually have an extra child node for cleanup.
{
"output": {
"text": {},
"deleted": "<? context.remove('eventName') ?> <? context.remove('queryPredicate') ?>"
}
}
Because deleted
is not part of the context section it won't be carried forward.
For those on recent API versions of Watson Assistant:
Set the variable to null. Here is the doc on "Deleting a context variable".
{
"context": {
"myvariable": null
}
}
Setting the variable to null can also be performed in the dialog form when assigning values to variables.
Solution 2:
You can also add a child node and add jump to the child node after response with the condition set to true and set the context variable to null there.