IBM Watson Slots不接受0

时间:2017-07-25 12:00:19

标签: ibm-watson watson-conversation

我正在尝试IBM Watson Conversations中的插槽功能,并遇到了一个我不确定如何解决的问题。

我有一个用例从用户收集大量信息,因此使用Slots功能是有意义的。不幸的是,当我添加一个带有@sys-number的Slot时,系统不会接受0作为有效输入。事实上,此插槽是必需的,但0是有效值。

任何人都知道如何获得一个必需的@ sys-number类型的插槽,它接受0作为值?

2 个答案:

答案 0 :(得分:3)

条件@sys-number实际上是条件entities['sys-number'].value的简写语法。发送0时,条件将评估为false,因为0被Watson Conversation Service中的表达式语言评估程序视为false。现在,在这种情况下,这不是一个理想的行为。为了防止这种情况发生,可以在条件中使用entities['sys-number'],每次true实体在输入中被识别时都会返回@sys-number

在插槽中使用时,可能需要编辑存储在上下文变量中的内容,因为更改条件也会更改存储在变量中的内容。这可以通过JSON编辑器完成 - 单击插槽规范旁边的配置槽齿轮,然后在打开的窗口中单击三个点,打开JSON编辑器,然后更改实际存储在插槽更新的上下文变量中的内容。 / p>

以下是system entity section in Watson Conversation Service documentation的链接。

答案 1 :(得分:1)

我在识别插槽中的零值方面遇到了类似的问题,而system entity documentation并没有很好地解释它(至少对我而言)。

进一步详述Michal的答案:

  1. 点击"编辑插槽"选项(齿轮图标)
  2. 设置"检查"将广告位条件属性设为entities['sys-number']
  3. edit slot modal

    1. 单击编辑插槽模式菜单选项(角落中的三个气泡)
    2. 打开JSON编辑器
    3. 将上下文变量值更改为"<?entities['sys-number'].value ?>"
    4. edit slot json editor

      结果:

      result