从Watson Conversation API获取org.springframework.expression.spel.SpelParseException错误

时间:2016-08-01 15:57:20

标签: ibm-cloud ibm-watson watson-conversation

我正在尝试来自Watson的会话API服务(使用pypi上提供的Python API客户端:watson-developer-cloud

当我提出请求时,我收到以下错误:

"output": {
    "text": [],
    "error": "Error when updating output with output of dialog node id:node_3_1470064336636. Fix the dialog node. Node output was:{\"text\":\"El monto que te puedo adelantar lo define el sistema seg\u00fan el an\u00e1lisis que realiza de tu figura crediticia. El primer adelanto ser\u00e1 de hasta $2000 y mientras vayas cumpliendo en tiempo y forma, se ir\u00e1 aumentando el monto que el sistema te ofrece, siendo $4000 el m\u00e1ximo. Si quer\u00e9s saber el monto exacto que puedo otorgarte, registrate o acced\u00e9 a tu cuenta y hac\u00e9 click en la opci\u00f3n \\\"Ped\u00ed un Adelanto\\\".\"}\n**org.springframework.expression.spel.SpelParseException**: EL1049E:(pos 8): Unexpected data after '.': '2000'\n"

回复(西班牙语)如下:

{
  "output": {
    "text": "El monto que te puedo adelantar lo define el sistema según el análisis que realiza de tu figura crediticia. El primer adelanto será de hasta $2000 y mientras vayas cumpliendo en tiempo y forma, se irá aumentando el monto que el sistema te ofrece, siendo $4000 el máximo. Si querés saber el monto exacto que puedo otorgarte, registrate o accedé a tu cuenta y hacé click en la opción \"Pedí un Adelanto\"."
  }
}

我也在Watson Conversation Workspace(右上角的对话框图标)上测试机器人时遇到同样的错误。任何想法如何解决这一问题?我应该逃避我的一些投入吗?

2 个答案:

答案 0 :(得分:2)

正如Emiliano在评论中提到的那样,美元符号是一个引入上下文变量的字符。因此,Conversation试图查找变量$2000的值。你需要逃避这些引用。因此,您需要指定\\$2000。你需要双反斜杠,因为字符串实际上在封面下的引号内。

答案 1 :(得分:2)

使用Simple Watson Response编辑器时,我可以使用单个AccessToken字符来转义Dialog reference中描述的大多数特殊字符。例如,AccessToken\\$2000

如果您使用的是高级Watson响应编辑器,则需要使用双\#ftw代替。因此,对于上面的相同示例,\@8pm\\\\$2000

不幸的是,我无法成功地逃避用于更复杂表达的\\#ftw\\@8pm,但希望这些不太可能导致问题?