【问题标题】:IBM Watson Assistant - SpelParseExceptionIBM Watson Assistant - SpelParseException
【发布时间】:2019-07-27 17:25:23
【问题描述】:

我生成了一个 IBM watson 助手(聊天机器人)JSON 并将其提供给系统。现在,当我输入特定关键字时,IBM 聊天机器人应该回复配置的答案。但是在聊天机器人中,我遇到了类似

的错误

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

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

【问题讨论】:

  • 有什么代码可以分享给你的聊天机器人吗?
  • 您是如何生成 JSON 的?节点 JSON 长什么样子?

标签: ibm-watson watson-conversation


【解决方案1】:

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

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

"" + 505466163255

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 2021-03-05
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多