我已经生成了一个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。我已将其配置为字符串。谁能建议我们如何解决这个问题。
答案 0 :(得分:1)
SPEL引擎执行所谓的自动装箱。当它看到一个变量时,它将尝试将其强制转换。因此,错误是它看到一个实体号并尝试将其转换为整数。
即使您配置为字符串,它仍然会执行此操作,除非您强制将其更改为其他内容。例如:
${property1}
应将其强制为字符串(尚未确认)。
对于您正在做的事情,可能是有更好的方法。例如,如果您的实体只是一个产品代码列表,则最好确定模式是否有效(模式实体),然后移交给您的应用程序来验证数字本身。