IBM Chatbot Assistant - Массив с одинаковыми значениями - PullRequest
0 голосов
/ 01 октября 2018

У меня есть этот кусок кода в JSON-редакторе Watson:

"context": {
"array": "<? entities['spare_part'].![literal] ?>",
"array_size": "<?$array.size() ?>"

Когда пользователь вводит, например, " Здравствуйте, мне нужен клапан и номер деталиклапана равен 1234", размер массива в итоге равен 2 , поскольку пользователь дважды упоминает слово" valve"в своем входе.Некоторые узлы выполняются в зависимости от размера массива.Например, если размер массива равен 1, некоторые узлы будут игнорироваться, поскольку они выполняются только в том случае, если размер массива равен 2.

Я хочу, чтобы массив сохранял только входные данные с различными значениями,в основном я не хочу, чтобы массив сохранял значения одного типа, в моем случае 2 клапана.Если это возможно, пожалуйста, покажи мне путь.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Если это слово, которое вы ищете, вы можете использовать контекстные объекты для обучения этому.

В качестве примера я создал следующее намерение (вместе с общими намерениями из каталога).

Для каждого примера я выделил слово «клапан», которое мне интересно, и добавил к сущности.

enter image description here

Теперь, когда я проверяю это, я получаю следующее.

enter image description here

Все это было сделано за пару минут.Для уровня производства вы можете добавить больше примеров или подумать, как вы хотите аннотировать.

0 голосов
/ 02 октября 2018

Все, что можно сделать, но наилучший подход зависит от общей архитектуры системы.Помните, что Watson Assistant является службой общения, а не платформой обработки данных ...

Вы можете обрабатывать JSON в любом Watson Assistant напрямую, используя встроенные методы и SpEL, для начала ознакомьтесь со следующими ссылками:
- https://console.bluemix.net/docs/services/conversation/expression-language.html#expressions-for-accessing-objects
- http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html
- https://console.bluemix.net/docs/services/conversation/dialog-methods.html#expression-language-methods

Это потребует некоторого кодирования внутри узлов диалога.Это может быть хорошо.Я бы порекомендовал либо обработать в вашем приложении, которое запускает диалоговое окно (вам все равно нужно это приложение), либо кодировать небольшие действия сервера для преобразования данных.

...