

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

# 在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库
<a name="knowledge-base-create"></a>

通过连接到数据来源来创建知识库时，您需要设置或指定以下内容：
+ 定义和标识知识库的一般信息
+ 具有知识库权限的服务角色。
+ 知识库的配置，包括在转换来自数据来源的数据时使用的嵌入模型、在其中存储嵌入的服务的存储配置，以及存储多模态数据的 S3 位置（可选）。

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

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

## 使用控制台
<a name="knowledge-base-create-console"></a>

**设置知识库**

1. 使用有权使用 Amazon Bedrock 控制台的 IAM 身份登录。AWS 管理控制台然后，在 [https://console.aws.amazon.com/](https://console.aws.amazon.com/bedrock)bedrock 上打开 Amazon Bedrock 控制台。

1. 在左侧导航窗格中，选择**知识库**。

1. 在**知识库**部分中，选择“创建”按钮，然后选择使用向量存储创建知识库。

1. （可选）更改默认名称并为知识库提供描述。

1. 选择一个向 Amazon Bedrock 提供访问其他所需AWS服务的权限的 AWS Identity and Access Management (IAM) 角色。您可以让 Amazon Bedrock 创建服务角色，也可以选择您[已为 Neptune Analytics 创建的自定义角色](kb-permissions.md#kb-permissions-neptune)。

1. 选择要将知识库连接到的数据来源。

1. （可选）向知识库添加标签。有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。

1. （可选）配置要将知识库的活动日志传输到的服务。

1. 转到下一部分，然后按照[将数据来源连接到知识库](data-source-connectors.md)中的步骤配置数据来源。

1. 在**嵌入模型**部分中，执行以下操作：

   1. 选择嵌入模型以便将您的数据转换为向量嵌入。对于多模态数据（图像、音频和视频），请选择多模态嵌入模型，例如 Amazon Titan 多模态嵌入 G1 或 Cohere Embed v3。
**注意**  
使用 Amazon Titan 多模式嵌入式 G1 时，必须提供 S3 内容存储桶，并且只能使用默认解析器。该模型针对图像搜索用例进行了优化。有关在多式联运方式之间进行选择的全面指导，请参阅[为多模式内容建立知识库](kb-multimodal.md)。

   1. （可选）展开**其它配置**部分以查看以下配置选项（并非所有模型都支持所有配置）：
      + **嵌入类型**：是将数据转换为浮点（float32）向量嵌入（精度较高，但成本较高），还是转换为二进制向量嵌入（精度较低，但成本较低）。要了解哪些嵌入模型支持二进制向量，请参阅[支持的嵌入模型](knowledge-base-supported.md)。
      + **向量维度** – 更高的值会提高准确率，但会增加成本和延迟。

1. 在**向量数据库**部分，执行以下操作：

   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 知识库](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.quickcreatekb.html)。
        + **Amazon Neptune Analytics 分析数据库引擎** – Amazon Bedrock 使用检索增强生成（RAG）技术并与图表相结合，来增强生成式人工智能应用程序，使得最终用户能够获得更准确、更全面的响应。
        + **Amazon S3 Vectors** – Amazon Bedrock 知识库创建 S3 向量存储桶和向量索引，用于存储从您的数据来源生成的嵌入内容。

          你可以为所有AWS 区域同时提供 Amazon Bedrock 和 Amazon S3 矢量的 Amazon S3 矢量创建知识库。有关更多信息，请参阅《Amazon S3 用户指南》**中的 [Amazon S3 Vectors](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html)。
**注意**  
将 Amazon S3 矢量与 Amazon Bedrock 知识库配合使用时，每个向量最多可以附加 1 KB 的自定义元数据（包括可筛选和不可筛选的元数据）和 35 个元数据密钥。有关元数据限制的详细信息，请参阅[元数据支持](knowledge-base-setup.md#metadata-support)中的[将您创建的向量存储用于知识库的先决条件](knowledge-base-setup.md)。
      + **选择已创建的向量存储** – 选择支持的向量存储，然后在向量索引中标识向量字段名称和元数据字段名称。有关更多信息，请参阅 [将您创建的向量存储用于知识库的先决条件](knowledge-base-setup.md)。
**注意**  
如果您的数据源是 Confluence SharePoint、Microsoft 或 Salesforce 实例，则唯一支持的矢量存储服务是 Amazon Serverless。 OpenSearch 

   1. （可选）展开**其他配置**部分并修改所有相关配置。

1. 如果您的数据来源包含图像，请指定一个 Amazon S3 URI，用于存储解析器将从**多模态存储目标**中的数据内提取的图像。图像可以在查询期间返回。您也可以选择客户托管密钥而不是默认密钥AWS 托管式密钥来加密您的数据。
**注意**  
只有 Amazon S3 和自定义数据来源支持多模态数据。
**注意**  
使用多模态嵌入模型时：  
Amazon Titan 多模态嵌入 G1 需要 S3 内容存储桶，并且使用默认解析器最适合处理仅限图像的数据集
Cohere Embed v3 支持混合文本和图像数据集，可与任何解析器配置一起使用
对于图像搜索用例，由于令牌限制，请避免在 Titan G1 中使用 Bedrock 数据自动化 (BDA) 或基础模型解析器
多模式存储目标会创建文件副本以供检索，这可能会产生额外的存储费用

1. 选择**下一步**并查看知识库的详细信息。在继续创建知识库之前，您可以编辑任何部分。
**注意**  
创建知识库所用的时间取决于您的特定配置。知识库创建完成后，知识库的状态将更改为“已就绪”或“可用”。  
知识库准备就绪并可供使用后，您可以首次同步数据来源，并在想要更新数据来源时进行同步。在控制台中选择知识库，然后在数据来源概述部分中选择**同步**。

## 使用 API
<a name="knowledge-base-create-api"></a>

要创建知识库，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 请求。

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

以下字段是必填字段：


****  

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

以下字段是可选字段：


****  

| 字段 | 使用案例 | 
| --- | --- | 
| 描述 | 知识库的描述。 | 
| clientToken | 用于确保 API 请求仅完成一次。有关更多信息，请参阅[确保幂等性](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)。 | 
| 标签 | 将标签与流相关联。有关更多信息，请参阅 [标记 Amazon Bedrock 资源](tagging.md)。 | 

在映射到[KnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_KnowledgeBaseConfiguration.html)对象的`knowledgeBaseConfiguration`字段中，在`type`字段`VECTOR`中指定并包含一个[VectorKnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorKnowledgeBaseConfiguration.html)对象。在对象中包含以下字段：
+ `embeddingModelArn` – 要使用的嵌入模型的 ARN。
+ `embeddingModelConfiguration` – 嵌入模型的配置。要查看您可以为每种支持的模型指定的可能值，请参阅 [Amazon Bedrock 知识库支持的模型和区域](knowledge-base-supported.md)。
+ （如果您计划在知识库中包含多模式数据，包括图像、数字、图表或表格）`supplementalDataStorageConfiguration`— 映射到[SupplementalDataStorageLocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_SupplementalDataStorageLocation.html)对象，您可以在其中指定存储提取数据的 S3 位置。有关更多信息，请参阅 [数据来源的解析选项](kb-advanced-parsing.md)。

在映射到[StorageConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StorageConfiguration.html)对象的`storageConfiguration`字段中，指定您计划在`type`字段中连接的矢量存储，并包括与该矢量存储对应的字段。有关您需要提供的信息的详细信息，请参阅中的每种矢量存储配置类型。[StorageConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StorageConfiguration.html)

以下是创建连接到 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"
      }
   }
}
```

**Topics**
+ [将数据来源连接到知识库](data-source-connectors.md)
+ [自定义数据来源的摄取](kb-data-source-customize-ingestion.md)
+ [为知识库设置安全配置](kb-create-security.md)