Получение ошибки org.springframework.expression.spel.SpelParseException из Watson Conversation API

Я пробую службу API разговоров от Watson (используя клиент API Python, доступный на pypi: watson-developer-cloud.

Когда я делаю запрос, я получаю следующую ошибку:

"output": {
    "text": [],
    "error": "Error when updating output with output of dialog node id:node
{
  "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\"."
  }
}
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 (значок диалогового окна в правом верхнем углу). Любые идеи, как это исправить? Должен ли я избежать некоторой части моего ввода?


person Emiliano Dalla Verde Marcozzi    schedule 01.08.2016    source источник
comment
Кажется, проблема в «$ chars». Я изменил текст на «4000 долларов», и он отлично работает! Не уверен, но, возможно (просто догадываюсь), синтаксис $char должен ссылаться на переменные, и, поскольку $2000 (2000) не является переменной, это приводит к этой ошибке.   -  person Emiliano Dalla Verde Marcozzi    schedule 01.08.2016


Ответы (2)


Как упоминалось в комментарии Эмилиано, знак доллара — это символ, который вводит ссылку на переменную контекста. Итак, Conversation пытается найти значение, например, переменной $2000. Вам нужно избегать этих ссылок. Итак, вам нужно указать \\$2000. Вам нужна двойная обратная косая черта, поскольку строка фактически находится внутри кавычек под обложками.

person Charles Rankin    schedule 01.08.2016
comment
Спасибо @CharlesRankin - person Emiliano Dalla Verde Marcozzi; 02.08.2016

Я мог избежать большинства специальных символов, описанных в Ссылка на диалоговое окно с использованием одного символа \ при использовании редактора Simple Watson Response. Например, \$2000, \#ftw и \@8pm

Если вы используете редактор расширенных ответов Watson Response, вместо этого вам нужно будет использовать двойной \\. Таким образом, для тех же примеров выше, \\$2000, \\#ftw и \\@8pm

К сожалению, мне не удалось избежать <? и ?>, используемых для более сложных выражений, хотя, надеюсь, они с меньшей вероятностью вызовут проблемы?

person James Taylor    schedule 02.08.2016