问题
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"
回答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
}
}
回答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.
回答3:
I believe the following does what you want.
{
"output": {
"text": {
"values": [
"Ok got it: $Var1, $Var2, $Var3. <? $Var1 = NULL ?> <? $Var2 = NULL ?> <? $Var3 = NULL ?>"
],
"selection_policy": "sequential"
}
}
}
来源:https://stackoverflow.com/questions/48543487/how-to-remove-a-context-variable-in-watson-assistant-service-on-ibm-cloud