IBM Watson Assistant: путаница в сущности Chatbot по регулярному выражению 2 - PullRequest
0 голосов
/ 20 сентября 2018

Я создал объект с именем @ material_number , и у этого объекта есть 3 значения, которые представлены ниже с соответствующими шаблонами:

num1 с шаблоном (\d{3}\.){1}\d{3}

num2 с шаблоном (\d{3}\.){2}\d{3}

num3 с шаблоном (\d{3}\.){3}\d{3}

В диалоговом узле,если бот распознает @ material_number , он сохраняет предоставленные пользователем данные в контекстной переменной $ materialnumber , а затем отвечает "О, номер материала равен $ materialnumber".

Дело в том, что когда ввод пользователя принадлежит значению num2 или num3 , бот сохраняет только первые 6 предоставленных цифр.Например, когда вводом является 123.123.123.123 или 123.123.123 , бот сохраняет только первые шесть цифр (отделенных точкой от середины) и выдает ответ «О, материалномер 123.123 ".

Используя редактор JSON, можно преодолеть эту путаницу.

1 Ответ

0 голосов
/ 20 сентября 2018

Аналогично решению, предложенному в этом ответе , вы можете вкладывать троичные операторы :

{
  "context": {
    "number1": "<? @number1:mat3 ? entities.number1[2].literal : @number1:mat2 ? entities.number1[1].literal : entities.number1[0].literal ?>"
  }
}
...