在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库 - Amazon Bedrock

在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库

通过连接到数据来源来创建知识库时,您需要设置或指定以下内容:

  • 定义和标识知识库的一般信息

  • 具有知识库权限的服务角色。

  • 知识库的配置,包括在转换来自数据来源的数据时使用的嵌入模型、在其中存储嵌入的服务的存储配置,以及存储多模态数据的 S3 位置(可选)。

注意

您无法以根用户身份创建知识库。在开始这些步骤之前,请使用 IAM 用户登录。

展开与您的使用案例相对应的部分:

设置知识库
  1. 采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后,通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock

  2. 在左侧导航窗格中,选择知识库

  3. 知识库部分中,选择“创建”按钮,然后选择使用向量存储创建知识库。

  4. (可选)更改默认名称并为知识库提供描述。

  5. 选择一个可为 Amazon Bedrock 提供访问其他 AWS 服务的权限的 AWS Identity and Access Management(IAM)角色。您可以让 Amazon Bedrock 创建服务角色,也可以选择您已为 Neptune Analytics 创建的自定义角色

  6. 选择要将知识库连接到的数据来源。

  7. (可选)向知识库添加标签。有关更多信息,请参阅 标记 Amazon Bedrock 资源

  8. (可选)配置要将知识库的活动日志传输到的服务。

  9. 转到下一部分,然后按照将数据来源连接到知识库中的步骤配置数据来源。

  10. 嵌入模型部分中,执行以下操作:

    1. 选择嵌入模型以便将您的数据转换为向量嵌入。

    2. (可选)展开其它配置部分以查看以下配置选项(并非所有模型都支持所有配置):

      • 嵌入类型:是将数据转换为浮点(float32)向量嵌入(精度较高,但成本较高),还是转换为二进制向量嵌入(精度较低,但成本较低)。要了解哪些嵌入模型支持二进制向量,请参阅支持的嵌入模型

      • 向量维度 – 更高的值会提高准确率,但会增加成本和延迟。

  11. 向量数据库部分,执行以下操作:

    1. 选择向量存储来存储将用于查询的向量嵌入。您有以下选项:

      • 快速创建新的向量存储 – 选择一个可用的向量存储,供 Amazon Bedrock 创建向量。您也可以选择为向量存储配置 AWS KMS 密钥加密。

        注意

        使用此选项时,Amazon Bedrock 会自动处理每个向量存储的元数据放置。

        • Amazon OpenSearch 无服务器 – Amazon Bedrock 知识库创建 Amazon OpenSearch 无服务器向量搜索集合和索引,并为您配置必需的字段。

        • Amazon Aurora PostgreSQL 无服务器 – Amazon Bedrock 设置了 Amazon Aurora PostgreSQL 无服务器向量存储。此过程从 Amazon S3 存储桶中获取非结构化文本数据,将其转换为文本块和向量,然后将转换后的对象存储在 PostgreSQL 数据库中。有关更多信息,请参阅为 Amazon Bedrock 快速创建 Aurora PostgreSQL 知识库

        • Amazon Neptune Analytics 分析数据库引擎 – Amazon Bedrock 使用检索增强生成(RAG)技术并与图表相结合,来增强生成式人工智能应用程序,使得最终用户能够获得更准确、更全面的响应。

        • Amazon S3 Vectors – Amazon Bedrock 知识库创建 S3 向量存储桶和向量索引,用于存储从您的数据来源生成的嵌入内容。

          重要

          Amazon S3 Vectors 与 Amazon Bedrock 知识库的集成目前为预览版,可能随时发生变化。

          您可以在所有同时提供 Amazon Bedrock 和 Amazon S3 Vectors 的 AWS 区域中,为 Amazon S3 Vectors 创建知识库。有关更多信息,请参阅《Amazon S3 用户指南》中的 Amazon S3 Vectors

          注意

          当 Amazon Bedrock 知识库为您创建向量索引时,它最多可以为每个向量附加 40 KB 的元数据。在此 40 KB 中,最多可以将 2 KB 用作可筛选的元数据。

          Amazon Bedrock 会将文本作为 AMAZON_BEDROCK_TEXT 键,存储在不可筛选的空间中。Amazon Bedrock 添加的元数据存储在可筛选的元数据空间中。有关 S3 向量存储桶元数据限制的更多信息,请参阅在 Amazon Bedrock 知识库中使用 Amazon S3 Vectors 的先决条件

      • 选择已创建的向量存储 – 选择支持的向量存储,然后在向量索引中标识向量字段名称和元数据字段名称。有关更多信息,请参阅 将您创建的向量存储用于知识库的先决条件

        注意

        如果您的数据来源是 Confluence、Microsoft SharePoint 或 Salesforce 实例,则唯一支持的向量存储服务是 Amazon OpenSearch 无服务器。

    2. (可选)展开其他配置部分并修改所有相关配置。

  12. 如果您的数据来源包含图像,请指定一个 Amazon S3 URI,用于存储解析器将从多模态存储目标中的数据内提取的图像。图像可以在查询期间返回。您也可以选择使用客户自主管理型密钥加密您的数据,而不是使用 AWS 托管式密钥。

    注意

    只有 Amazon S3 和自定义数据来源支持多模态数据。

  13. 选择下一步并查看知识库的详细信息。在继续创建知识库之前,您可以编辑任何部分。

    注意

    创建知识库所用的时间取决于您的特定配置。知识库创建完成后,知识库的状态将更改为“已就绪”或“可用”。

    知识库准备就绪并可供使用后,您可以首次同步数据来源,并在想要更新数据来源时进行同步。在控制台中选择知识库,然后在数据来源概述部分中选择同步

要创建知识库,请使用 Amazon Bedrock 代理构建时端点发送 CreateKnowledgeBase 请求。

注意

如果您希望让 Amazon Bedrock 为您创建和管理向量存储,请使用控制台。有关更多信息,请展开本主题中的使用控制台部分。

以下字段是必填字段:

字段 Basic description
名称 知识库的名称
roleArn Amazon Bedrock 知识库服务角色的 ARN。
knowledgeBaseConfiguration 包含知识库的配置。请参阅以下详细信息。
storageConfiguration (仅在连接到非结构化数据来源时才需要)。包含您选择的数据来源服务的配置。

以下字段是可选字段:

字段 应用场景
description 知识库的描述。
clientToken 用于确保 API 请求仅完成一次。有关更多信息,请参阅确保幂等性
tags 将标签与流相关联。有关更多信息,请参阅 标记 Amazon Bedrock 资源

在映射到 KnowledgeBaseConfiguration 对象的 knowledgeBaseConfiguration 字段中,在 type 字段中指定 VECTOR,并包括 VectorKnowledgeBaseConfiguration 对象。在对象中包含以下字段:

  • embeddingModelArn – 要使用的嵌入模型的 ARN。

  • embeddingModelConfiguration – 嵌入模型的配置。要查看您可以为每种支持的模型指定的可能值,请参阅 Amazon Bedrock 知识库支持的模型和区域

  • (如果您计划在知识库中包含多模态数据,包括图像、数字、图表或表格)supplementalDataStorageConfiguration – 映射到 SupplementalDataStorageLocation 对象,您可以在其中指定用于存储所提取数据的 S3 位置。有关更多信息,请参阅 数据来源的解析选项

在映射到 StorageConfiguration 对象的 storageConfiguration 字段中,在 type 字段中指定您计划连接到向量存储,并包括与该向量存储对应的字段。有关所需提供信息的详情,请参阅 StorageConfiguration 中的每种向量存储的配置类型。

下面显示一个示例请求,该请求创建连接到 Amazon OpenSearch 无服务器集合的知识库。来自连接的数据来源的数据将通过 Amazon Titan Text Embeddings V2 转换为二进制向量嵌入,并且解析器提取的多模态数据设置为存储在名为 MyBucket 的存储桶中。

PUT /knowledgebases/ HTTP/1.1 Content-type: application/json { "name": "MyKB", "description": "My knowledge base", "roleArn": "arn:aws:iam::111122223333:role/service-role/AmazonBedrockExecutionRoleForKnowledgeBase_123", "knowledgeBaseConfiguration": { "type": "VECTOR", "vectorKnowledgeBaseConfiguration": { "embeddingModelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0", "embeddingModelConfiguration": { "bedrockEmbeddingModelConfiguration": { "dimensions": 1024, "embeddingDataType": "BINARY" } }, "supplementalDataStorageConfiguration": { "storageLocations": [ { "s3Location": { "uri": "arn:aws:s3:::MyBucket" }, "type": "S3" } ] } } }, "storageConfiguration": { "opensearchServerlessConfiguration": { "collectionArn": "arn:aws:aoss:us-east-1:111122223333:collection/abcdefghij1234567890", "fieldMapping": { "metadataField": "metadata", "textField": "text", "vectorField": "vector" }, "vectorIndexName": "MyVectorIndex" } } }