在支持的矢量存储中为您的知识库设置矢量索引 - Amazon Bedrock

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

在支持的矢量存储中为您的知识库设置矢量索引

您可以通过创建用于存储以下数据的字段来设置支持的向量索引,从而对数据源进行索引。

  • 由您选择的嵌入模型从数据源中的文本生成的向量。

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

  • Amazon Bedrock 管理的与您的知识库相关的元数据。

  • (如果您使用 Amazon Aurora 数据库并想要设置筛选)与源文件关联的元数据。如果您计划在其他矢量存储中设置过滤,则无需设置这些字段进行筛选。

选择与您将用于创建矢量索引的服务对应的选项卡。

注意

如果您希望让 Amazon Bedrock 在 Amazon OpenSearch Serverless 中自动为您创建矢量索引,请跳过此先决条件并继续操作。创建知识库要了解如何设置向量索引,请选择与所选方法对应的选项卡,然后按照步骤操作。

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

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

      模型 尺寸
      TitanG1 嵌入-文本 1,536
      CohereEmbed英语 1024
      CohereEmbed多语言 1024
    • 距离指标 – 用于衡量向量之间相似性的指标。我们建议使用欧几里得

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

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

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

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

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

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

    列名称 数据类型 知识库设置中的相应字段(控制台) 知识库设置中的相应字段 (API) 描述
    id UUID(主键) 主键 primaryKeyField 包含每条记录的唯一标识符。
    嵌入 Vector 向量字段 vectorField 包含数据来源的向量嵌入。
    文本 文本字段 textField 包含来自数据来源的原始文本块。
    metadata JSON 基岩管理的元数据字段 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 作为 Amazon Bedrock 的知识库

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

  • 连接字符串-索引管理页面的端点 URL。

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

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

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

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

    模型 尺寸
    TitanG1 嵌入-文本 1,536
    CohereEmbed英语 1024
    CohereEmbed多语言 1024
  • 距离指标 – 用于衡量向量之间相似性的指标。我们建议您针对自己的使用案例试验不同的指标。我们建议从余弦相似度开始。

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

为您的Pinecone配置设置密钥
  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。

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

  • 向量字段-存储矢量嵌入的字段的名称。请参阅下表以确定向量应包含多少维度。

    模型 尺寸
    TitanG1 嵌入-文本 1,536
    CohereEmbed英语 1024
    CohereEmbed多语言 1024
  • 文本字段 — Amazon Bedrock 存储原始文本块的字段名称。

  • 基岩管理的元数据字段 — Amazon Bedrock 存储与您的知识库相关的元数据的字段名称。

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

为您的Redis Enterprise Cloud配置设置密钥
  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 作为亚马逊 Bedrock 的知识库。

设置矢量存储时,请注意在创建知识库时要添加的以下信息:

  • 终端节点 URL — 您的 MongoDB Atlas 集群的终端节点网址。

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

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

  • 凭证密钥 ARN — 您在 AWS Secrets Manager 中创建的密钥的亚马逊资源名称 (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 工作流程