【问题标题】:How to remove a context variable in Watson Assistant service on IBM Cloud如何在 IBM Cloud 上的 Watson Assistant 服务中移除上下文变量
【发布时间】:2018-01-31 13:36:29
【问题描述】:

我正在使用这个,但这只是将它设置为空,

{
  "context": {
    "time": "",
    "place": "",
    "things": "",
    "transport": ""
  },
  "output": {}
}

我也试过"time": "null""time": "$time.remove"

【问题讨论】:

    标签: ibm-cloud ibm-watson watson-assistant


    【解决方案1】:

    对于在旧 API 版本上使用 Watson Assistant 的用户:

    最好使用context.remove() in the output section。我通常有一个额外的子节点进行清理。

    {
      "output": {
        "text": {},
        "deleted": "<? context.remove('eventName') ?> <? context.remove('queryPredicate') ?>"
      }
    }
    

    因为deleted 不是上下文部分的一部分,所以它不会被结转。

    对于那些使用最新 API 版本的 Watson Assistant:

    将变量设置为空。这是"Deleting a context variable"上的文档。

    {
      "context": {
        "myvariable": null
      }
    }
    

    给变量赋值时,也可以在对话框表单中设置变量为null。

    【讨论】:

    • 如果我们添加子节点并在那里清空上下文变量,它会在响应触发之前被删除,从而导致变量在响应中丢失。你知道解决这个问题的方法吗?
    • 您能否将此作为新问题提出并添加详细信息?
    • @Airtrag 我更新了我的答案以反映不同的 API 版本。该方法已随 API 版本更新。
    【解决方案2】:

    您也可以添加一个子节点,并在响应后添加跳转到子节点,条件设置为true,并将上下文变量设置为null。

    【讨论】:

      【解决方案3】:

      我相信以下内容可以满足您的要求。

      {
        "output": {
          "text": {
            "values": [
              "Ok got it: $Var1, $Var2, $Var3. <? $Var1 = NULL ?> <? $Var2 = NULL ?> <? $Var3 = NULL ?>"
            ],
            "selection_policy": "sequential"
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多