IBM Watson Slots 不接受 0

IBM Watson Slots won't accept 0

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

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

有人知道如何拥有一个接受 0 作为值的 @sys-number 类型的必需插槽吗?

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

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

这里是link到system entity section in Watson Conversation Service documentation

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

进一步阐述 Michal 上面的回答:

  1. 单击 "Edit Slot" 选项(齿轮图标)
  2. 将插槽条件的 "Check For" 属性设置为 entities['sys-number']

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


结果: