【问题标题】:IBM Watson Slots won't accept 0IBM Watson Slots 不接受 0
【发布时间】:2017-12-31 08:11:32
【问题描述】:

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

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

任何人都知道如何获得所需的@sys-number 类型的 Slot,它接受 0 作为值?

【问题讨论】:

  • 在无槽测试时,服务是否将0 识别为@sys-number?就我而言,确实如此。
  • 是的,它确实以@sys-number 的形式接收0,但似乎不接受它来满足空缺。
  • 我认为这个问题已经得到解答。请查看stackoverflow.com/questions/43472182/…
  • 这是不同的,因为它指的是前导零,也与插槽功能无关。我在发布之前进行了搜索:)
  • 这似乎不同,因为链接的答案是针对前面的零。这里是关于插槽相关的流程。零似乎被检测为数字,但槽流没有相应的反应。

标签: ibm-watson watson-conversation


【解决方案1】:

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

进一步详细说明上面 Michal 的回答:

  1. 点击“编辑槽”选项(齿轮图标)
  2. 将槽条件的“检查”属性设置为entities['sys-number']

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


结果:

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

    • 感谢 Michal,确认在该插槽的 JSON 编辑器中使用 entities['sys-number'] 的插槽条件和设置为 @sys-number 的上下文变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2018-10-12
    • 2015-09-01
    • 2021-03-05
    • 2017-10-05
    • 2021-06-05
    相关资源
    最近更新 更多