生成式知识辅助

生成式知识助理会根据您提供的文档中的信息回答智能体的问题。您可以为基于流程的数据存储区智能体基于 playbook 的数据存储区智能体指定网域名称或上传文档。生成式知识助理会将这些信息与正在进行的对话和可用的客户元数据相结合,为智能体提供更相关且更及时的回答。

准备工作

除非您是项目所有者,否则您需要具有以下角色才能创建数据存储区代理:

- Dialogflow API Admin
- Discovery Engine Admin

创建基于流的数据存储区代理

  1. 在 Vertex AI 控制台中激活 AI Applications API。

  2. 如需创建代理,请按照基于流程的数据存储区代理中的步骤操作。

创建基于 playbook 的数据存储区代理

  1. 在 Vertex AI 控制台中激活 AI Applications API。

  2. 如需创建代理,请按照基于剧本的数据存储区代理中的步骤操作。

  3. 如需将智能体连接到数据存储区,请创建数据存储区工具。如需了解详情,请参阅 Playbook 数据存储区工具示例

回答人工客服提出的问题

基于流程或 Playbook 的数据存储区智能体可以根据您提供的文档回答人工客服提出的问题。

第 1 步:创建对话资料

使用 Agent Assist 控制台或 API 创建对话配置文件

通过控制台创建

  1. 您必须启用生成式知识助理建议类型,并将其与上一步中的基于流程或基于剧本的数据存储区代理相关联。
  2. 可选:使用停用代理搜索查询日志记录复选框来指明您是否希望 Google 收集和存储已隐去的搜索查询,以潜在地提高质量。
  3. 您可以选中启用对话增强查询复选框,以指明在为搜索查询生成答案时,是否要考虑人工客服与用户之间的对话上下文。

通过 API 创建

以下步骤说明了如何使用 HumanAgentAssistantConfig 对象创建 ConversationProfile。您还可以使用 Agent Assist 控制台执行这些操作。

如需创建对话配置文件,请对 ConversationProfile 资源调用 create 方法。

在使用任何请求数据之前,请先进行以下替换:
  • PROJECT_ID:您的项目 ID
  • LOCATION_ID:您所在位置的 ID
  • AGENT_ID:上一步中基于流程或剧本的数据存储区代理 ID
以下是一个 JSON 示例:
  {
    "displayName": "my-conversation-profile-display-name",
    "humanAgentAssistantConfig": {
      "humanAgentSuggestionConfig": {
        "featureConfigs": [
          {
            "suggestionFeature": {
              "type": "KNOWLEDGE_SEARCH"
            },
            "queryConfig": {
              "dialogflowQuerySource": {
                "humanAgentSideConfig": {
                  "agent": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID"
                }
              }
            },
            "disableAgentQueryLogging": false,
            "enableConversationAugmentedQuery": false,
          }
        ]
      }
    }
  }
      

在 Agent Assist 控制台中创建对话配置文件时,Agent Assist 会自动启用生成式知识辅助功能。

第 2 步:使用数据存储区代理

(可选)使用 SearchKnowledge API 从数据存储区代理获取答案。您还可以将以下配置用作 SearchKnowledge 请求的一部分:

  • querySource:设置此字段以指明查询是由客服人员键入的,还是由生成式知识助理自动建议的。
  • exactSearch:设置此字段以指示是否在不进行查询重写的情况下搜索确切的输入查询。
  • endUserMetadata:设置此字段可添加有关最终用户的其他信息,从而改进生成的答案。如需了解详情,请参阅数据存储区代理性能个性化页面
  • searchConfig:设置此字段可进一步控制知识文档的提升和过滤。如需了解详情,请参阅数据存储区代理性能搜索配置页面

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

  • PROJECT_ID:您的项目 ID
  • LOCATION_ID:您所在位置的 ID
  • CONVERSATION_PROFILE_ID:上一步中的对话配置文件 ID
  • SESSION_ID:您的搜索会话 ID
  • 同一会话的搜索记录可能会影响搜索结果。您可以使用以下对话 ID 作为会话 ID。
  • CONVERSATION_ID:触发搜索请求的对话(人工客服与最终用户之间的对话)
  • MESSAGE_ID:触发搜索请求时的最新对话消息

以下是一个 JSON 请求示例:

{
  "parent": "projects/PROJECT_ID/locations/LOCATION_ID"
  "query": {
    "text": "What is the return policy?"
  }
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID"
  "sessionId": "SESSION_ID
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID"
  "latestMessage": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID/messages/MESSAGE_ID
  "querySource": AGENT_QUERY
  "exactSearch": false
  "searchConfig": {
    "filterSpecs": {
      "filter": "category: ANY(\"persona_B\")"
    }
  }
  "endUserMetadata": {
    "deviceOwned": "Google Pixel 7"
  }
}

(可选)如果代理的搜索发生在与用户的对话期间,请提供 conversationlatest_message 资源名称。如果您启用 enable_conversation_augmented_query 选项,并希望通过代理与用户之间的对话上下文来增强查询回答体验,则必须填写这两个字段。

模拟器

Agent Assist 模拟器中测试基于流程或基于剧本的数据存储区代理。

在上述示例中,基于流程的数据存储区代理使用以下信息回答用户查询 What is the refund processing time?

  • 生成式 AI 生成的回答当您的退货包裹到达卖家的退货中心后,卖家可能需要最多 7 个工作日来处理退货。您可以使用订单页面上的退货跟踪编号来查看退款状态。
  • 相关知识文档的标题退货和退款

发送反馈

如需了解发送反馈的步骤,请参阅向 Agent Assist 发送反馈

回答智能体提出的问题

以下是用于发送有关回答代理问题的反馈的 JSON 请求示例。

{
  "name": "projects/PROJECT_ID/locations/LOCATION_ID/answerRecords/ANSWER_RECORD_ID",
  "answerFeedback": {
    "displayed": true
    "clicked": true
    "correctnessLevel": "FULLY_CORRECT"
    "agentAssistantDetailFeedback": {
      "knowledgeSearchFeedback": {
        "answerCopied": true
        "clickedUris": [
          "url_1",
          "url_2",
          "url_3",
        ]
      }
    }
  }
}

元数据

如果您为知识文档配置了元数据,那么生成式知识助理和主动生成式知识助理都会在返回响应的同时返回文档的元数据。

例如,您可以使用元数据来标记知识文档是内部私密文章还是外部公开文章。在 Agent Assist 模拟器界面模块中,生成式知识助理和主动生成式知识助理都会自动显示某些键的文档元数据值。

  • gka_source_label:值直接显示在建议卡片中。
  • gka_source_tooltip:当值为 struct 类型时,将光标悬停在来源链接上会展开并以提示的形式显示该值。

如果知识文档具有以下元数据,建议卡片会将来源列为 External Doc,并且工具提示会添加 doc_visibility: public doc

元数据: None { "title": "Public Sample Doc", "gka_source_label": "External Doc", "gka_source_tooltip": { "doc_visibility": "public doc" } }

最终用户元数据

附加最终用户元数据,以改进和个性化 Datastore 代理生成的答案。对于生成式知识辅助,您可以将最终用户元数据附加到 end_user_metadata 字段,也可以通过 IngestContextReferences API 将其注入到对话中。您可以将提取的最终用户元数据用于生成式知识助理和主动式生成式知识助理。

示例 1:附加最终用户元数据

{
  "query": {
     "text": "test query"
  },
  "conversationProfile": "projects/PROJECT_ID/locations/LOCATION_ID/conversationProfiles/CONVERSATION_PROFILE_ID",
  "sessionId": "SESSION_ID",
  "conversation": "projects/PROJECT_ID/locations/LOCATION_ID/conversations/CONVERSATION_ID",
  "querySource": "AGENT_QUERY",
  "endUserMetadata": {
    "Name": "Jack",
    "Age": 33,
    "City": "Tokyo"
  }
}

示例 2:提取最终用户元数据

{
  "conversation": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID",
  "contextReferences": {
   "gka_end_user_metadata": {
      "contextContents": [{
"content": "{\"Name\":\"Jack\",\"Age\":33,\"city\":\"Tokyo\"}",
        "contentFormat": "JSON"
      }],
      "updateMode": "OVERWRITE",
      "languageCode": "en-US"
    }
  }
}

如需详细了解 Datastore 中的最终用户元数据,请参阅有关 Dialogflow 个性化的信息。

语言支持

请参阅支持的语言的完整列表