知识辅助过滤条件

过滤条件有助于缩小搜索范围,并确保知识助理生成器生成有用的建议。在 Datastore 中过滤文档,以指定一个文档类别,供 生成式知识助理 (GKA) 和 主动生成式知识助理 (PGKA) 参考。自定义生成内容的安全性过滤条件,以确保 PGKA 建议尽可能有用,并尽可能减少对业务需求造成的损害。

文档过滤条件

使用 SearchConfig 为 GKA 和 PGKA 过滤知识助理文档。

第 1 步:使用元数据设置 Datastore

导入元数据,为 GKA 和 PGKA 创建 Datastore。您必须以一个或多个 JSONL 文件的形式提供元数据,这些文件位于用于导入的内容的更高级别文件夹中。

  1. 按照 Datastore 工具页面上的步骤,将 Datastore 添加到智能体。
  2. 在“AI 应用”页面上,依次点击“数据存储区” > “+ 创建数据存储区”。
  3. 前往 Cloud Storage,然后点击 Select.
  4. 点击文件,然后在 Cloud Storage 中输入文件的路径,或点击浏览以选择文件。
  5. 前往您要导入哪种类型的数据? ,然后选择链接的非结构化文档(包含元数据的 JSONL) 。
  6. 前往数据导入选项 ,然后选择完整 。
  7. 点击导入 。
  8. 成功创建 Datastore 后,查看“文档”表。该表列出了您的每个文档,并包含以下详细信息。
    • ID
    • URI 链接
    • 索引状态
    • 操作
  9. 点击查看文档 以检查文档的属性。

以下是一个示例 JSONL 文件。您还可以在 structData 字段中指定元数据。

{ "id": "d001", "content": {"mimeType": "text/html", "uri": "gs://example-import/unstructured/first_doc.html"}, "structData": {"property0": "value0", "property1": "value1", "property2": "value2"} }
{ "id": "d002", "content": {"mimeType": "application/pdf", "uri": "gs://example-import/unstructured/second_doc.pdf"}, "structData": {"property0": "value0", "property1": "value3", "property2": "value4"} }

第 2 步:配置过滤条件

如需将过滤条件值直接应用于 GKA 搜索,请调用 SearchKnowledge API。您还可以在请求中应用 SearchConfig 字段,如下所示。如需查看更多过滤条件表达式示例,请参阅智能体搜索文档。

{
  "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",
  "searchConfig": 
    "filterSpecs": [{
      "dataStores": ["projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"],
      "filter": "property1 : ANY(\"value1\")" 
      }]
    }
  }
}

如需在单个对话中将过滤条件值应用于所有知识搜索查询和建议,请使用 IngestContextReferences 并将对话 ID 附加到 SearchKnowledge 调用。

PGKA 文档过滤条件

使用 IngestContextReferences API 或 Agent Assist 控制台中的模拟器将 SearchConfig 应用于 PGKA 调用。

API

调用 IngestContextReferences API,将 SearchConfig 应用于 PGKA 调用。

  1. 调用 CreateConversation > IngestContextReferences。
  2. 该配置会自动应用于同一对话中的所有后续 PGKA 查询和回答建议。

以下示例展示了如何使用 IngestContextReferences API。

{
  "conversation": "projects/PROJECT_ID/locations/global/conversations/CONVERSATION_ID",
  "contextReferences": {
   "gka_search_config": {
      "contextContents": [{
"content": "{ \"filterSpecs\": [{ \"dataStores\": [\"projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID\"], \"filter\": \"property1: ANY    (\\\"value1\\\")\" }] }",
        "contentFormat": "JSON"
      }],
      "updateMode": "OVERWRITE",
      "languageCode": "en-US"
    }
  }
}

控制台

  1. 前往 Agent Assist 控制台,登录并选择您的项目。

    前往控制台

  2. 点击模拟器 ,然后选择您的对话个人资料。

  3. 依次点击开始 > 注入上下文 。

  4. 输入您的键、内容,然后选择以下格式之一。

    • 纯文本
    • JSON
  5. 点击保存 。

以下是模拟器的上下文示例。

  • 键: gka_search_config
  • 格式:JSON
  • 内容:
{ "filterSpecs": [{"dataStores" : ["projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"], "filter" : "property1 : ANY(\"value1\")" }] }

安全过滤器

Agent Assist 中的生成式功能具有内置的 Responsible AI (RAI) 安全过滤器。这些过滤器对于防止生成可能有害或不当内容至关重要。不过,默认安全级别对于某些行业来说可能过于严格。例如,医疗服务提供方可能需要回应有关默认过滤器会屏蔽的敏感健康主题的合法查询。如需使生成器的行为与您的业务需求和使用场景保持一致,您可以自定义 PGKA 功能的安全过滤器的敏感度。

基础知识

安全过滤器有两个关键组成部分:

  • 要过滤的内容类别
  • 过滤器的敏感度

RAI 类别

您可以为以下内容类别设置敏感度:

  • 危险内容:指自残或任何非法、受管制或危险的内容。
  • 露骨色情:指露骨色情内容或包含色情内容的内容。
  • 骚扰:指侮辱性、恐吓性或辱骂性内容。
  • 仇恨言论:指宣扬暴力或煽动对具有某些特征的个人或群体采取仇恨行为的内容。

敏感度

对于每个 RAI 类别,您可以选择以下敏感度阈值之一:

  • BLOCK_MOST:屏蔽可能属于该类别的各种内容。
  • BLOCK_SOME:屏蔽明确属于该类别的内容。
  • BLOCK_FEW:仅屏蔽该类别中最严重的内容。
  • BLOCK_NONE:停用指定类别的所有过滤器。

默认设置

如果您未为某个类别提供自定义配置,主动生成式知识助理会使用以下默认敏感度:

  • 危险内容: BLOCK_FEW
  • 露骨色情: BLOCK_SOME
  • 骚扰: BLOCK_SOME
  • 仇恨言论: BLOCK_SOME

配置安全过滤器

在对话个人资料中配置安全过滤器。您可以为一项或多项 RAI 类别指定敏感度,方法是将 rai_settings 对象添加到 KNOWLEDGE_ASSIST 的功能配置中。您可以在 KNOWLEDGE_ASSIST 建议功能的 feature_configs 数组中找到安全过滤器设置。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/conversationProfiles/PROFILE_ID",
  "human_agent_assistant_config": {
    "human_agent_suggestion_config": {
      "feature_configs": [
        {
          "suggestion_feature": {
            "type": "KNOWLEDGE_ASSIST"
          },
          "rai_settings": {
            "rai_category_configs": [
              {
                "category": "DANGEROUS_CONTENT",
                "sensitivity_level": "BLOCK_FEW"
              },
              {
                "category": "HARASSMENT",
                "sensitivity_level": "BLOCK_MOST"
              }
            ]
          }
        }
      ]
    }
  }
}

配置示例

以下示例说明了如何根据您的业务需求提高或降低单个类别的敏感度。

示例 1:允许敏感的医疗保健查询

作为医疗服务提供方,您希望确保有关敏感心理健康主题的查询不会被屏蔽。您可以降低危险内容分类的敏感度,如下所示。

"rai_settings": {
  "rai_category_configs": [
    {
      "category": "DANGEROUS_CONTENT",
      "sensitivity_level": "BLOCK_NONE"
    }
  ]
}

通过此设置,主动生成式知识助理功能更有可能处理并为“自杀的警告信号有哪些?”等查询提供有用的回答。

示例 2:提高严格程度

如果您的业务希望对骚扰内容格外谨慎,您可以提高该类别的敏感度,同时将其他类别保留在默认级别,如下所示。

"rai_settings": {
  "rai_category_configs": [
    {
      "category": "HARASSMENT",
      "sensitivity_level": "BLOCK_MOST"
    }
  ]
}