经典 Watson Assistant 体验的 Documentation 已移动。 有关最新版本,请参阅 高级分析和日志相关任务。
高级分析和日志相关任务
了解可用于访问和分析日志数据的 API 和其他工具。
使用 Jupyter Notebook 进行分析
IBM 创建了 Jupyter 笔记本,可用于分析行为或助手。 Jupyter 笔记本是基于 Web 的交互式计算环境。 您可以运行少量代码来处理数据,并可以立即查看计算的结果。
只能使用具有英语技能的笔记本。
分析笔记本
有一组分析笔记本可以与标准 Python 工具配合使用,还有一组分析笔记本在与 IBM Watson® Studio 配合使用时效果最佳。
Watson Studio 产品提供了一个环境,在其中可以选取和选择所需工具来对数据进行分析和可视化,清理和塑造数据,摄入流数据,或者创建、训练和部署机器学习模型。 请参阅 产品文档 以获取更多详细信息。
Watson Assistant 持续改进最佳实践指南 描述了如何从这些 Notebook 中获取最大的内容。
将笔记本用于 Watson Studio
提供了以下笔记本:
如果选择使用专为与 Watson Studio 配合使用而设计的笔记本,那么步骤大致如下:
-
创建 Watson Studio 帐户,创建项目,并向其添加 Cloud Object Storage 帐户。
-
从 Watson Studio 社区中,选择笔记本。
在开发过程的早期,使用 Dialog skill analysis for Watson Assistant 笔记本来帮助您入门。 它提供了以下类型的洞察:
- 检查与训练数据中每个意向相关的术语来查找异常,通过异常,可能识别出可进一步调查的问题。
- 使用您提供的盲测试集来计算“准确性”,“精度”,“重新调用”和 " F1" 等统计指标的性能。
- 提供的高级功能可用于了解常见问题的原因,例如某些语句经常被错误识别的原因。
要了解有关此笔记本如何帮助您改进对话的更多信息,请阅读此 Medium.com 博客帖子。
-
部署某个版本的助手并收集一些交谈日志数据后,运行 Measure Watson Assistant Performance 笔记本。
-
按照笔记本随附的逐步指示信息来分析日志中的对话交流子集。
首先运行以下笔记本:
- 度量:收集专注于覆盖率(助手有足够信心响应用户的频率)和有效性(助手进行响应时,响应是否能满足用户需求)的度量值。
这些洞察可以通过多种方式进行可视化,这样更容易理解助手中的哪些地方有待改进。
-
从效率低下的交谈中导出日志的样本集,然后对其进行分析和注释。
例如,指示响应是否正确。 如果正确,标记它是否有用。 如果响应不正确,请确定根本原因,例如检测到错误的意向或实体,或者触发了错误的对话节点。 确定根本原因后,指示正确的选择是什么。
-
将注释的电子表格发送到 Analyze Watson Assistant Effectiveness 笔记本。
- 有效性:对日志执行更深入的分析,以帮助您了解可以执行哪些步骤来改进助手。
-
使用 Dialog Flow Analysis for Watson Assistant 笔记本来检查对话。 该笔记本可以帮助您查明客户最常在哪些对话节点放弃交谈。
有关此笔记本如何帮助您分析和评估放弃的更多信息,请阅读此 Medium.com 博客帖子。
此过程可帮助您了解可以执行哪些步骤来改进助手。
将笔记本用于标准 Python 工具
如果选择使用标准 Python 工具来运行笔记本,那么可以从 GitHub 获取笔记本。
同样,Watson Assistant 持续改进最佳实践指南 概述了在改进过程的每个阶段要使用的 Notebook。
使用日志 API
可以使用 /logs
API 来列出用户与助手之间的交谈记录中的事件。 对于使用 v2 /message
API 创建的对话,请使用实例级别端点来 列示所有工作空间中的日志事件,然后按助手标识进行过滤。 有关过滤日志的更多信息,请参阅
过滤器查询参考。
API 会记录仅在对话技能定义的对话中交换的消息。
日志存储天数因服务套餐类型而有所不同。 有关详细信息,请参阅日志限制。
对于可运行以导出日志并将其转换为 CSV 格式的 Python 脚本,请从 Watson Assistant GitHub 存储库下载 export_logs_py.py
文件。
了解与日志相关的术语
首先,查看与 Watson Assistant 日志关联的术语的定义:
- 助手: 实现 Watson Assistant 内容的应用程序 (有时称为“聊天机器人”)。
- 助手标识: 助手的唯一标识。
- 对话: 一组消息,由单个用户发送给助手的消息以及助手发送回的消息组成。
- 对话标识: 添加到各个消息调用以将相关消息交换链接到一起的唯一标识。 使用 V1 版本 Watson Assistant API 的应用程序开发者通过将标识包含在 context 对象的 metadata 中,将此值添加到交谈中的消息调用。
- 客户标识: 可用于标记客户数据的唯一标识,以便在客户请求除去其数据时随后可以将其删除。
- 部署标识: 应用程序开发者使用 V1 版本的 Watson Assistant API 与每条用户消息一起传递的唯一标签,用于帮助标识生成消息的部署环境。
- 实例: Watson Assistant的部署,可使用唯一凭证进行访问。 一个 {{site.data.keassistant_classic_shortnshort}} 实例可能包含多个助手。
- 消息: 消息是用户向助手发送的单个发声。
- 技能标识: 技能的唯一标识。
- 用户: 用户是与助手交互的任何人; 通常是您的客户。
- 用户标识: 用于跟踪特定用户的服务使用级别的唯一标签。
- 工作空间标识: 工作空间的唯一标识。 虽然在 11 月 9 日之前创建的任何工作空间都会在产品用户界面中显示为技能,但技能和工作空间并不是一回事。 技能实际上是 V1 工作空间的包装器。
重要信息:用户标识属性不等同于客户标识属性,但两者都可以随消息一起传递。 用户标识字段用于跟踪使用量级别以进行计费,而客户标识字段用于支持标注和后续删除与最终用户关联的消息。 客户标识在所有 Watson 服务中以一致的方式使用,并在 X-Watson-Metadata
头中进行指定。 用户标识由 Watson Assistant 服务专用,并在每个 /message API 调用的 context 对象中传递。
将消息数据与用户关联以进行删除
有时您可能希望从 Watson Assistant 实例中完全除去用户的数据集。 使用删除功能后,“概述”度量值不会再反映出这些已删除的消息;例如,“交谈总数”将减少。
准备工作
要删除一个或多个个人的消息,首先需要将消息与每个人的唯一客户标识相关联。 要为使用 ** API 发送的任何消息指定**客户标识/message
,请在头中包含 X-Watson-Metadata: customer_id
属性。 可以使用 ** 以分号分隔的 ** 对传递多个field=value
客户标识customer_id
条目,如以下示例中所示:
curl -X POST -u "apikey:3Df... ...Y7Pc9" \
--header \
"Content-Type: application/json" \
"X-Watson-Metadata: customer_id={first-customer-ID};customer_id={second-customer-ID}" \
--data "{\"input\":{\"text\":\"hello\"}}" \
"{url}/v2/assistants/{assistant_id}/sessions/{session_id}/message?version=2019-02-28"
其中,{url} 是实例的相应 URL。 有关更多详细信息,请参阅 服务端点 }。
customer_id
字符串不能包含分号 (;
) 或等号 (=
) 字符。 确保每个Customer ID
参数在您的客户中唯一是您的责任。
要使用 customer_id
值来删除消息,请参阅信息安全主题。