将您的数据与 Amazon Bedrock 知识库同步 - Amazon Bedrock

将您的数据与 Amazon Bedrock 知识库同步

创建完知识库后,需要摄取或同步数据,以便查询数据。摄取根据您指定的向量嵌入模型和配置,将数据来源中的原始数据转换为向量嵌入。

在开始摄取之前,请检查您的数据来源是否满足以下条件:

  • 您已经为数据来源配置了连接信息。要配置数据来源连接器以从数据来源存储库中抓取数据,请参阅 Supported data source connectors。在创建知识库的过程中,您可以配置数据来源。

  • 您已经配置了所选的向量嵌入模型和向量存储。请参阅 supported vector embeddings modelsvector stores for knowledge bases。在创建知识库的过程中,您可以配置向量嵌入。

  • 文件采用受支持的格式。有关更多信息,请参阅支持的文档格式

  • 这些文件不超过 AWS 一般参考 中的 Amazon Bedrock endpoints and quotas 中指定的摄取作业文件大小

  • 如果您的数据来源包含元数据文件,请检查以下条件以确保元数据文件不会被忽略:

    • 每个 .metadata.json 文件都与其关联的源文件共享相同的文件名和扩展名。

    • 如果知识库的向量索引位于 Amazon OpenSearch 无服务器向量存储中,请检查向量索引是否使用 faiss 引擎配置。如果向量索引是使用 nmslib 引擎配置,则您必须执行以下操作之一:

    • 如果知识库的向量索引位于 Amazon Aurora 数据库集群中,我们建议您使用自定义元数据字段将所有元数据存储在单列中,并对该列创建索引。如果未提供自定义元数据字段,那么必须在开始摄取之前,检查索引表格是否包含元数据文件中每个元数据属性的列。有关更多信息,请参阅将您创建的向量存储用于知识库的先决条件

每次在数据来源中添加、修改或删除文件时,您都必须同步数据来源,以便将其重新索引到知识库中。同步是增量式的,因此 Amazon Bedrock 仅处理自上次同步以来添加、修改或删除的文档。

要了解如何将数据摄取到知识库中并同步最新数据,请选择与您的首选方法对应的选项卡,然后按照以下步骤操作:

Console
将数据摄取到知识库中并同步最新数据
  1. 通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock/

  2. 从左侧导航窗格中选择知识库,然后选择您的知识库。

  3. 数据来源部分中,选择同步以开始数据摄取或同步最新数据。要停止当前正在同步的数据来源,请选择停止。数据来源当前必须处于同步状态才能停止同步该数据来源。您可以再次选择同步以摄取其余数据。

  4. 数据摄取完成后,如果成功则会显示绿色成功横幅。

    注意

    数据同步完成后,如果您使用的是 Amazon Aurora (RDS) 以外的向量存储,则可能需要几分钟时间才能将新同步数据的向量嵌入反映到您的知识库中,并可供查询。

  5. 您可以选择一个数据来源,查看其同步历史记录。选择查看警告以查看数据摄取作业失败的原因。

API

要将您的数据摄取到知识库中并同步最新数据,请使用 Amazon Bedrock 代理构建时端点发送 StartIngestionJob 请求。指定 knowledgeBaseIddataSourceId。您还可以通过发送 StopIngestionJob 请求来停止当前正在运行的数据摄取作业。指定 dataSourceIdingestionJobIdknowledgeBaseId。数据摄取作业必须当前正在运行才能停止数据摄取。准备就绪后,您可以再次发送 StartIngestionJob 请求以摄取其余的数据。

使用 Amazon Bedrock 代理构建时端点发出的 GetIngestionJob 请求响应中返回的 ingestionJobId 来跟踪摄取作业的状态。此外,请指定 knowledgeBaseIddataSourceId

  • 摄取作业完成后,响应中的 statusCOMPLETE

    注意

    数据摄取完成后,如果您使用 Amazon Aurora(RDS)以外的向量存储,则可能需要几分钟时间才能在向量存储中显示新摄取数据的向量嵌入以供查询。

  • 响应中的 statistics 对象会返回有关数据来源中文档的摄取是否成功的信息。

您还可以使用 Amazon Bedrock 代理构建时端点发送 ListIngestionJobs 请求,查看数据来源的所有摄取作业的信息。指定要将数据摄取到的知识库的 dataSourceIdknowledgeBaseId

  • 通过在 filters 对象中指定要搜索的状态来筛选结果。

  • 通过指定 sortBy 对象,按作业启动时间或作业状态进行排序。您可以按升序或降序进行排序。

  • maxResults 字段中设置要在响应中返回的结果数量上限。如果结果数超过您设置的值,响应会返回 nextToken,您可以再发送一个 ListIngestionJobs 请求并在其中包含它,以查看下一批作业。