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