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 上面的回答:
- 单击 "Edit Slot" 选项(齿轮图标)
- 将插槽条件的 "Check For" 属性设置为
entities['sys-number']
- 单击编辑槽模式菜单选项(角落里的三个气泡)
- 打开JSON编辑器
- 将上下文变量值更改为
"<?entities['sys-number'].value ?>"
结果:
我正在试用 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 上面的回答:
- 单击 "Edit Slot" 选项(齿轮图标)
- 将插槽条件的 "Check For" 属性设置为
entities['sys-number']
- 单击编辑槽模式菜单选项(角落里的三个气泡)
- 打开JSON编辑器
- 将上下文变量值更改为
"<?entities['sys-number'].value ?>"
结果: