Ошибка в прыжках в IBM Watson
Мы внедряем технологию Watson для помощника, чтобы помочь определенным пользователям.
Диалоги несколько сложны, и иногда необходимо делать скачкообразные ответы, которые связаны с определенными вопросами, недостатком этого является то, что может случиться так, что пользователь может задать вопрос еще раз, если он не был ясен, и именно здесь проблема возникает.
Когда я хочу войти в узел, на котором он был впоследствии введен, и указанный узел совершил прыжок, я отмечаю следующую ошибку
"Не соответствует ни условию целевого узла, ни условиям его последующих братьев и сестер".
Может кто-нибудь сказать мне с ясностью, почему это происходит?
2 ответа
После стольких испытаний я наконец-то нашел ошибку. Это было потому, что я оставлял некоторые переменные контекста со значениями, и когда я вернулся к узлам, я больше не проверял их снова. Что я сделал, так это то, что в конце ответа я установил переменные в null
так что когда я снова обрабатывал их в узлах, им пришлось снова их проверять.
Приветствую и большое спасибо.
"Не соответствует ни условию целевого узла, ни условиям его последующих братьев и сестер".
Эта ошибка возникает, если не найдено ни одного конечного узла. Если ваш последний узел находился в ветви, где родительский узел является узлом, то он обратится к корню, чтобы найти ответ. Вы получаете бесконечный цикл, который останавливается после 50 итераций.
Как и в этом примере, если пользователь вводит слово "error", он переходит к ветви, не находит соответствия, возвращается к корню, чтобы найти место для остановки, и выполняет цикл:
Если ветвь находится в папке, то она продолжает мимо папки, чтобы найти совпадение.
Чтобы решить эту проблему, вам нужно добавить последний узел в ветке, который будет захватывать anything_else
вот так.
Другой вариант - использовать узел папки. Это позволит ему провалиться обратно к дереву, куда он вошел, и ваш последний узел должен захватить его.