适用于聊天的摘要 V1 自定义模型

借助Agent Assist 摘要自定义模型功能,您可以利用专门使用客户专属数据训练的模型,在每次对话结束后向客服人员提供对话摘要。这与通过大型语言模型进行的自定义不同,详见包含自定义部分的摘要。摘要可帮助客服人员创建对话备注并了解最终用户的沟通记录。例如,有关对话的摘要输出可能如下所示:

您还可以导入自定义 Agent Assist 总结模型,以便与 CCAI Insights 对话搭配使用。

准备工作

  1. 确保数据采用所需的格式。您还可以选择使用示例数据集或使用演示版总结模型测试该功能,而无需数据集。

使用 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"
}

响应是一个包含对话个人资料 nameConversationProfile 对象:

{
  "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。