IBM Watson Assistant: Как я могу фильтровать сообщения для «чего-либо еще»? - PullRequest
1 голос
/ 18 апреля 2019

В Analytics> Пользовательские беседы я хотел бы отфильтровать сообщения, на которые мой Watson Assistant не смог ответить в своих беседах, т. Е. Когда он возвращает ответ any_else.

Но так как everything_else не является ни намерением, ни сущностью, я не могу фильтровать сообщения по нему в пользовательском интерфейсе. Можно ли поэтому фильтровать сообщения по ответу ассистента, как вы можете с помощью пользовательских утверждений? Таким образом, я могу отфильтровывать каждый раз, когда помощник отвечает: «Я не понимаю».

Ответы [ 2 ]

1 голос
/ 20 апреля 2019

anything_else означает, что либо намерение не было найдено, либо достоверность была <0,2. </p>

Фильтр ищет намерения = [], либо достоверность первого намерения ниже 20%

1 голос
/ 18 апреля 2019

IBM Watson Assistant предлагает журнал в разделе Analytics этого пользовательского интерфейса и, IMHO, более мощный, через REST API с выражениями фильтров . С этим API вы можете либо загрузить все журналы и отфильтровать их в автономном режиме, либо применить некоторые выражения. Я рекомендую прочитать документацию о , как запрашивать «другие» поля , включая ответы пользователей.

Я написал инструменты Python для Watson Assistant с использованием API V1 и V2. Инструмент V1 может загружать или запрашивать журналы. Можно загрузить все доступные журналы, а затем использовать jq для их фильтрации.

python wctool.py -logs -config config.json.event -id 28ac4bcb-2aae-41aa-87ac-2e6074e1356a > logs201904.out

Это дает вам информацию о том, какие узлы были посещены:

cat logs201904.out | jq -r '.logs | .[]
       | .response.output.nodes_visited   '

Фильтр для записей журнала, которые посетили "Все остальное":

cat logs201904.out | jq -r '.logs | .[] | .response | select( 
    .output.nodes_visited[] | contains("Anything else")) '
...