过滤条件可帮助您缩小搜索范围,并确保知识辅助生成器生成有用的建议。过滤 Datastore 中的文档,以指定要在生成式知识辅助 (GKA) 和主动生成式知识辅助 (PGKA) 中引用的文档类别。自定义生成内容的安全过滤器,确保 PGKA 建议最大限度地满足您的业务需求,同时最大限度地减少负面影响。
文档过滤条件
使用 SearchConfig
过滤 GKA 和 PGKA 的知识辅助文档。
第 1 步:使用元数据设置 Datastore
导入元数据,为 GKA 和 PGKA 创建 Datastore。您必须以一个或多个 JSONL 文件的形式提供元数据,这些文件位于用于导入的内容的更高级别文件夹中。
- 按照“Datastore 工具”页面上的步骤向代理添加 Datastore。
- 在 AI Applications 页面上,依次点击数据存储区 > + 创建数据存储区。
- 前往 Cloud Storage,然后点击选择。
- 点击文件,然后输入 Cloud Storage 中文件的路径,或点击浏览以选择文件。
- 前往您要导入哪种数据?,然后选择链接的非结构化文档(包含元数据的 JSONL)。
- 前往数据导入选项,然后选择完整。
- 点击导入。
- 成功创建 Datastore 后,查看“文档”表。下表列出了您的每份文档,并包含以下详细信息。
- ID
- URI 链接
- 索引状态
- 操作
- 点击查看文档可检查文档的属性。
以下是一个 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
字段,如下所示。如需查看更多过滤表达式示例,请参阅 Vertex AI Search 文档。
{
"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 调用。
- 调用
CreateConversation
>IngestContextReferences
。 - 相应配置会自动应用于同一对话中的所有后续 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"
}
}
}
控制台
前往 Agent Assist 控制台,登录并选择您的项目。
点击模拟器,然后选择对话配置文件。
依次点击开始 > 注入上下文。
输入密钥和内容,然后选择以下格式之一。
- 纯文本
- JSON
点击保存。
以下是模拟器的上下文示例。
- 键:
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
配置安全过滤器
在对话配置文件中配置安全过滤器。您可以向 KNOWLEDGE_ASSIST
的功能配置中添加 rai_settings
对象,从而为一种或多种 RAI 类别指定敏感度级别。您可以在 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"
}
]
}