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

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

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

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

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

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

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

注意

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

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

建立知识库
  1. AWS Management Console 使用具有 Amazon Bedrock 权限的 IAM 角色登录,然后通过以下网址打开 Amazon Bedrock 控制台。https://console.aws.amazon.com/bedrock/

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

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

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

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

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

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

  8. (可选)配置要为知识库提供活动日志的服务。

  9. 转至下一节并按照中的将数据源连接到您的知识库步骤配置数据源。

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

    1. 选择嵌入模型,将您的数据转换为矢量嵌入。

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

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

      • 矢量维度-值越高,精度越高,但会增加成本和延迟。

  11. 在 “矢量数据库” 部分,执行以下操作:

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

      • 快速创建新的矢量存储库 — 选择一个可用的矢量库供亚马逊 Bedrock 创建。

        • Amazon OpenSearch Serverless — Amazon Bedrock 知识库创建了亚马逊 OpenSearch 无服务器矢量搜索集合和索引,并为您配置必填字段。

        • 亚马逊 Aurora PostgreSQL Serverless — 亚马逊 Bedrock 建立了亚马逊 Aurora PostgreSQL 无服务器矢量商店。此过程从 Amazon S3 存储桶中获取非结构化文本数据,将其转换为文本块和矢量,然后将其存储在 PostgreSQL 数据库中。有关更多信息,请参阅为亚马逊 Bedro ck 快速创建 Aurora PostgreSQL 知识库。

        • Amazon Neptune Analytics — Amazon Bedrock 使用检索增强生成 (RAG) 技术和图表来增强生成人工智能应用程序,从而使最终用户能够获得更准确、更全面的响应。

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

        注意

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

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

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

    注意

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

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

    注意

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

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

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

注意

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

以下字段是必填字段:

字段 Basic description
名称 知识库的名称
roleArn 亚马逊 Bedrock 知识库服务角色的 ARN。
knowledgeBaseConfiguration 包含知识库的配置。详情请见下文。
存储配置 (仅在连接到非结构化数据源时才需要)。包含您选择的数据源服务的配置。

以下字段是可选字段:

字段 应用场景
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 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" } } }