智能回复会跟踪人工客服与最终用户之间的对话,并会将建议的回复呈现给人工客服。建议的回复数由使用您自己的对话数据训练的自定义模型计算得出。
本文档将引导您完成使用 API 实现智能回复并通过此功能获取建议的过程。如果您愿意,可以选择在设计过程中使用 Agent Assist 控制台上传数据、训练模型并测试智能回复结果。如需在运行时查看智能回复建议,您必须直接调用 API。如需详细了解如何使用 Agent Assist 控制台训练模型并测试其性能,请参阅智能回复教程。
Agent Assist 还提供了公开提供的对话数据以及预训练模型和许可名单。您可以使用这些资源了解智能回复的运作方式,或在上传自己的数据之前测试集成。如需了解详情,请参阅对话数据格式文档。
准备工作
在开始本指南之前,请先完成以下操作:
个人身份信息和儿童数据
在您向此 API 发送数据时,该 API 会尝试隐去所有个人身份信息 (PII)。如果您需要确保模型不包含 PII,则应在向 API 发送数据之前先进行清理。请将隐去的内容替换为占位符(例如“REDACTED_NUMBER”或“REDACTED_NAME”),而不是直接将其移除。
此外,如果数据包含从儿童收集的信息,则应在向 API 发送儿童的数据之前先进行移除。
训练和部署模型
Agent Assist 智能回复模型是使用对话数据集训练的。对话数据集包含您自己上传的转写数据。本部分将引导您完成创建对话数据集、将对话数据上传到该数据集以及训练和部署模型的流程。如果您不希望直接调用 API,还可以使用 Agent Assist 控制台来执行这些操作。
创建对话数据集
在开始上传对话转写内容之前,您必须先创建一个对话数据集来放入转写内容。对 ConversationDataset
资源调用 create
方法以创建对话数据集。
响应包含对话数据集 ID。
将对话转写导入对话数据集
将聊天对话数据上传到对话数据集,以便 Agent Assist 进行处理。确保每个对话的转写内容均采用 JSON
格式,并存储在 Cloud Storage 存储桶中。一个对话数据集必须至少包含 30,000 个对话,否则模型训练将失败。一般来说,对话数量越多,模型质量就越好。我们建议您上传至少 3 个月的对话,以充分涵盖尽可能多的使用场景。一个对话数据集中的消息数量上限为 100 万。
对 ConversationDataset
资源调用 importConversationData
方法以导入对话。
必填字段:
- 您之前创建的对话数据集 ID。
inputConfig
路径指向 Cloud Storage 存储桶中的对话转写数据。
该响应是一个长时间运行的操作,您可以轮询该操作以检查是否完成。
创建对话模型
对 ConversationModel
资源调用 create
方法以创建对话模型。此操作还会创建模型的许可名单。
必填字段:
- 在
datasets
中,使用您之前创建的对话数据集 ID 提供单个数据集。 - 将
smartReplyModelMetadata
设置为空对象,或填充该字段以替换默认值。
该响应是一个长时间运行的操作,您可以轮询该操作以检查是否完成。完成后,模型 ID 和许可名单 ID 将包含在操作的元数据中。
- 模型 ID:
name
- 许可名单 ID:
smart_reply_model_metadata.associated_allowlist_info.document
部署对话模型
对 ConversationModel
资源调用 deploy
方法以部署对话模型。
必填字段:
- 使用
conversationModels
:输入您之前创建的对话模型 ID。
管理许可名单
每个模型都有一个与之关联的许可名单,该名单会在您创建对话模型时自动创建。许可名单包含从对话数据集生成的所有响应,这些响应可以在运行时显示给人工客服。本部分介绍了许可名单的创建和管理。如果您不希望直接调用 API,还可以使用 Agent Assist 控制台来执行这些操作。
将许可名单内容导出到 CSV
文件
创建模型时,系统会自动创建一个与新模型关联的许可名单。许可名单是一种具有唯一 ID 的文档资源。创建模型时,系统会在 smart_reply_model_metadata.associated_allowlist_info.document
中返回该 ID。如需查看许可名单中的邮件并对其进行更改,您必须将其导出到 Cloud Storage 存储桶。
对 Document
资源调用 export
方法,将文档导出到 Cloud Storage 存储桶中的 CSV
文件。smart_messaging_partial_update
字段是可选字段,但会影响您日后更新此许可名单的方式。如果设置为 true
,导出的 CSV
文件将包含一个包含每条消息的唯一 ID 的列。您可以使用消息 ID 仅更新指定消息,而不是整个文档。如果 smart_messaging_partial_update
设为 false
或未设置,文件中不会显示额外的列,并且对许可名单的任何更新都需要更新整个文档。
必填字段:
gcsDestination
路径指向您的 Cloud Storage 存储桶。
该响应是一个长时间运行的操作,您可以轮询该操作以检查是否完成。之后,系统会在您在请求中提供的 CSV
文件中填充响应候选项。
查看许可名单
生成的许可名单包含智能回复功能根据您的对话数据自动生成的回复。现在,您可以根据需要查看和更新这些回复。从 Cloud Storage 存储桶下载 CSV
文件,根据需要对其进行修改,然后将文件重新上传到 Cloud Storage 存储桶。只有许可名单中的回答才能显示给人工客服。
如果您修改了任何回答,我们建议您仅修改拼写和语法,不要更改消息的含义。修改后的文本与模型中含义的差距越大,相应消息就越不太可能显示出来。
您还可以根据需要创建新消息。与修改后的消息类似,创建的消息不太可能在运行时呈现。
更新许可名单
更新 CSV
文件后,您可以使用该文件更新 Document
资源。您可以选择更新整个许可名单,也可以仅更新指定邮件。如需仅更新指定的消息,您必须在导出许可名单时将 smart_messaging_partial_update
设置为 true
。如果您已完成此操作,请使用导出的 CSV
文件中自动生成的列来指明要更新的消息。
对 Document
资源调用 reload
方法以更新许可名单。如需仅更新指定的消息,请在 ReloadDocumentRequest
中将 smart_messaging_partial_update
设置为 true
。如需更新整个许可名单,请将 smart_messaging_partial_update
设为未设置或设为 false
。
必填字段:
gcsSource
是CSV
文件的 Cloud Storage 路径。- 对于
name
,请使用您创建对话模型时生成的许可名单资源名称。
示例请求:
{ "name":"projects/project-id/knowledgeBases/knowledge-base-id/documents/allowlist-id", "gcsSource" { "uri": "gs://revised_smart_reply_allowlist_path" } }
评估训练好的模型的性能
部署模型并为其创建许可名单后,您就可以测试模型的性能了。您还必须提供测试数据集。系统会将训练好的智能回复模型及其关联的许可名单生成的回答与测试数据集中的实际客服人员消息进行比较。测试数据集应由真实对话数据组成,但不得包含您用于训练模型的对话数据集中的任何数据。例如,假设您有 1 个月的对话流量数据,则可以使用 3 周的对话数据创建对话数据集,并使用剩余 1 周的数据创建测试数据集。测试数据集应至少包含 1, 000 次对话,但一般而言,测试数据集中包含的对话越多,评估指标的可靠性就越高。测试数据集格式与对话数据集格式相同。
如需创建新的模型评估,请对 ConversationModel
资源调用 CreateConversationModelEvaluation
方法。此方法会返回一项长时间运行的操作。您可以轮询操作以检查其状态,该状态将返回 INITIALIZING
、RUNNING
、SUCCEEDED
、CANCELLED
、FAILED
之一。
必填字段:
InputDataset
:用于测试模型性能的测试数据集。allowlist_document
:与要测试的智能回复模型关联的许可名单。
当长时间运行的操作完成后,系统会返回 ConversationModelEvaluation
资源。其中包含以下两个指标:
allowlist_coverage
:测试数据集中受许可名单涵盖的代理消息所占的百分比。recall
:测试数据集中包含在许可名单中且出现在智能回复模型显示的前 3 条建议中的客服消息所占的百分比。
配置对话配置文件
对话配置文件可配置一组参数,用于控制对话期间向客服人员提出的建议。以下步骤将使用 HumanAgentAssistantConfig
对象创建 ConversationProfile
。如果您不希望直接调用 API,还可以使用 Agent Assist 控制台来执行这些操作。
创建对话配置文件
如需创建对话配置文件,请对 ConversationProfile
资源调用 create
方法。提供您的知识库 ID、文档 ID、项目 ID 和模型 ID。
{ "displayName":"smart_reply_assist", "humanAgentAssistantConfig":{ "humanAgentSuggestionConfig":{ "featureConfigs":[ { "suggestionFeature": { "type":"SMART_REPLY" }, "queryConfig": { "documentQuerySource":{ "documents": ["projects/PROJECT_ID/knowledgeBases/KNOWLEDGE_BASE_ID/documents/DOCUMENT_ID"] }, "maxResults": 3 }, } }, "conversationModelConfig":{ "model": "projects/PROJECT_ID/conversationModels/MODEL_ID" } } ] } } }
我们建议您设置 SuggestionFeatureConfig.enable_inline_suggestion
值。
如果此值为 true,则对 AnalyzeContent
的后续调用将导致响应包含建议列表。
响应包含新对话配置文件 ID。
如需了解如何配置对话配置文件、在运行时处理对话、测试结果以及向 Agent Assist 发送反馈,请参阅生成式智能回复。