Как получить значение намерения в условиях пользовательского интерфейса IBM Watson Assistance?

В разделе Если бот узнает, я могу сказать, intents[1].confidence > 0.4 но я не могу знать, что на самом деле это намерение, так есть ли способ получить это?

Я могу получить все намерения типа и уверенности в разделе Ответ с <? intents ?> объект, но это не помогает, если бот распознает раздел.

1 ответ

Решение

Вы можете получить намерение, просто используя intents[1].intent, Просто знайте, что вы запрашиваете второй вариант, а не первый. Первый будет intents[0],

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

  1. Загрузите переменную контекста с именем намерения и проверьте это. Это увеличивает накладные расходы в вашем хранилище объектов, но позволяет вам быть более динамичным.

  2. Если это второй вариант, который вам нужен, и вам нет дела до первого варианта: на главном исполнительном узле установите intents[0].intent = intents[1].intent и то же самое для confidence, Это позволит нормальному поиску вступить во владение.

Подробнее об объектах в Watson Assistant можно узнать здесь:

https://console.bluemix.net/docs/services/conversation/expression-language.html

Я получаю уверенность с помощью такого фильтра:

Пример:

    <? intents.filter("x", "x.intent == 'name_of_intent'").![confidence].get(0) ?>

Пояснение:

  1. Получим массив намерений: intents.filter("x", "x.intent == 'name_of_intent'"), где "x" - временная переменная, а name_of_intent это намерение, которое вы хотите достичь.

  2. Затем вы получаете еще один массив. Затем, чтобы получить значение уверенности, вам нужно![confidence].get(0). И это все.

Метод объясняет:JSONArray.filter(temp, "temp.property operator comparison_value")

Итак.. Как в документах:https://cloud.ibm.com/docs/assistant?topic=assistant-dialog-methods

Другие вопросы по тегам