我正在尝试IBM Watson Conversations中的插槽功能,并遇到了一个我不确定如何解决的问题。
我有一个用例从用户收集大量信息,因此使用Slots功能是有意义的。不幸的是,当我添加一个带有@sys-number的Slot时,系统不会接受0作为有效输入。事实上,此插槽是必需的,但0是有效值。
任何人都知道如何获得一个必需的@ sys-number类型的插槽,它接受0作为值?
答案 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的答案: