借助Agent Assist 摘要自定义模型功能,您可以利用专门使用客户专属数据训练的模型,在每次对话结束后向客服人员提供对话摘要。这与通过大型语言模型进行的自定义不同,详见包含自定义部分的摘要。摘要可帮助客服人员创建对话备注并了解最终用户的沟通记录。例如,有关对话的摘要输出可能如下所示:
您还可以导入自定义 Agent Assist 总结模型,以便与 CCAI Insights 对话搭配使用。
准备工作
使用 API 训练和部署摘要模型
创建对话数据集并导入转写内容
对 ConversationDataset
资源调用 create
方法以创建对话数据集。添加包含转写数据的 Cloud Storage 存储桶的路径,以将其导入到新对话数据集。
示例请求:
{ "displayName": "CONVERSATION_DATASET_NAME", "inputConfig": { "gcsSource": { "uris": ["gs://PATH_NAME/*"] } } }
响应包含对话数据集 ID。示例响应:
{ "done": true, "response": { "@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.ConversationDataset", "name": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID", "displayName": "CONVERSATION_DATASET_NAME", "createTime": "2022-06-16T23:13:22.627380457Z" } }
创建对话模型
对 ConversationModel
资源调用 create
方法,以创建摘要对话模型。每个项目每月最多可用于训练 120 个节点小时,并且可以同时运行一个训练作业。
必填字段:
datasets
:提供一个包含您用于训练模型的转写数据的数据集。summarizationModelMetadata
:设置为空对象,或填充该字段以替换默认值。
示例请求:
{ "displayName": "CONVERSATION_DATASET_NAME", "datasets": [{ "dataset": "projects/PROJECT_ID/locations/global/conversationDatasets/CONVERSATION_DATASET_ID" }], "summarizationModelMetadata": { "trainingModelType": "SUMMARIZATION_MODEL" }, "languageCode": "en-US" }
该响应是一个长时间运行的操作,您可以使用 GetOperation API
轮询该操作以检查是否完成。训练可能需要几个小时。响应会返回状态和型号 ID。
示例响应:
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.dialogflow.v2beta1.CreateConversationModelOperationMetadata", "conversationModel": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID", "state": "TRAINING", "createTime": "2022-06-16T23:27:50Z" } }
评估对话模型
模型训练完成后,调用 ListConversationModelEvaluations
API 以检查模型质量。
在 ListConversationModelEvaluationsRequest
中,指定要检查的模型的名称。
{ "parent": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a" }
ListConversationModelEvaluationsResponse
包含用于评估自动摘要的 Rouge-L 得分。
{ "conversationModelEvaluations": [{ "name": "projects/cloud-contact-center-quality/locations/global/conversationModels/d3f2ca9f3e2c571a/evaluations/c10ac25411a23fe1", "displayName": "Training Auto Generated Evaluation", "createTime": "2022-06-04T03:38:35.151096Z", "evaluationConfig": { }, "summarizationMetrics": { "rougel": 0.4474459 } }] }
部署对话模型
模型训练完成后,您可以使用 DeployConversationModel
API 部署模型。
在 DeployConversationModelRequest
中,指定要部署的模型的 name
。该响应是一个长时间运行的操作,您可以使用 GetOperation API
轮询该操作以检查是否完成。
配置对话配置文件
对话配置文件可配置一组参数,用于控制对话期间向客服人员提出的建议。以下步骤将使用 HumanAgentAssistantConfig
对象创建 ConversationProfile
。
创建对话配置文件
如需创建对话配置文件,请对 ConversationProfile
资源调用 create
方法。为新对话资料提供名称,以及 Google Cloud项目 ID 和模型 ID。在 CreateConversationProfileRequest
中,指定要使用的对话模型和要设置为 CONVERSATION_SUMMARIZATION
的建议功能。
以下是一个 JSON 示例:
{ "displayName": "CONVERSATION_PROFILE_NAME", "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID", } }] } }, "languageCode": "en-US" }
响应是一个包含对话个人资料 name
的 ConversationProfile
对象:
{ "name": "projects/PROJECT_ID/locations/global/conversationProfiles/CONVERSATION_PROFILE_ID", "displayName": "CONVERSATION_PROFILE_NAME", "automatedAgentConfig": { }, "humanAgentAssistantConfig": { "notificationConfig": { }, "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { } }] }, "messageAnalysisConfig": { } }, "languageCode": "en-US", "createTime": "2022-06-06T21:06:46.841816Z", "updateTime": "2022-06-06T21:06:46.841816Z", "projectNumber": "344549229138" }
在运行时处理对话
当最终用户与人工客服之间开始对话时,您需要创建对话。以下部分将引导您完成此过程。
创建对话
如需创建对话,请对 Conversation
资源调用 create
方法。
响应包含您的新对话 ID。
创建最终用户参与者
如需创建最终用户参与者,请对 Participant
资源调用 create
方法。为 role
字段提供对话 ID 和 END_USER
。
participants
后面的路径段包含新的最终用户参与者 ID。
创建人工客服参与者
如需创建人工客服参与者,请对 Participant
资源调用 create
方法。为 role
字段提供对话 ID 和 HUMAN_AGENT
。
participants
后面的路径段包含新的人工客服参与者 ID。
分析消息
选项 1:在对话期间
如需为对话添加和分析人工客服消息,请对 Participant
资源调用 analyzeContent
方法。提供对话 ID 和人工客服参与者 ID。
如需为对话添加和分析最终用户消息,请对 Participant
资源调用 analyzeContent
方法。提供对话 ID 和最终用户参与者 ID。
如果已针对其他 Dialogflow 功能调用 analyzeContent
方法,请勿重复调用该方法。
方式 2:在对话结束后
如果您在对话期间未使用 analyzeContent
方法,则可以使用此选项。不过,您可以对 messages
资源使用 batchCreate
方法来注入对话的历史消息。
获取建议
您可以随时获取任何参与者发送的最新消息的建议。
选项 1. suggestConversationSummary
对 conversations.suggestions
资源调用 suggestConversationSummary
方法。提供对话 ID 和任一参与者的最新消息 ID。
选项 2. generateStatelessSummary
调用 generateStatelessSummary
方法。提供对话的 Messages
以及任一参与者的最新消息 ID。
以下是 generateStatelessSummary
的 JSON 请求示例:
{ "statelessConversation": { "messages": [{ "content": "Hello, how can I help you today?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "I would like to cancel my plan.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, I have canceled your plan. Is there anything else that I can do to help you?", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }, { "content": "No, thank you.", "languageCode": "en-US", "participantRole": "END_USER" }, { "content": "Okay, have a great day!", "languageCode": "en-US", "participantRole": "HUMAN_AGENT" }], "parent": "projects/PROJECT_ID/locations/global" }, "conversationProfile": { "humanAgentAssistantConfig": { "humanAgentSuggestionConfig": { "featureConfigs": [{ "suggestionFeature": { "type": "CONVERSATION_SUMMARIZATION" }, "conversationModelConfig": { "model": "projects/PROJECT_ID/locations/global/conversationModels/MODEL_ID" } }] } }, "languageCode": "en-US" } }
响应包含 Summarization
建议。
完成对话
如需完成对话,请对 conversations
资源调用 complete
方法。提供对话 ID。