IBM Watson Assistant-SpelParseException

时间:2019-03-06 05:53:59

标签: ibm-watson watson-conversation

我已经生成了一个IBM watson assistant(chatbot)JSON并将其提供给系统。现在,当我输入特定的关键字时,IBM chatbot应该使用配置的答案进行答复。但是在聊天机器人中,我收到了

这样的错误
  

SpelParseException评估对话框节点ID时   [node_835_210152933]。无法使用条件[@Product:505466163255]   解析。检查表达式的语法。 SpEL语法错误:   表达式[@Product:505466163255]转换为   [(entities ['Product'] ?. contains(505466163255))]]在位置31:   EL1035E:值'505466163255'无法解析为int(并且   日志中还有1065个错误)

这是因为IBM将值“ 505466163255”解析为int。我已将其配置为字符串。谁能建议我们如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

SPEL引擎执行所谓的自动装箱。当它看到一个变量时,它将尝试将其强制转换。因此,错误是它看到一个实体号并尝试将其转换为整数。

即使您配置为字符串,它仍然会执行此操作,除非您强制将其更改为其他内容。例如:

${property1}

应将其强制为字符串(尚未确认)。

对于您正在做的事情,可能是有更好的方法。例如,如果您的实体只是一个产品代码列表,则最好确定模式是否有效(模式实体),然后移交给您的应用程序来验证数字本身。