首页 > 解决方案 > IBM Watson Assistant:聊天机器人实体混淆正则表达式 2

问题描述

我创建了一个名为@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”。

问题是当用户的输入属于num2num3的值时,机器人只存储提供的前 6 位数字。例如当输入为123.123.123.123123.123.123时,机器人只存储前六位数字(中间用一个点隔开)并提示“哦,物料编号是 123.123”。

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

标签: ibm-cloudchatbotibm-watsonwatson-conversation

解决方案


与此答案中建议的解决方案类似,您可以嵌套三元运算符

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

推荐阅读