本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将您的数据与 Amazon Bedrock 知识库同步
创建完知识库后,需要摄取或同步数据,以便查询数据。摄取根据您指定的向量嵌入模型和配置,将数据来源中的原始数据转换为向量嵌入。
在开始摄取之前,请检查您的数据来源是否满足以下条件:
-
您已经为数据来源配置了连接信息。要配置数据来源连接器以从数据来源存储库中抓取数据,请参阅 Supported data source connectors。在创建知识库的过程中,您可以配置数据来源。
-
您已经配置了所选的向量嵌入模型和向量存储。请参阅 supported vector embeddings models 和 vector stores for knowledge bases。在创建知识库的过程中,您可以配置向量嵌入。
-
文件采用受支持的格式。有关更多信息,请参阅支持的文档格式。
-
这些文件不超过 AWS 一般参考中的 Amazon Bedrock endpoints and quotas 中指定的摄取作业文件大小。
-
如果您的数据来源包含元数据文件,请检查以下条件以确保元数据文件不会被忽略:
-
每个
.metadata.json文件都与其关联的源文件共享相同的文件名和扩展名。 -
如果知识库的向量索引位于 Amazon OpenSearch Serverless 矢量存储中,请检查该
faiss引擎是否配置了矢量索引。如果向量索引是使用nmslib引擎配置,则您必须执行以下操作之一: -
如果知识库的向量索引位于 Amazon Aurora 数据库集群中,我们建议您使用自定义元数据字段将所有元数据存储在单列中,并对该列创建索引。如果未提供自定义元数据字段,那么必须在开始摄取之前,检查索引表格是否包含元数据文件中每个元数据属性的列。有关更多信息,请参阅将您创建的向量存储用于知识库的先决条件。
-
每次在数据来源中添加、修改或删除文件时,您都必须同步数据来源,以便将其重新索引到知识库中。同步是增量式的,因此 Amazon Bedrock 仅处理自上次同步以来添加、修改或删除的文档。
知识库如何处理重新同步
每次在数据源中添加、修改或删除文件时,都必须同步数据源,以便在知识库中对其重新编制索引。同步是增量式的,因此 Amazon Bedrock 仅处理自上次同步以来添加、修改或删除的文档。当您同步数据源时,Amazon Bedrock 会重新摄取文档以确保准确性和一致性。重新摄取包括解析、分块、生成嵌入以及向量存储索引。
| 场景 | 发生了什么 |
|---|---|
| 未检测到任何更改 | 该文档已被跳过。 |
| 内容或元数据已更改 | 文档被重新收录(重新解析、重新分块、重新嵌入和重新索引)。 |
| 已添加新文档 | 仅摄取新文档。 |
| 文档已删除 | 该文档已从矢量存储中移除。 |
仅限元数据的优化
在某些情况下,Amazon Bedrock 可以更新元数据,而无需重新提取与该元数据文件关联的文档。这种优化会从向量存储中检索现有的向量嵌入,合并新的元数据,然后将更新的嵌入写回去,从而避免了对嵌入模型的调用。
仅当满足以下所有条件时,此优化才适用:
-
仅修改
metadata.json文件。没有更改任何内容文件。 -
关联的内容文件不是 CSV 文件。
-
数据源不使用自定义转换 Lambda 函数。
CSV 文件的重新摄取行为
CSV 文件使用元数据中的documentStructureConfiguration字段来控制对哪些列进行索引。由于 Amazon Bedrock 在不重新处理文件的情况下无法确定此结构配置是否已更改,因此 CSV 文件在更新元数据文件时总是会重新载入。
要了解如何将数据摄取到知识库中并同步最新数据,请选择与您的首选方法对应的选项卡,然后按照以下步骤操作: