在分析 > 用户对话中,我想过滤掉我的 Watson Assistant 在其对话中无法回答的消息,即,当它返回 any_else 回复时。
但由于anything_else既不是意图也不是实体,我无法在UI 中通过它过滤消息。因此,是否可以通过助手的回复过滤消息,就像您可以使用用户语句一样?这样,每次助手回答“我不明白”时,我都可以过滤掉。
在分析 > 用户对话中,我想过滤掉我的 Watson Assistant 在其对话中无法回答的消息,即,当它返回 any_else 回复时。
但由于anything_else既不是意图也不是实体,我无法在UI 中通过它过滤消息。因此,是否可以通过助手的回复过滤消息,就像您可以使用用户语句一样?这样,每次助手回答“我不明白”时,我都可以过滤掉。
anything_else
表示未找到意图,或置信度 < 0.2。
过滤寻找意图 = [],或第一个意图的置信度低于 20%
IBM Watson Assistant 在其 UI 的 Analytics 部分中提供日志,恕我直言,更强大的是,通过带有过滤器表达式的 REST API。使用该 API,您可以下载所有日志并“离线”过滤或应用一些表达式。我建议阅读有关如何查询包含用户响应的“其他”字段的文档。
我使用 V1 和 V2 API为 Watson Assistant 编写了 Python 工具。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")) '