将自己的向量存储用于知识库的先决条件 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将自己的向量存储用于知识库的先决条件

要存储文档转换为的矢量嵌入,请使用矢量存储。如果您希望让 Amazon Bedrock 在 Amazon OpenSearch Serverless 中自动为您创建矢量索引,请跳过此先决条件并继续操作。通过连接到 Amazon Bedrock 知识库中的数据源来创建知识库

如果要存储二进制向量嵌入而不是标准的浮点 (float32) 向量嵌入,则必须使用支持二进制向量的向量存储。Amazon OpenSearch Serverless 是目前唯一支持存储二进制向量的矢量存储库。

您可以设置自己的受支持向量存储,以便为数据的向量嵌入表示编制索引。您需要为以下数据创建字段:

  • 您选择的嵌入模型根据数据来源中的文本生成的向量的字段。

  • 从数据来源中的文件提取的文本块的字段。

  • Amazon Bedrock 管理的源文件元数据的字段。

  • (如果您使用的是 Amazon Aurora 数据库,并希望设置元数据筛选)与源文件关联的元数据的字段。如果您计划在其他向量存储中设置筛选,则无需为这些字段设置筛选。

您可以使用 KMS 密钥来加密第三方向量存储。有关更多信息,请参阅 Encryption of knowledge base resources

选择与将用于创建向量索引的向量存储服务对应的选项卡。

Amazon OpenSearch Serverless
  1. 要在 Amazon OpenSearch Serverless 中配置权限并创建矢量搜索集合 AWS Management Console,请按照《亚马逊 OpenSearch 服务开发者指南》中使用矢量搜索集合中的步骤 1 和步骤 2 进行操作。设置集合时,请注意以下事项:

    1. 为集合指定您选择的名称和描述。

    2. 要将您的集合设置为私有,请在安全性部分选择标准创建。然后,在网络访问设置部分,选择 VPC 作为访问类型,然后选择一个 VPC 端点。有关为亚马逊 OpenSearch 无服务器集合设置 VPC 终端节点的更多信息,请参阅《亚马逊 OpenSearch 服务开发者指南》中的使用接口终端节点 (AWS PrivateLink) 访问亚马逊 OpenSearch 无服务器

  2. 集合创建完后,记下创建知识库时的集合 ARN

  3. 在左侧导航窗格中,选择无服务器下的集合。然后选择向量搜索集合。

  4. 选择索引选项卡。然后选择创建向量索引

  5. 向量索引详细信息部分的向量索引名称字段中,输入索引名称。

  6. 向量字段部分,选择添加向量字段。Amazon Bedrock 会将您的数据来源的向量嵌入数据存储在此字段中。提供以下配置:

    • 向量字段名称 - 提供字段的名称(例如 embeddings)。

    • 引擎 - 用于搜索的向量引擎。选择 faiss

    • 维度 – 向量中的维度数。请参阅下表确定向量应包含的维度数:

      模型 Dimensions
      Titan G1 嵌入式-文本 1,536
      Titan V2 嵌入-文本 1024
      Cohere Embed English 1024
      Cohere Embed 多语言 1024
    • 距离指标 – 用于衡量向量之间相似性的指标。建议使用欧式距离

  7. 展开元数据管理部分并添加两个用于配置向量索引的字段,以存储知识库可通过向量检索的其他元数据。下表介绍了需要为每个字段指定的字段和值:

    字段描述 映射字段 数据类型 可筛选
    Amazon Bedrock 会对数据中的原始文本进行分块,然后将这些文本块存储在此字段中。 您选择的名称(例如 text 字符串 True
    Amazon Bedrock 会将与知识库相关的元数据存储在此字段中。 您选择的名称(例如 bedrock-metadata 字符串 False
  8. 记下创建知识库时为向量索引名称、向量字段名称和元数据管理映射字段名称选择的名称。然后选择创建

创建向量索引后,您可以继续执行创建知识库。下表汇总了您将输入您记下的每条信息的位置。

字段 知识库设置中的相应字段(控制台) 知识库设置中的相应字段 (API) 描述
集合 ARN 集合 ARN collectionARN 向量搜索集合的 Amazon 资源名称(ARN)。
向量索引名称 向量索引名称 vectorIndexName 向量索引的名称。
向量字段名称 向量字段 vectorField 用于为数据来源存储向量嵌入数据的字段的名称。
元数据管理(第一个映射字段) 文本字段 textField 用于存储来自数据来源的原始文本的字段的名称。
元数据管理(第二个映射字段) Bedrock 托管的元数据字段 metadataField 用于存储 Amazon Bedrock 管理的元数据的字段的名称。

有关在 Amazon OpenSearch Serverless 中设置矢量库的更多详细文档,请参阅《亚马逊 OpenSearch 服务开发者指南》中的使用矢量搜索集合

Amazon Aurora (RDS)
  1. 按照使用 Aurora PostgreSQL 作为知识库中的步骤创建 Amazon Aurora 数据库(DB)集群、架构和表。创建表时,请使用以下列和数据类型对表进行配置。您可以使用自己喜欢的列名来代替下表中列出的列名。记下您选择的列名,以便在知识库设置期间提供这些名称。

    列名称 数据类型 知识库设置中的相应字段(控制台) 知识库设置中的相应字段 (API) 描述
    id UUID(主键) 主键 primaryKeyField 包含每条记录的唯一标识符。
    嵌入 Vector 向量字段 vectorField 包含数据来源的向量嵌入。
    chunks 文本 文本字段 textField 包含来自数据来源的原始文本块。
    metadata JSON Bedrock 托管的元数据字段 metadataField 包含执行来源归因以及启用数据摄取和查询所需的元数据
  2. (可选)如果您向文件添加了要筛选的元数据,则还必须为文件中的每个元数据属性创建一列,并指定数据类型(文本、数字或布尔值)。例如,如果数据来源中存在属性 genre,您应添加名为 genre 的列,并指定 text 作为数据类型。在数据摄取期间,这些列将被填入相应的属性值。

  3. 按照使用 A mazon Aurora 进行 AWS Secrets Manager 密码管理中的步骤为您的 Aurora 数据库集群配置密钥和 AWS Secrets Manager

  4. 创建数据库集群并设置密钥后,记下以下信息。

    知识库设置中的字段(控制台) 知识库设置中的字段 (API) 描述
    Amazon Aurora 数据库集群 ARN resourceArn 数据库集群的 ARN。
    数据库名称 databaseName 数据库的名称
    表名称 tableName 数据库集群中的表的名称
    键 ARN credentialsSecretArn 您的数据库集群的 AWS Secrets Manager 密钥的 ARN
Pinecone
注意

如果你使用 Pinecone,您 AWS 同意授权代表您访问指定的第三方来源,以便向您提供矢量商店服务。您有责任遵守适用于使用和传输第三方服务数据的任何第三方条款。

有关设置矢量存储的详细文档,请参阅 Pinecone,请参阅 Pinecone 作为亚马逊 Bedrock 的知识库

请在设置向量存储时记下以下信息,创建知识库时需要填写这些信息:

  • 终端节点 URL-索引管理页面的终端节点 URL。

  • 命@@ 名空间-(可选)用于向数据库写入新数据的命名空间。有关更多信息,请参阅使用命名空间

在创建时还必须提供其他配置 Pinecone 索引:

  • 名称 – 向量索引的名称。选择所选的任何有效名称。稍后,创建知识库时,在向量索引名称字段中输入您选择的名称。

  • 维度 – 向量中的维度数。请参阅下表确定向量应包含的维度数:

    模型 Dimensions
    Titan G1 嵌入式-文本 1,536
    Titan V2 嵌入-文本 1024
    Cohere Embed English 1024
    Cohere Embed 多语言 1024
  • 距离指标 – 用于衡量向量之间相似性的指标。我们建议您针对自己的使用案例试验不同的指标。建议从余弦相似度入手。

要访问您的 Pinecone 索引,你必须提供你的 Pinecone 通过 Amazon Bedrock 的 API 密钥。 AWS Secrets Manager

为你设置一个秘密 Pinecone configuration
  1. 按照创建密钥中的步骤操作,将 AWS Secrets Manager 密钥设置为apiKey,将值设置为 API 密钥以访问您的 Pinecone 索引。

  2. 要查找您的 API 密钥,请打开 Pinecone 控制台并选择 API 密钥

  3. 创建密钥后,请记下 KMS 密钥的 ARN。

  4. 按照 解密包含知识库的矢量存储的 AWS Secrets Manager 密钥的权限 中的步骤,向您的服务角色授予解密 KMS 密钥 ARN 的权限。

  5. 稍后,当您创建知识库时,需要在凭证密钥 ARN 字段中输入该 ARN。

Redis Enterprise Cloud
注意

如果你使用 Redis Enterprise Cloud,您 AWS 同意授权代表您访问指定的第三方来源,以便向您提供矢量商店服务。您有责任遵守适用于使用和传输第三方服务数据的任何第三方条款。

有关设置矢量存储的详细文档,请参阅 Redis Enterprise Cloud,参见集成 Redis Enterprise Cloud 使用 Amazon Bedrock

请在设置向量存储时记下以下信息,创建知识库时需要填写这些信息:

  • 端点 URL – 数据库的公有端点 URL。

  • 向量索引名称 – 数据库的向量索引的名称。

  • 向量字段 – 用于存储向量嵌入数据的字段的名称。请参阅下表确定向量应包含的维度数:

    模型 Dimensions
    Titan G1 嵌入式-文本 1,536
    Titan V2 嵌入-文本 1024
    Cohere Embed English 1024
    Cohere Embed 多语言 1024
  • 文本字段 – Amazon Bedrock 用来存储原始文本块的字段的名称。

  • Bedrock 托管的元数据字段 – Amazon Bedrock 用来存储知识库相关元数据的字段的名称。

要访问您的 Redis Enterprise Cloud 集群,你必须提供你的 Redis Enterprise Cloud 通过 Amazon Bedrock 进行安全配置。 AWS Secrets Manager

为你设置一个秘密 Redis Enterprise Cloud configuration
  1. 按照 Transport Layer Security (TLS) (传输层安全性协议(TLS))中的步骤启用 TLS 以将您的数据库与 Amazon Bedrock 搭配使用。

  2. 按照创建 AWS Secrets Manager 密钥中的步骤操作。使用您的相应值设置以下密钥 Redis Enterprise Cloud 秘密中的配置:

    • username— 访问您的用户名 Redis Enterprise Cloud 数据库。要查找您的用户名,请在 Redis 控制台中查看数据库的安全部分。

    • password— 访问您的密码 Redis Enterprise Cloud 数据库。要查找您的密码,请在 Redis 控制台中查看数据库的安全部分。

    • serverCertificate – 来自 Redis Cloud 证书颁发机构的证书的内容。按照下载证书中的步骤从 Redis 管理控制台下载服务器证书。

    • clientPrivateKey – 来自 Redis Cloud 证书颁发机构的证书的私钥。按照下载证书中的步骤从 Redis 管理控制台下载服务器证书。

    • clientCertificate – 来自 Redis Cloud 证书颁发机构的证书的公钥。按照下载证书中的步骤从 Redis 管理控制台下载服务器证书。

  3. 创建密钥后,请记下它的 ARN。稍后,当您创建知识库时,需要在凭证密钥 ARN 字段中输入该 ARN。

MongoDB Atlas
注意

如果您使用 MongoDB Atlas,则表示您同意 AWS 授权代表您访问指定的第三方来源,以便向您提供矢量存储服务。您有责任遵守适用于使用和传输第三方服务数据的任何第三方条款。

有关在 MongoDB Atlas 中设置向量存储的详细文档,请参阅 MongoDB Atlas as a knowledge base for Amazon Bedrock

设置向量存储时,请记下以下信息,您在创建知识库时需要添加它们:

  • 端点 URL – MongoDB Atlas 集群的端点 URL。

  • 数据库名称 – MongoDB Atlas 集群中数据库的名称。

  • 集合名称 – 数据库中数据集的名称。

  • 凭证密钥 ARN – 您在 AWS Secrets Manager 中创建的密钥的 Amazon 资源名称(ARN),该密钥包含 MongoDB Atlas 集群中数据库用户的用户名和密码。

  • (可选)凭证密钥 ARN 的客户自主管理型 KMS 密钥 - 如果您对凭证密钥 ARN 进行了加密,请提供 KMS 密钥,以便 Amazon Bedrock 对其进行解密。

创建 MongoDB Atlas 索引时,还必须为字段映射提供其他配置:

  • 向量索引名称 – 集合中 MongoDB Atlas 向量搜索索引的名称。

  • 向量字段名称 – Amazon Bedrock 应将向量嵌入数据存储到的字段的名称。

  • 文本字段名称 – Amazon Bedrock 应将原始块文本存储到的字段的名称。

  • 元数据字段名称 – Amazon Bedrock 应将源属性元数据存储到的字段的名称。

(可选)要让 Amazon Bedrock 通过 AW PrivateLink S 连接到你的 MongoDB Atlas 集群,请参阅使用 Amazon Bedrock 使用 MongoDB Atlas 的 RAG 工作流程