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