

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

# 创建托管知识库
<a name="kb-managed-create"></a>

当您创建托管知识库时，Amazon Bedrock 会为您 AgentCore 管理存储、索引和检索基础设施。默认情况下，使用服务管理的嵌入模型，无需选择或配置模型。您可以选择提供自己的 Bedrock 嵌入模型。您也可以选择提供 KMS 密钥来加密托管矢量存储。

创建知识库后，将其连接到数据源并开始摄取。有关连接数据源的详细信息，请参阅 [Connect 数据源](kb-managed-connect-ds.md)。要同步数据源，请使用 `StartIngestionJob` API。有关更多信息，请参阅 [将您的数据与 Amazon Bedrock 知识库同步](kb-data-source-sync-ingest.md)。

要了解如何创建托管知识库，请选择首选方法的选项卡：

------
#### [ Console ]

**创建托管知识库**

1. 登录 AWS 管理控制台 并导航至 Amazon Bedrock AgentCore > **Built-in 工具** > **知识库**。

1. 选择 “**创建托管知识库**”。

1. （可选）展开**知识库详细信息**部分**的其他配置**以配置以下内容：
   + 添加描述。
   + 选择嵌入模型类型：
     + **托管**（默认）：使用服务管理的嵌入模型。无需选择或配置型号。
     + **自定义**：选择基岩嵌入模型。选择模型以打开模型选择器，其中显示了可用的提供商（Amazon、Cohere）和型号。
   + 配置 IAM 权限：选择**创建并使用新的服务角色**（推荐）或选择现有角色。
   + 为托管矢量存储配置 AWS KMS 加密（默认情况下为AWS 托管密钥，或选择自定义 KMS 密钥）。

1. 在 “**数据源**” 下，提供数据源名称。

1. 从下拉列表中选择您的数据源类型：Amazon S3、Confluence、自定义、Google 云端硬盘、 OneDrive SharePoint、或 Web Crawler。

1. 为您选定的数据源类型配置数据源连接设置。

1. （可选）展开**内容解析和分块**以配置以下内容：
   + 默认情况下，解析策略设置为**托管解析器**。
   + 从下拉列表中选择文本分块策略：
     + **默认分块**（推荐）：将文本拆分为固定大小的块。
     + **Fixed-size chunking**：将文本拆分为你设定的近似标记大小。
     + **不分块**：适用于预处理或预拆分的文档。

1. （可选）展开**高级配置**以配置高级索引。在 “**内容索引**” 下，默认索引来自普通文档的基于文本的内容。为其他模式启用高级索引：
   + **文档中的视觉内容**：处理.pdf、.docx、.ppt、.pptx 文件中的嵌入式视觉对象。
   + **音频文件**：处理.mp3、.wav、.m4a、.flac、.ogg 文件。
   + **视频文件**：处理.mp4、.mov、.m4v 文件。

   （可选）设置最大文件大小 (MB) 并配置文档删除保护。

1. （可选）配置日志传输，将知识库摄取日志发送到日 CloudWatch 志、Amazon S3 或 Firehose 等目的地。

1. 选择 “**创建知识库**”。

1. 等待知识库和数据源创建完成（2—5 分钟）。如果您使用客户托管密钥创建托管知识库，则创建可能需要更长的时间。

------
#### [ API ]

以下是创建托管知识库并使用带有 AWS CLI 或支持的 SDK（例如 Python）的 API 配置数据源的示例。调用后 [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)，您可以调[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)用创建数据源，其中包含您的连接信息`dataSourceConfiguration`。

要了解可以通过添加可选的 `vectorIngestionConfiguration` 字段来应用于摄取的定制设置，请参阅[自定义数据来源的摄取](kb-managed-customize-ingestion.md)。

**AWS Command Line Interface**

**步骤 1：创建知识库**

使用托管嵌入模型（默认）：

```
aws bedrock-agent create-knowledge-base \
 --name "{{my-managed-kb}}" \
 --role-arn "{{arn:aws:iam::123456789012:role/BedrockKBRole}}" \
 --description "{{My managed knowledge base}}" \
 --knowledge-base-configuration file://kb-config.json

kb-config.json
{
    "type": "MANAGED",
    "managedKnowledgeBaseConfiguration": {
        "embeddingModelType": "MANAGED"
    }
}
```

使用自定义嵌入模型（客户提供的 Bedrock 模型）：

```
aws bedrock-agent create-knowledge-base \
 --name "{{my-custom-embed-kb}}" \
 --role-arn "{{arn:aws:iam::123456789012:role/BedrockKBRole}}" \
 --description "{{My managed knowledge base with custom embedding}}" \
 --knowledge-base-configuration file://kb-config.json

kb-config.json
{
    "type": "MANAGED",
    "managedKnowledgeBaseConfiguration": {
        "embeddingModelType": "CUSTOM",
        "embeddingModelArn": "{{arn:aws:bedrock:us-west-2::foundation-model/amazon.titan-embed-text-v2:0}}",
        "embeddingModelConfiguration": {
            "bedrockEmbeddingModelConfiguration": {
                "dimensions": 1024
            }
        }
    }
}
```

**注意**  
省略`embeddingModelType`时，默认为`MANAGED`。使用时`MANAGED`，不得指定`embeddingModelArn`或`embeddingModelConfiguration`。使用时`CUSTOM`，两个字段均为必填字段。

**步骤 2：创建数据源**

```
aws bedrock-agent create-data-source \
 --name "{{S3-connector}}" \
 --description "{{S3 data source connector for Amazon Bedrock to use content in S3}}" \
 --knowledge-base-id "{{your-knowledge-base-id}}" \
 --data-source-configuration file://bedrock-s3-managed-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"parsingConfiguration":{"parsingStrategy":"SMART_PARSING"}}'

bedrock-s3-managed-connector-configuration.json
{
    "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR",
    "managedKnowledgeBaseConnectorConfiguration": {
        "mediaExtractionConfiguration": {
            "imageExtractionConfiguration": {
                "imageExtractionStatus": "ENABLED"
            }
        },
        "connectorParameters": {
            "type": "S3",
            "version": "1",
            "connectionConfiguration": {
                "bucketName": "{{your-test-s3-bucket}}",
                "bucketOwnerAccountId": "{{123456789012}}"
            },
            "deletionProtectionConfiguration": {
                "enableDeletionProtection": false
            }
        }
    }
}
```

------

## 嵌入模型选项
<a name="kb-managed-embedding-models"></a>

托管知识库支持两种嵌入模型类型：
+ **托管嵌入**（默认）-自动使用服务管理的嵌入模型。您无需选择模型、配置尺寸或管理 Bedrock 嵌入服务限制。该服务以透明的方式处理模型选择、托管和扩展。
+ **自定义嵌入** — 您可以提供自己的基岩嵌入模型 ARN。使用自定义嵌入模型时，必须指定模型尺寸 (1024) 和 float32 嵌入数据类型。支持以下基岩嵌入模型：
  + Amazon Titan 文本嵌入 V2
  + Cohere 嵌入英语 v3
  + Cohere 嵌入多语言 v3
  + Cohere Embed v4
  + Amazon Nova 多模式嵌入式

**注意**  
创建知识库后，您无法更改嵌入模型类型。要在托管嵌入和自定义嵌入之间切换，必须创建新的知识库。

**重要**  
如果您使用自定义嵌入模型创建知识库，则该知识库无法使用托管重新排名。要使用托管重新排名，请使用默认的托管嵌入模型创建知识库。

## 支持的数据源连接器
<a name="kb-managed-connectors"></a>

托管知识库支持以下数据源连接器：
+ Amazon S3
+ Confluence
+ 微软 SharePoint
+ Google Drive
+ 微软 OneDrive
+ 网络爬虫
+ 自定义连接器

有关配置数据源连接器的信息，请参阅 [Connect 数据源](kb-managed-connect-ds.md)。