IBM Watson Assistant - GameParseException

问题描述 投票:0回答:1

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

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

这是因为IBM将值'505466163255'解析为int。我已将其配置为字符串。任何人都可以建议我们如何解决这个问题。

ibm-watson watson-conversation
1个回答
1
投票

SPEL引擎执行所谓的Autoboxing。当它看到变量时,它会尝试强制转换它。所以错误是它看到一个实体编号并尝试转换为int。

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

"" + 505466163255

应该强制它作为一个字符串(尚未确认)。

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

© www.soinside.com 2019 - 2024. All rights reserved.