在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库
通过连接到数据来源来创建知识库时,您需要设置或指定以下内容:
-
定义和标识知识库的一般信息
-
具有知识库权限的服务角色。
-
知识库的配置,包括在转换来自数据来源的数据时使用的嵌入模型、在其中存储嵌入的服务的存储配置,以及存储多模态数据的 S3 位置(可选)。
注意
您无法以根用户身份创建知识库。在开始这些步骤之前,请使用 IAM 用户登录。
展开与您的使用案例相对应的部分:
设置知识库
-
采用有权使用 Amazon Bedrock 控制台的 IAM 身份登录 AWS 管理控制台。然后,通过以下网址打开 Amazon Bedrock 控制台:https://console.aws.amazon.com/bedrock
。 -
在左侧导航窗格中,选择知识库。
-
在知识库部分中,选择“创建”按钮,然后选择使用向量存储创建知识库。
-
(可选)更改默认名称并为知识库提供描述。
-
选择一个可为 Amazon Bedrock 提供访问其他 AWS 服务的权限的 AWS Identity and Access Management(IAM)角色。您可以让 Amazon Bedrock 创建服务角色,也可以选择您已为 Neptune Analytics 创建的自定义角色。
-
选择要将知识库连接到的数据来源。
-
(可选)向知识库添加标签。有关更多信息,请参阅 标记 Amazon Bedrock 资源。
-
(可选)配置要将知识库的活动日志传输到的服务。
-
转到下一部分,然后按照将数据来源连接到知识库中的步骤配置数据来源。
-
在嵌入模型部分中,执行以下操作:
-
选择嵌入模型以便将您的数据转换为向量嵌入。
-
(可选)展开其它配置部分以查看以下配置选项(并非所有模型都支持所有配置):
-
嵌入类型:是将数据转换为浮点(float32)向量嵌入(精度较高,但成本较高),还是转换为二进制向量嵌入(精度较低,但成本较低)。要了解哪些嵌入模型支持二进制向量,请参阅支持的嵌入模型。
-
向量维度 – 更高的值会提高准确率,但会增加成本和延迟。
-
-
-
在向量数据库部分,执行以下操作:
-
选择向量存储来存储将用于查询的向量嵌入。您有以下选项:
-
快速创建新的向量存储 – 选择一个可用的向量存储,供 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 无服务器。
-
-
(可选)展开其他配置部分并修改所有相关配置。
-
-
如果您的数据来源包含图像,请指定一个 Amazon S3 URI,用于存储解析器将从多模态存储目标中的数据内提取的图像。图像可以在查询期间返回。您也可以选择使用客户自主管理型密钥加密您的数据,而不是使用 AWS 托管式密钥。
注意
只有 Amazon S3 和自定义数据来源支持多模态数据。
-
选择下一步并查看知识库的详细信息。在继续创建知识库之前,您可以编辑任何部分。
注意
创建知识库所用的时间取决于您的特定配置。知识库创建完成后,知识库的状态将更改为“已就绪”或“可用”。
知识库准备就绪并可供使用后,您可以首次同步数据来源,并在想要更新数据来源时进行同步。在控制台中选择知识库,然后在数据来源概述部分中选择同步。
要创建知识库,请使用 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" } } }