查看此示例以了解在使用 Grounded by knowledge base Model connection 创建 AI Skill 时如何创建 JSON 筛选器。

创建 AI Skill 并使用 Grounded by knowledge base Model connection 时,在筛选器输入字段中添加筛选器,有助于将模型的搜索范围缩小到 Amazon Knowledge Base 中大型文档内的特定内容段落。 您将添加一个 JSON 格式的筛选器。 要应用筛选器,应为数据源配置元数据。

让我们来看一个创建和添加 JSON 筛选器的示例场景。

如果您使用的是 Amazon S3 存储桶,则对于存储桶中的每个文件,您必须包含一个与其关联的源文档同名的 .metadata.json 文件。 例如: 如果存储桶包含一个名为 articles.pdf 的文件,则您将创建一个名为 articles.pdf.metadata.json 的元数据文件。 元数据文件的内容通常是键值对块。 例如,articles.pdf.metadata.json 可能包括以下内容:

{ "metadataAttributes": { "genre": "a360", "year":2024 } }
您可以按照以下步骤生成 JSON 筛选器:
  1. 导航到 Amazon Bedrock > 知识库
  2. 单击已创建的 Amazon Knowledge Base
  3. 在左侧导航到测试知识库 > 配置
  4. 配置屏幕中,向下滚动到筛选器
  5. 插入如下所示的筛选条件,包括类型和年份。 请参阅截图以了解 OR 条件。

    用于 OR 条件的 AWS JSON 筛选器,包含类型和年份

    OR 条件的 JSON 筛选器如下:
    { "orAll": [ { "equals": { "key": "类型", "value": "a360" } }, { "equals": { "key": "年份", "value": 2025 } } ] }

    同样,对于 AND 条件,请参阅以下截图:

    用于 AND 条件的 AWS JSON 筛选器,包含类型和年份

    AND 条件的 JSON 筛选器如下:
    { "andAll": [ { "equals": { "key": "类型", "value": "a360" } }, { "equals": { "key": "年份", "value": 2025 } } ] }
  6. 要查看有关元数据和筛选 > 筛选运算符和逻辑运算符的一些示例,请参阅 Amazon Bedrock 知识库中的元数据和筛选
  7. 如需在 Amazon Bedrock 中查看更多示例,请导航至配置和自定义查询及响应生成 > 控制台配置和自定义查询及响应生成 > API

    AWS 筛选运算符

    要组合筛选操作,请使用以下逻辑运算符:

    AWS 逻辑运算符

    要了解如何使用元数据筛选结果,请选择与您偏好的方法相对应的选项卡,然后按照以下步骤操作。

    对于筛选器 JSON,通过将最多五个筛选器组嵌入另一个逻辑运算符中来组合它们。 您可以按照如下方式创建一层嵌套:
    "retrievalConfiguration": { "vectorSearchConfiguration": { "filter": { "andAll | orAll": [ "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ], "andAll | orAll": [ "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, "<filter-type>": { "key": "string", "value": "string" | number | boolean | ["string", "string", ...] }, ... ] ] } } }
    # genres = Strategy single_filter= { "equals": { "key": "genres", "value": "Strategy" } } # genres = Strategy AND year >= 2023 one_group_filter= { "andAll": [ { "equals": { "key": "genres", "value": "Strategy" } }, { "GreaterThanOrEquals": { "key": "year", "value": 2023 } } ] } # (genres = Strategy AND year >=2023) OR score >= 9 two_group_filter = { "orAll": [ { "andAll": [ { "equals": { "key": "genres", "value": "Strategy" } }, { "GreaterThanOrEquals": { "key": "year", "value": 2023 } } ] }, { "GreaterThanOrEquals": { "key": "score", "value": "9" } } ] }

示例:

AWS JSON 筛选器示例

请参阅以下 JSON 表示形式: Amazon Bedrock 知识库现在支持元数据筛选以提高检索准确性。
{ "orAll": [ { "andAll": [ { "equals": { "key": "类型", "value": "策略" } }, { "GreaterThanOrEquals": { "key": "年份", "value": 2023 } } ] }, { "GreaterThanOrEquals": { "key": "评分", "value": "9" } } ] }