如何为 Amazon Bedrock 生成 JSON 筛选器
- Updated: 2025/04/30
查看此示例以了解在使用 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 } }
- 导航到 。
- 单击已创建的 Amazon Knowledge Base。
- 在左侧导航到 。
- 在配置屏幕中,向下滚动到筛选器。
- 插入如下所示的筛选条件,包括类型和年份。 请参阅截图以了解 OR 条件。此 OR 条件的 JSON 筛选器如下:
{ "orAll": [ { "equals": { "key": "类型", "value": "a360" } }, { "equals": { "key": "年份", "value": 2025 } } ] }
同样,对于 AND 条件,请参阅以下截图:
此 AND 条件的 JSON 筛选器如下:{ "andAll": [ { "equals": { "key": "类型", "value": "a360" } }, { "equals": { "key": "年份", "value": 2025 } } ] }
- 要查看有关 Amazon Bedrock 知识库中的元数据和筛选 。 的一些示例,请参阅
- 如需在 Amazon Bedrock 中查看更多示例,请导航至 和 。
要组合筛选操作,请使用以下逻辑运算符:
要了解如何使用元数据筛选结果,请选择与您偏好的方法相对应的选项卡,然后按照以下步骤操作。
对于筛选器 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" } } ] }
示例:
{ "orAll": [ { "andAll": [ { "equals": { "key": "类型", "value": "策略" } }, { "GreaterThanOrEquals": { "key": "年份", "value": 2023 } } ] }, { "GreaterThanOrEquals": { "key": "评分", "value": "9" } } ] }