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

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

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

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

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

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

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

注意

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

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

设置知识库
  1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。AWS 管理控制台然后,在 https://console.aws.amazon.com/bedrock 上打开 Amazon 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. 选择嵌入模型以便将您的数据转换为向量嵌入。对于多模态数据(图像、音频和视频),请选择多模态嵌入模型,例如 Amazon Titan 多模态嵌入 G1 或 Cohere Embed v3。

      注意

      使用 Amazon Titan 多模式嵌入式 G1 时,必须提供 S3 内容存储桶,并且只能使用默认解析器。该模型针对图像搜索用例进行了优化。有关在多式联运方式之间进行选择的全面指导,请参阅为多模式内容建立知识库

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

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

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

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

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

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

        注意

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

        • Amazon OpenSearch Serverless — Amazon Bedrock 知识库创建了亚马逊 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 向量存储桶和向量索引,用于存储从您的数据来源生成的嵌入内容。

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

          注意

          将 Amazon S3 矢量与 Amazon Bedrock 知识库配合使用时,每个向量最多可以附加 1 KB 的自定义元数据(包括可筛选和不可筛选的元数据)和 35 个元数据密钥。有关元数据限制的详细信息,请参阅元数据支持中的将您创建的向量存储用于知识库的先决条件

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

        注意

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

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

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

    注意

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

    注意

    使用多模态嵌入模型时:

    • Amazon Titan 多模态嵌入 G1 需要 S3 内容存储桶,并且使用默认解析器最适合处理仅限图像的数据集

    • Cohere Embed v3 支持混合文本和图像数据集,可与任何解析器配置一起使用

    • 对于图像搜索用例,由于令牌限制,请避免在 Titan G1 中使用 Bedrock 数据自动化 (BDA) 或基础模型解析器

    • 多模式存储目标会创建文件副本以供检索,这可能会产生额外的存储费用

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

    注意

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

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

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

注意

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

以下字段是必填字段:

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

以下字段是可选字段:

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

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

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

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

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

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

以下是创建连接到 Amazon OpenSearch Serverless 集合的知识库的示例请求。来自互联数据源的数据将通过 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" } } }