IBM Watson Assistant:正则表达式2的Chatbot实体混淆

时间:2018-09-20 11:13:07

标签: ibm-cloud chatbot ibm-watson watson-conversation

我创建了一个名为 @material_number 的实体,该实体具有3个值,下面分别提供了各自的模式:

num1 ,其模式为(\d{3}\.){1}\d{3}

num2 ,其模式为(\d{3}\.){2}\d{3}

num3 ,其模式为(\d{3}\.){3}\d{3}

在对话节点中,如果漫游器识别出 @material_number ,则它将提供的用户输入存储在上下文变量 $ materialnumber 下,然后响应“哦,物料号是$ materialnumber”。

问题是,当用户的输入属于 num2 或 num3 值时,漫游器仅存储提供的前6位数字。例如,当输入为 123.123.123.123 123.123.123 时,漫游器仅存储前六位数字(中间用点分隔),并提示返回“哦,物料编号为123.123“。

通过使用JSON编辑器,应该可以克服这种困惑。

1 个答案:

答案 0 :(得分:2)

类似于this answer中建议的解决方案,您可以嵌套ternary operators

{
  "context": {
    "number1": "<? @number1:mat3 ? entities.number1[2].literal : @number1:mat2 ? entities.number1[1].literal : entities.number1[0].literal ?>"
  }
}