使用自定义部分进行总结

使用自定义部分的摘要功能时,系统会使用 LLM 为客户服务对话生成摘要。模型会接收对话和自定义部分(即定义模型执行的任务的文本提示部分),然后生成摘要。

您可以选择预定义的部分,也可以在自定义部分中自行撰写总结任务定义。

如需了解可用的区域,请参阅区域化和数据驻留。

预定义版块

此功能提供六个预定义的部分,您可以从中进行选择:

  • 情况:客户需要帮助或有疑问的问题。系统会提供用于自定义简明摘要的选项,建议您使用此选项。

  • 行动:定义为智能体为帮助客户而采取的行动。系统会提供用于自定义简明摘要的选项,建议您使用此选项。

  • 分辨率:有四种选择。

    • Y:可以。所有客户问题和查询均已解决。
    • P:部分支持。仅解决了一部分客户问题和咨询。
    • N:否。客户的所有问题和查询均未得到解决。
    • 不适用:对话中没有客户提出的具体问题或查询。
  • 客户满意度:选项为“不满意”或“不不满意”。

    • D:客户在对话结束时感到不满意或有负面情绪。
    • N:客户在对话结束时情绪中性或积极。
  • 取消原因:如果客户请求取消,则为取消原因。否则为不适用。

  • 实体:从对话中提取的重要实体的键值对。

创建总结生成器

控制台

如需使用 Agent Assist 控制台创建总结生成器,请执行以下操作:

  1. 在控制台中,前往总结页面,然后选择生成器。

    前往“总结”

  2. 输入生成器的名称。

  3. 选择生成器的版本。

  4. 选择输出语言。

  5. 选择预定义部分下的部分。

  6. 在自定义部分下添加部分:根据需要定义新的总结任务,并可选择添加 few-shot 示例以进行增强。

  7. 点击保存。

REST

如需使用 API 创建总结生成器,请执行以下操作:

  1. 从生成器资源调用 CreateGenerator 方法。

  2. 在 description 字段中输入生成器的名称。

  3. 在 output_language_code 字段中输入生成器的输出语言代码。

  4. 输入触发事件 MANUAL_CALL。

  5. 在 SummarizationContext 中选择预定义的部分,并添加包含少样本示例的自定义部分。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/generators

请求 JSON 正文:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID",
  "description": "test",
  "triggerEvent": "MANUAL_CALL",
  "summarizationContext": {
    "summarizationSections": [{
      "type": "SITUATION"
    }, {
      "type": "ENTITIES"
    }, {
      "key": "custom_section",
      "definition": "Describe what the customer needs help with or has questions about. If there is an order number mentioned in the conversation, INCLUDE the order number.",
      "type": "CUSTOMER_DEFINED"
    }],
    "version": "2.1",
    "outputLanguageCode": "en-US"
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID",
  "description": "test",
  "inferenceParameter": {
    "maxOutputTokens": 1024,
    "temperature": 0.0,
    "topK": 40,
    "topP": 0.8
  },
  "triggerEvent": "MANUAL_CALL",
  "createTime": "2024-05-11T00:28:14.790937126Z",
  "updateTime": "2024-05-11T01:59:15.751724150Z",
  "summarizationContext": {
    "summarizationSections": [{
      "type": "SITUATION"
    }, {
      "type": "ENTITIES"
    }, {
      "key": "custom_section",
      "definition": "Describe what the customer needs help with or has questions about. If there is an order number mentioned in the conversation, INCLUDE the order number.",
      "type": "CUSTOMER_DEFINED"
    }],
    "version": "2.1",
    "outputLanguageCode": "en-US"
  }
}

测试摘要生成器

在控制台中,您可以在 Test generator(测试生成器)部分测试生成器,如下图所示。

如需在控制台中测试生成器,请执行以下操作:

控制台

  1. 对话的转写内容。您可以手动输入话语,也可以上传 JSON 格式的转写内容,如下图所示。

  2. 点击生成以显示总结。

配置对话配置文件

对话配置文件可配置一组参数,用于控制对话期间向客服人员提出的建议。以下步骤将使用 HumanAgentAssistantConfig 对象创建 ConversationProfile。

以下示例展示了如何创建对话配置文件。

控制台

  1. 在 Agent Assist 控制台中,前往对话配置文件页面。

  2. 输入显示名称。

  3. 选择对话总结(生成器)作为建议类型。

  4. 从列表中选择生成器的名称。

REST

  1. 从对话配置文件资源调用 create 方法。

  2. 为新的对话个人资料提供名称。

  3. 输入语言代码。

  4. 在 human_agent_suggestion_config 中输入生成器名称。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID
  • CONVERSATION_PROFILE_ID:您的对话配置文件 ID
  • GENERATOR_ID:您的生成器 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles

请求 JSON 正文:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "conversation-profile-with-generator",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "generators": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID"
    }
  },
  "languageCode": "en-US"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "displayName": "conversation-profile-with-generator",
  "humanAgentAssistantConfig": {
    "humanAgentSuggestionConfig": {
      "generators": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID"
    }
  },
  "languageCode": "en-US"
}

使用模拟器进行验证

您可以在 Agent Assist 模拟器中验证对话配置文件。

运行时对话

在运行时,当用户与代理之间开始对话时,您需要创建对话,即代理(人工或虚拟)与支持客户或用户之间的互动。如需查看建议,请同时创建用户参与者和客服参与者,并将其添加到对话中。

创建对话

如需创建对话,请对 Conversation 资源调用 create 方法。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID
  • CONVERSATION_PROFILE_ID:您在创建对话配置文件时收到的 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations

请求 JSON 正文:

{
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "IN_PROGRESS",
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z"
}

conversations 后面的路径段包含新对话 ID。

创建用户参与者

如需创建用户参与者,请对 Participant 资源调用 create 方法。为 role 字段提供对话 ID 和 END_USER。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID
  • CONVERSATION_ID:您的对话 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

请求 JSON 正文:

{
  "role": "END_USER",
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "END_USER"
}

participants 后面的路径段包含新的用户参与者 ID。

创建代理参与者

对 Participant 资源调用 create 方法。为 role 字段提供话题 ID 和 HUMAN_AGENT 或 AUTOMATED_AGENT。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID
  • CONVERSATION_ID:您的对话 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants

请求 JSON 正文:

{
  "role": "HUMAN_AGENT",
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/participants/PARTICIPANT_ID",
  "role": "HUMAN_AGENT"
}

participants 后面的路径段包含新的客服参与者 ID。

分析消息

您可以通过以下两种方式分析消息:

  • 在对话期间。如需为对话添加和分析代理消息,请对 Participant 资源调用 analyzeContent 方法。提供对话 ID 和代理参与者 ID。如需为对话添加和分析用户消息,请对 Participant 资源调用 analyzeContent 方法。提供对话 ID 和用户参与者 ID。如果已针对其他 Dialogflow 功能调用 analyzeContent 方法,请勿重复调用该方法。

  • 对话结束后。如果您在对话期间未使用 analyzeContent 方法,则可以使用此选项。您可以改为对 messages 资源使用 batchCreate 方法来注入对话的历史消息。

生成摘要

您可以随时获取建议,以回复任一参与者的最新消息。

  • 对 conversations.suggestions 资源调用 suggestConversationSummary 方法。提供对话 ID 以及任一参与者的最新消息 ID。

  • 调用 generateStatelessSuggestion 方法。提供 ConversationContext、生成器名称和触发事件,触发事件应为 MANUAL_CALL。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Cloud 项目 ID
  • LOCATION_ID:您的位置 ID
  • GENERATOR_ID:您的生成器 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/statelessSuggestion:generate

请求 JSON 正文:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID",
  "generatorName": "projects/PROJECT_ID/locations/LOCATION_ID/generators/GENERATOR_ID",
  "conversationContext" {
    "messageEntries": [{
      "role": "HUMAN_AGENT",
      "text": "Hi, this is ABC messaging, how can I help you today?",
      "languageCode": "en-US"
    }, {
      "role": "END_USER",
      "text": "I want to return my order, it is broken",
      "languageCode": "en-US"
    }]
  },
  "triggerEvents": [
    "MANUAL_CALL"
  ]
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "generatorSuggestion": {
    "summarySuggestion": {
      "summarySections": [
        {
          "section": "situation",
          "summary": "customer wants to return an order."
        },
        {
          "section": "resolution",
          "summary": "N"
        }
      ]
    }
  }
}

回答包含摘要。

完成对话

如需完成对话,请对 conversations 资源调用 complete 方法。提供对话 ID。

REST

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 GCP 项目 ID
  • CONVERSATION_ID:您在创建对话时收到的 ID

HTTP 方法和网址:

POST https://dialogflow.googleapis.com/v2/projects/PROJECT_ID/conversations/CONVERSATION_ID:complete

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_ID/conversations/CONVERSATION_ID",
  "lifecycleState": "COMPLETED",
  "conversationProfile": "projects/PROJECT_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "startTime": "2018-11-05T21:05:45.622Z",
  "endTime": "2018-11-06T03:50:26.930Z"
}