

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

# 在 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)

# 将数据来源连接到知识库
<a name="data-source-connectors"></a>

完成知识库的配置后，您需要将支持的数据来源连接到知识库。

Amazon Bedrock 知识库支持通过查询引擎连接到非结构化数据来源或结构化数据存储。选择一个主题以了解如何连接到相应类型的数据来源：

**多模式内容支持**  
只有 Amazon S3 和自定义数据源支持多模式内容（图像、音频和视频文件）。其他数据源类型将在摄取期间跳过多模态文件。有关使用多式联运内容的全面指导，请参阅[为多模式内容建立知识库](kb-multimodal.md)。

要了解如何使用 Amazon Bedrock 控制台连接到数据来源，请在本页面底部选择与您的数据来源类型对应的主题：

要使用 Amazon Bedrock API 连接到数据源，请使用亚马逊 B [edrock 运行时终端节点代理](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-rt)发送[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)请求。

以下字段是必填字段：


****  

| 字段 | Basic description | 
| --- | --- | 
| knowledgeBaseId | 知识库的 ID。 | 
| name | 知识库的名称。 | 
| dataSourceConfiguration | 在 type 字段中指定数据来源服务或类型，并添加相应的字段。有关特定于服务的配置的更多详细信息，请从本页面底部的主题中选择该服务的主题。 | 

以下字段是可选字段：


****  

| 字段 | 使用案例 | 
| --- | --- | 
| 描述 | 提供数据来源的描述。 | 
| vectorIngestionConfiguration | 包含用于自定义摄取过程的配置。有关更多信息，请参阅 [自定义数据来源的摄取](kb-data-source-customize-ingestion.md)。 | 
| dataDeletionPolicy | 指定对向量存储中的向量嵌入执行 RETAIN 还是 DELETE 操作。 | 
| serverSideEncryption配置 | 要使用客户自主管理型密钥在数据同步期间加密临时数据，请在 kmsKeyArn 字段中指定其 ARN。 | 
| clientToken | 用于确保 API 请求仅完成一次。有关更多信息，请参阅[确保幂等性](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)。 | 

选择一个主题以详细了解服务及其配置方式。

**Topics**
+ [将知识库连接到 Amazon S3](s3-data-source-connector.md)
+ [连接 Confluence 以获取您的知识库](confluence-data-source-connector.md)
+ [连接 Micros SharePoint oft 获取知识库](sharepoint-data-source-connector.md)
+ [连接到 Salesforce 来为知识库摄取内容](salesforce-data-source-connector.md)
+ [为知识库爬取网页](webcrawl-data-source-connector.md)
+ [将知识库连接到自定义数据来源](custom-data-source-connector.md)

# 将知识库连接到 Amazon S3
<a name="s3-data-source-connector"></a>

Amazon S3 是一种对象存储服务，可将数据以对象形式存储在存储桶中。您可以使用适用于亚马逊 Bedrock 的[AWS管理控制台或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)API（参见[支持 SDKs ](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)的 Amazon Bedrock 和），连接到您的 Amazon S3 存储桶，以](https://console.aws.amazon.com/bedrock/home)获取您的亚马逊 Bedrock 知识库。AWS CLI

**多模式内容支持**  
Amazon S3 数据源支持多模式内容，包括图像、音频和视频文件。有关使用多式联运内容的全面指导，请参阅[为多模式内容建立知识库](kb-multimodal.md)。

您可以使用 Amazon S3 控制台或 API，将小批量文件上传到 Amazon S3 存储桶。或者，您可以使用将多个文件连续上传[AWS DataSync](https://docs.aws.amazon.com/datasync/latest/userguide/create-s3-location.html)到 S3，并按计划从本地、边缘、其他云或AWS存储中传输文件。

目前，仅支持通用型 S3 存储桶。

对可爬取的文件数和文件的 MB 数是有限制的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的功能](#supported-features-s3-connector)
+ [先决条件](#prerequisites-s3-connector)
+ [连接配置](#configuration-s3-connector)

## 支持的功能
<a name="supported-features-s3-connector"></a>
+ 文档元数据字段
+ 包含前缀
+ 对已添加、更新、删除的内容进行增量内容同步

## 先决条件
<a name="prerequisites-s3-connector"></a>

**在 Amazon S3 中，请确保：**
+ 请记下 Amazon S3 存储桶 URI、Amazon 资源名称 (ARN) 以及该存储桶拥有者的 AWS 账户 ID。您可以在 Amazon S3 控制台的属性部分中找到 URI 和 ARN。您的存储桶必须与 Amazon Bedrock 知识库位于同一区域。您必须拥有访问存储桶的权限。

**在您的AWS账户中，请确保**：
+ 在知识库的 AWS Identity and Access Management (IAM) role/permissions 策略中包括连接数据源的必要权限。有关将此数据源添加到知识库IAM角色所需的权限的信息，请参阅[访问数据源的权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)。

**注意**  
如果您使用控制台，则可以在创建知识库的步骤中为您创建具有所有所需权限的IAM角色。配置数据来源和其他配置后，具有所有必需权限的 IAM 角色将应用于特定知识库。

## 连接配置
<a name="configuration-s3-connector"></a>

要连接到 Amazon S3 存储桶，您必须提供必要的配置信息，以便 Amazon Bedrock 可以访问和爬取您的数据。您还必须遵循[先决条件](#prerequisites-s3-connector)。

本部分包含此数据来源的配置示例。

有关包含筛选条件、文档元数据字段、增量同步以及它们的工作方式的更多信息，请选择以下相应内容：

### 文档元数据字段
<a name="ds-s3-metadata-fields"></a>

您可以包含一个单独的文件，用于指定 Amazon S3 数据源中每个文件的文档元 fields/attributes 数据，以及在将数据源索引到矢量存储时是否将其包含在嵌入中。例如，您可以创建以下格式的文件，将其命名*fileName.extension.metadata.json*并上传到您的 S3 存储桶。

```
{
  "metadataAttributes": {
    "company": {
      "value": {
        "type": "STRING",
        "stringValue": "BioPharm Innovations"
      },
      "includeForEmbedding": true
    },
    "created_date": {
      "value": {
        "type": "NUMBER",
        "numberValue": 20221205
      },
      "includeForEmbedding": true
    },
    "author": {
      "value": {
        "type": "STRING",
        "stringValue": "Lisa Thompson"
      },
      "includeForEmbedding": true
    },
    "origin": {
      "value": {
        "type": "STRING",
        "stringValue": "Overview"
      },
      "includeForEmbedding": true
    }
  }
}
```

元数据文件必须使用与其关联的来源文档文件相同的名称，并在文件名的末尾附加 `.metadata.json`。元数据文件必须与 Amazon S3 存储桶中的来源文件存储在同一文件夹或同一位置。该文件不得超过 10 KB 的限制。有关支持 attribute/field 的数据类型和可以应用于元数据字段的筛选运算符的信息，请参阅[元数据和筛选](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)。

### 包含前缀
<a name="ds-s3-inclusion-exclusion"></a>

您可以指定一个包含前缀（即 Amazon S3 路径前缀），在其中使用 S3 文件或文件夹（而非整个存储桶）来创建 S3 数据来源连接器。

### 增量同步
<a name="ds-s3-incremental-sync"></a>

每次您的数据源与知识库同步时，数据源连接器都会抓取新内容、修改内容和已删除内容。 Amazon Bedrock可以使用数据源的机制来跟踪内容更改并抓取自上次同步以来更改的内容。首次将数据来源与知识库同步时，默认爬取所有内容。

要将您的数据源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html)API 或在控制台中选择您的知识库，然后在数据源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

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

**将 Amazon S3 存储桶连接到知识库**

1. 按照[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)中的步骤操作，然后选择 **Amazon S3** 作为数据来源。

1. 提供数据来源的名称。

1. 指定 Amazon S3 存储桶是在您的当前AWS账户中还是其他AWS账户中。您的存储桶必须与知识库位于同一区域。

1. （可选）如果 Amazon S3 存储桶是使用 KMS 密钥加密的，请添加该密钥。有关更多信息，请参阅 [解密您在 Amazon S3 中的数据源的 AWS KMS 密钥的权限](encryption-kb.md#encryption-kb-ds)。

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**— 您可以加密临时数据，同时使用默认密钥AWS 托管式密钥或您自己的 KMS 密钥将数据转换为嵌入内容。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略**：您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

以下是 Amazon Bedrock 知识库连接到 Amazon S3 的配置示例。您可以使用带有AWS CLI或支持的软件开发工具包（例如 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-data-source-customize-ingestion.md)。

**AWS Command Line Interface**

```
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://s3-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":{"maxTokens":100,"overlapPercentage":10}}}'
                    
s3-bedrock-connector-configuration.json
{
    "s3Configuration": {
	    "bucketArn": "arn:aws:s3:::bucket-name",
	    "bucketOwnerAccountId": "000000000000",
	    "inclusionPrefixes": [
	        "documents/"
	    ]
    },
    "type": "S3"	
}
```

------

# 连接 Confluence 以获取您的知识库
<a name="confluence-data-source-connector"></a>

Atlassian Confluence 是一款协作式工作管理工具，专为共享、存储和处理项目规划、软件开发和产品管理而设计。您可以使用[适用于 Amazon Bedrock 的 AWS 管理控制台](https://console.aws.amazon.com/bedrock/home)或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API 连接 Confluence 实例，来获取 Amazon Bedrock 知识库（请参阅 Amazon Bedrock [支持的 SDK 和 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)）。

**注意**  
Confluence 数据来源连接器目前为预览版，可能随时发生变化。  
Confluence 数据来源不支持多模态数据，例如表、曲线图、图表或其他图像。

Amazon Bedrock 支持连接 Confluence Cloud 实例。目前，只有 Amazon OpenSearch 无服务器向量存储可用于此数据来源。

对可爬取的文件数和文件的 MB 数是有限制的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的特征](#supported-features-confluence-connector)
+ [先决条件](#prerequisites-confluence-connector)
+ [连接配置](#configuration-confluence-connector)

## 支持的特征
<a name="supported-features-confluence-connector"></a>
+ 自动检测主要文档字段
+ 包含/排除内容筛选条件
+ 对已添加、更新、删除的内容进行增量内容同步
+ OAuth 2.0 身份验证，使用 Confluence API 令牌进行身份验证

## 先决条件
<a name="prerequisites-confluence-connector"></a>

**在 Confluence 中，请确保**：
+ 记下 Confluence 实例 URL。例如，Confluence Cloud 的 URL 为 *https://example.atlassian.net*。Confluence Cloud 的 URL 必须是以 *.atlassian.net* 结尾的基本 URL。
+ 配置包含用户名（管理员账户的电子邮件地址）和密码（Confluence API 令牌）的基本身份验证凭证，以便将 Amazon Bedrock 连接到 Confluence Cloud 实例。有关如何创建 Confluence API 令牌的信息，请参阅 Atlassian 网站上的 [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token)。
+ （可选）使用应用程序键、应用程序密钥、访问令牌和刷新令牌等凭证配置 OAuth 2.0 应用程序。有关更多信息，请参阅 Atlassian 网站上的 [OAuth 2.0 apps](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/)。
+ 必须启用某些读取权限或范围，才能将 OAuth 2.0 应用程序连接到 Confluence。

  Confluence API：
  + offline\$1access
  + read:content:confluence – 查看详细内容 
  + read:content-details:confluence – 查看内容详细信息 
  + read:space-details:confluence – 查看空间详细信息
  + read:audit-log:confluence – 查看审计记录 
  + read:page:confluence – 查看页面 
  + read:attachment:confluence – 查看和下载内容附件 
  + read:blogpost:confluence – 查看博客文章 
  + read:custom-content:confluence – 查看自定义内容 
  + read:comment:confluence – 查看评论 
  + read:template:confluence – 查看内容模板 
  + read:label:confluence – 查看标签 
  + read:watcher:confluence – 查看内容观察者 
  + read:relation:confluence – 查看实体关系 
  + read:user:confluence – 查看用户详细信息 
  + read:configuration:confluence – 查看 Confluence 设置 
  + read:space:confluence – 查看空间详细信息 
  + read:space.property:confluence – 查看空间属性 
  + read:user.property:confluence – 查看用户属性 
  + read:space.setting:confluence – 查看空间设置 
  + read:analytics.content:confluence – 查看内容的分析
  + read:content.property:confluence – 查看内容属性
  + read:content.metadata:confluence – 查看内容摘要 
  + read:inlinetask:confluence – 查看任务 
  + read:task:confluence – 查看任务 
  + read:whiteboard:confluence – 查看白板 
  + read:app-data:confluence – 读取应用程序数据 
  + read:folder:confluence - 查看文件夹
  + read:embed:confluence - 查看 Smart Link 数据

**在 AWS 账户中，请确保**：
+ 将身份验证凭证存储在 [AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中，并记下该密钥的 Amazon 资源名称（ARN）。按照此页面上的**连接配置**说明添加密钥中必须包含的键值对。
+ 在知识库的 AWS Identity and Access Management (IAM) 角色/权限策略中包含连接到数据来源的必要权限。有关将此数据来源添加到知识库 IAM 角色所需的权限的信息，请参阅[访问数据来源的权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)。

**注意**  
如果使用的是控制台，则可以前往 AWS Secrets Manager 添加密钥或在配置数据来源时使用现有密钥。您可以在控制台中创建知识库时创建具有所有必需权限的 IAM 角色。配置数据来源和其他配置后，具有所有必需权限的 IAM 角色将应用于特定知识库。  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。建议不要跨数据来源重复使用凭证和密钥。

## 连接配置
<a name="configuration-confluence-connector"></a>

要连接 Confluence 实例，您必须提供必要的配置信息，以便 Amazon Bedrock 可以访问和爬取您的数据。您还必须遵循[先决条件](#prerequisites-confluence-connector)。

本部分包含此数据来源的配置示例。

有关自动检测文档字段、包含/排除筛选条件、增量同步、密钥身份验证凭证及其工作原理的更多信息，请选择以下相应的项：

### 自动检测主要文档字段
<a name="ds-confluence-document-fields"></a>

数据来源连接器会自动检测并爬取文档或内容的所有主要元数据字段。例如，数据来源连接器可以爬取与您的文档等效的文档正文、文档标题、文档创建或修改日期或其他可能适用于您文档的核心字段。

**重要**  
如果您的内容包含敏感信息，则 Amazon Bedrock 可能使用敏感信息进行响应。

您可以对元数据字段应用筛选运算符，以帮助您进一步提高响应的相关性。例如，文档“epoch\$1modification\$1time”或文档在 1970 年 1 月 1 日最后一次更新之后经历的秒数。您可以通过将“epoch\$1modification\$1time”设置为*大于*某个数值，筛选出最新的数据。有关可以应用于元数据字段的筛选运算符的更多信息，请参阅[元数据和筛选](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)。

### 包含/排除筛选条件
<a name="ds-confluence-inclusion-exclusion"></a>

您可以包含或排除对某些内容的爬取。例如，您可以指定一个前缀/正则表达式排除模式，以跳过对文件名中包含“private”的任何文件的爬取。您也可以指定一个前缀/正则表达式包含模式以包含某些内容实体或内容类型。如果您指定了包含和排除筛选条件，且两者都与文档匹配，则优先执行排除筛选条件，不爬取该文档。

排除或筛选掉文件名中包含“private”的 PDF 文件的正则表达式模式示例：*".\$1private.\$1\$1\$1.pdf"*

您可以对以下内容类型应用包含/排除筛选条件：
+ `Space`：唯一的空格键
+ `Page`：主页标题
+ `Blog`：主博客标题
+ `Comment`：属于某个页面或博客的评论。指定 *Re: Page/Blog Title*
+ `Attachment`：附件文件名及其扩展名

### 增量同步
<a name="ds-confluence-incremental-sync"></a>

数据来源每次与知识库同步时，数据来源连接器都会爬取新增、修改和删除的内容。Amazon Bedrock 可以使用数据来源的机制来跟踪内容更改并爬取自上次同步以来更改的内容。首次将数据来源与知识库同步时，默认爬取所有内容。

要将数据来源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API 或在控制台中选择知识库，然后在数据来源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

### 密钥身份验证凭证
<a name="ds-confluence-secret-auth-credentials"></a>

（如果使用的是基本身份验证）您在 AWS Secrets Manager 中的密钥身份验证凭证应包含以下键值对：
+ `username`: *admin user email address of Atlassian account*
+ `password`: *Confluence API token*

（如果使用的是 OAuth 2.0 身份验证）您在 AWS Secrets Manager 中的密钥身份验证凭证应包含以下键值对：
+ `confluenceAppKey`: *app key*
+ `confluenceAppSecret`: *app secret*
+ `confluenceAccessToken`: *app access token*
+ `confluenceRefreshToken`: *app refresh token*

**注意**  
Confluence OAuth2.0 **访问**令牌的默认到期时间为 60 分钟。如果此令牌在您的数据来源同步（同步作业）时过期，Amazon Bedrock 将使用提供的**刷新**令牌来重新生成此令牌。此重新生成操作会刷新访问令牌和刷新令牌。为了将令牌从当前同步作业更新到下一个同步作业，Amazon Bedrock 需要您的知识库 IAM 角色拥有密钥凭证的写入/放置权限。

**注意**  
您在 AWS Secrets Manager 中的密钥必须使用与知识库相同的区域。

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

**将 Confluence 实例连接到知识库**

1. 按照[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)中的步骤操作，然后选择 **Confluence** 作为数据来源。

1. 提供数据来源的名称和（可选的）描述。

1. 提供 Confluence 实例 URL。例如，Confluence Cloud 的 URL 为 *https://example.atlassian.net*。Confluence Cloud 的 URL 必须是以 *.atlassian.net* 结尾的基本 URL。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**– 在将数据转换为嵌入时，您可以使用默认 AWS 托管式密钥或您自己的 KMS 密钥加密临时数据。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略** – 您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. 提供身份验证信息以连接 Confluence 实例：
   + 要使用基本身份验证，请前往 AWS Secrets Manager 添加密钥身份验证凭证或使用您创建的密钥的现有 Amazon 资源名称（ARN）。密钥必须包含 Atlassian 账户的管理员用户电子邮件地址作为用户名，并包含 Confluence API 令牌来代替密码。有关如何创建 Confluence API 令牌的信息，请参阅 Atlassian 网站上的 [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/#Create-an-API-token)。
   + 要使用 OAuth 2.0 身份验证，请前往 AWS Secrets Manager 添加密钥身份验证凭证或使用您创建的密钥的现有 Amazon 资源名称（ARN）。密钥必须包含 Confluence 应用程序键、应用程序密钥、访问令牌、刷新令牌。有关更多信息，请参阅 Atlassian 网站上的 [OAuth 2.0 apps](https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/)。

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 选择使用筛选条件/正则表达式模式来包含或排除某些内容。否则，会爬取所有标准内容。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

以下是 Amazon Bedrock 知识库连接到 Confluence Cloud 的配置示例。您可以使用 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-data-source-customize-ingestion.md)。

**AWS Command Line Interface**

```
aws bedrock create-data-source \
 --name "Confluence Cloud/SaaS connector" \
 --description "Confluence Cloud/SaaS data source connector for Amazon Bedrock to use content in Confluence" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://confluence-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}'

confluence-bedrock-connector-configuration.json
{
    "confluenceConfiguration": {
        "sourceConfiguration": {
            "hostUrl": "https://example.atlassian.net",
            "hostType": "SAAS",
            "authType": "OAUTH2_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Confluence"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "Attachment",
                            "inclusionFilters": [
                                ".*\\.pdf"
                            ],
                            "exclusionFilters": [
                                ".*private.*\\.pdf"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "CONFLUENCE"
}
```

------

# 连接 Micros SharePoint oft 获取知识库
<a name="sharepoint-data-source-connector"></a>

Microsoft SharePoint 是一项基于 Web 的协作服务，用于处理文档、网页、网站、列表等。您可以使用适用于亚马逊 Bedrock 的[AWS 管理控制台或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)API（参见[支持 SDKs ](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)的 Amazon Bedrock 和），连接到您的 SharePoint 实例，以获取](https://console.aws.amazon.com/bedrock/home)您的 Amazon Bedrock 知识库。 AWS CLI

**注意**  
SharePoint 数据源连接器处于预览版，可能会发生变化。  
Microsoft SharePoint 数据源不支持多模式数据，例如表格、图表、图表或其他图像。

Amazon Bedrock 支持连接到 SharePoint 在线实例。目前不支持搜寻 OneNote 文档。目前，只有 Amazon OpenSearch Serverless 矢量存储可用于此数据源。

对可爬取的文件数和文件的 MB 数是有限制的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的特征](#supported-features-sharepoint-connector)
+ [先决条件](#prerequisites-sharepoint-connector)
+ [连接配置](#configuration-sharepoint-connector)

## 支持的特征
<a name="supported-features-sharepoint-connector"></a>
+ 自动检测主要文档字段
+ 包含/排除内容筛选条件
+ 对已添加、更新、删除的内容进行增量内容同步
+ SharePoint 仅限应用程序的身份验证

## 先决条件
<a name="prerequisites-sharepoint-connector"></a>

### SharePoint （在线）
<a name="prerequisites-sharepoint-connector-online"></a>

**在 SharePoint （在线）中，完成以下步骤以使用 SharePoint 仅限应用程序的身份验证：**
+ 记下您的 SharePoint 在线网站网址/ URLs。例如 *https://yourdomain.sharepoint.com/sites/mysite*。您的 URL 必须以 *https* 开头并包含 *sharepoint.com*。您的网站网址必须是实际 SharePoint 网站，而不是*sharepoint.com/*或 *sites/mysite/home.aspx*
+ 记下您的 SharePoint 在线实例 URLURLs/的域名。
+ 复制您的 Microsoft 365 租户 ID。您可以在 Microsoft Entra 管理门户的“属性”中找到租户 ID。有关详细信息，请参阅[查找您的 Microsoft 365 租户 ID](https://learn.microsoft.com/en-us/sharepoint/find-your-office-365-tenant-id)。
**注意**  
有关示例应用程序，请参阅 Microsoft Learn 网站上的[在 Microsoft Entra ID 中注册客户端应用程序](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)（Microsoft Entra ID 以前称为 Azure Active Directory）。
+ 配置 SharePoint 仅限应用程序的凭据。
+ 向 SharePoint App-Only 授予权限时，复制客户端 ID 和客户端密钥值。有关更多信息，请参阅[使用 “仅限 SharePoint 应用程序” 授予访问权限。](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)
**注意**  
您无需为 “仅限 SharePoint应用程序” 设置任何 API 权限。但是，您必须在 SharePoint 侧面配置 APP 权限。有关所需应用程序权限的更多信息，请参阅 Microsoft 关于[使用仅限 SharePoint 应用程序授予访问](https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/security-apponly-azureacs)权限的文档。

### AWS 账户
<a name="prerequisites-sharepoint-connector-account"></a>

**在您的 AWS 账户中，请确保**：
+ 将身份验证凭证存储在 [AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中，并记下该密钥的 Amazon 资源名称（ARN）。按照此页面上的**连接配置**说明添加密钥中必须包含的键值对。
+ 在知识库的 AWS Identity and Access Management (IAM) role/permissions 策略中包括连接数据源的必要权限。有关将此数据源添加到知识库 IAM 角色所需的权限的信息，请参阅[访问数据源的权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)。

**注意**  
如果您使用控制台，则可以 AWS Secrets Manager 前往添加您的密钥或使用现有密钥作为数据源配置步骤的一部分。作为创建知识库的控制台步骤的一部分，可以为您创建具有所有所需权限的 IAM 角色。配置数据源和其他配置后，具有所有必需权限的 IAM 角色将应用于您的特定知识库。  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。建议不要跨数据来源重复使用凭证和密钥。

## 连接配置
<a name="configuration-sharepoint-connector"></a>

要连接到您的 SharePoint 实例，您必须提供必要的配置信息，以便 Amazon Bedrock 可以访问和抓取您的数据。您还必须遵循 [先决条件](#prerequisites-sharepoint-connector)。

本部分包含此数据来源的配置示例。

有关自动检测文档字段、包含/排除筛选条件、增量同步、密钥身份验证凭证及其工作原理的更多信息，请选择以下相应的项：

### 自动检测主要文档字段
<a name="ds-sharepoint-document-fields"></a>

数据来源连接器会自动检测并爬取文档或内容的所有主要元数据字段。例如，数据来源连接器可以爬取与您的文档等效的文档正文、文档标题、文档创建或修改日期或其他可能适用于您文档的核心字段。

**重要**  
如果您的内容包含敏感信息，则 Amazon Bedrock 可以使用敏感信息进行响应。

您可以对元数据字段应用筛选运算符，以帮助您进一步提高响应的相关性。例如，文档“epoch\$1modification\$1time”或文档在 1970 年 1 月 1 日最后一次更新之后经历的秒数。您可以通过将“epoch\$1modification\$1time”设置为*大于*某个数值，筛选出最新的数据。有关可以应用于元数据字段的筛选运算符的更多信息，请参阅[元数据和筛选](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)。

### 包含/排除筛选条件
<a name="ds-sharepoint-inclusion-exclusion"></a>

您可以包含或排除对某些内容的爬取。例如，您可以指定排除 prefix/regular 表达式模式来跳过对文件名中包含 “private” 的任何文件的抓取。您也可以指定包含 prefix/regular 表达式模式以包含某些内容实体或内容类型。如果您指定了包含和排除筛选条件，且两者都与文档匹配，则优先执行排除筛选条件，不爬取该文档。

排除或筛选掉文件名中包含“private”的 PDF 文件的正则表达式模式示例：*".\$1private.\$1\$1\$1.pdf"*

您可以对以下内容类型应用 inclusion/exclusion 过滤器：
+ `Page`：主页标题
+ `Event`：事件名称
+ `File`：附件和所有文档文件的文件名及其扩展名

目前不支持搜寻 OneNote 文档。

### 增量同步
<a name="ds-sharepoint-incremental-sync"></a>

每次您的数据源与知识库同步时，数据源连接器都会抓取新内容、修改内容和已删除内容。 Amazon Bedrock 可以使用数据源的机制来跟踪内容更改并抓取自上次同步以来更改的内容。首次将数据来源与知识库同步时，默认爬取所有内容。

要将您的数据源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html)API 或在控制台中选择您的知识库，然后在数据源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

### 密钥身份验证凭证
<a name="ds-sharepoint-secret-auth-credentials"></a>

使用 SharePoint 仅限应用程序的身份验证时，您的秘密身份验证凭据 AWS Secrets Manager 必须包含以下键值对：
+ `clientId`: *client ID associated with your Microsoft Entra SharePoint application*
+ `clientSecret`: *client secret associated with your Microsoft Entra SharePoint application*
+ `sharePointClientId`: *client ID generated when registering your SharePoint app for App-Only authentication*
+ `sharePointClientSecret`: *client secret generated when registering your SharePoint app for App-Only authentication*

**注意**  
您的密钥 AWS Secrets Manager 必须使用知识库中的相同区域。

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

**将 SharePoint 实例连接到您的知识库**<a name="connect-sharepoint-console"></a>

1. 按照中的步骤操作[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)并选择**SharePoint**作为数据源。

1. 提供数据来源的名称和（可选的）描述。

1. 提供您的 SharePoint 网站网址/ URLs。例如，对于 SharePoint 在线，*https://yourdomain.sharepoint.com/sites/mysite*。您的 URL 必须以 *https* 开头并包含 *sharepoint.com*。您的网站网址必须是实际 SharePoint 网站，而不是*sharepoint.com/*或 *sites/mysite/home.aspx*

1. 提供您的 SharePoint 实例的域名。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**— 您可以加密临时数据，同时使用默认密钥 AWS 托管式密钥 或您自己的 KMS 密钥将数据转换为嵌入内容。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略** – 您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. 提供身份验证信息以连接到您的 SharePoint 实例。对于 SharePoint 仅限应用程序的身份验证：

   1. 提供租户 ID。您可以在 Azure Active Directory 门户的“属性”中找到租户 ID。

   1.  AWS Secrets Manager 前往添加您的密钥凭证，或者使用您创建的密钥的现有 Amazon 资源名称 (ARN)。您的密钥必须包含在租户级别或站点级别注册仅限应用程序时生成的客户端 ID 和 SharePoint 客户端密钥，以及在 Entra 中注册应用程序时生成的 Entra 客户端 ID 和 Entra 客户端密钥。 SharePoint 

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 选择使用 filters/regular 表达式模式来包含或排除某些内容。否则，所有标准内容都会被抓取。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

以下是用于连接 Amazon Bedrock 知识库的 “ SharePoint 在线” 的配置示例。您可以使用带有 AWS CLI 或支持的软件开发工具包（例如 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-data-source-customize-ingestion.md)。

**AWS Command Line Interface**

```
aws bedrock-agent create-data-source \
 --name "SharePoint Online connector" \
 --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE"
```

**`sharepoint-bedrock-connector-configuration.json` 的内容**

```
{
    "sharePointConfiguration": {
        "sourceConfiguration": {
            "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de",
            "hostType": "ONLINE",
            "domain": "yourdomain",
            "siteUrls": [
                "https://yourdomain.sharepoint.com/sites/mysite"
            ],
            "authType": "OAUTH2_SHAREPOINT_APP_ONLY_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "File",
                            "inclusionFilters": [
                                ".*\\.pdf"
                            ],
                            "exclusionFilters": [
                                ".*private.*\\.pdf"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "SHAREPOINT"
}
```

------

**重要**  
不建议使用 OAuth2 .0 身份验证。我们建议您使用 SharePoint仅限应用程序的身份验证。

## 正在使用 OAuth2 .0
<a name="sharepoint-connector-oauth"></a>

使用 OAuth 2.0，您可以对与知识库集成的 SharePoint 连接器的 SharePoint资源进行身份验证和授权。

### 先决条件
<a name="sharepoint-connector-oauth-prereq"></a>

**在中 SharePoint，对于 OAuth 2.0 身份验证，请确保**：
+ 记下您的 SharePoint 在线网站网址/ URLs。例如 *https://yourdomain.sharepoint.com/sites/mysite*。您的 URL 必须以 *https* 开头并包含 *sharepoint.com*。您的网站网址必须是实际 SharePoint 网站，而不是*sharepoint.com/*或 *sites/mysite/home.aspx*
+ 记下您的 SharePoint 在线实例 URLURLs/的域名。
+ 复制您的 Microsoft 365 租户 ID。你可以在 Microsoft Entra 门户的属性或 OAuth应用程序中找到你的租户 ID。

  请记下管理员 SharePoint帐户的用户名和密码，并在注册应用程序时复制客户端 ID 和客户端密钥值。
**注意**  
有关示例应用程序，请参阅 Microsoft Learn 网站上的[在 Microsoft Entra ID 中注册客户端应用程序](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)（Microsoft Entra ID 以前称为 Azure Active Directory）。
+ 注册应用程序 SharePoint 时，需要某些读取权限才能连接。
  + SharePoint: AllSites .Read（委托）-读取所有网站集中的项目
+ 您可能需要使用管理员用户在 Azure 门户中停用**安全默认值**。有关在 Azure 门户中管理安全默认设置的更多信息，请参阅 [Microsoft 关于如何设置 enable/disable 安全默认设置的文档](https://learn.microsoft.com/en-us/microsoft-365/business-premium/m365bp-conditional-access?view=o365-worldwide&tabs=secdefaults#security-defaults-1)。
+ 您可能需要关闭账户中的多重身份验证 (MFA)，以免阻止 Amazon Bedrock 抓取 SharePoint 您的内容。 SharePoint 

要完成先决条件，请确保您已完成[AWS 账户](#prerequisites-sharepoint-connector-account) 中的步骤。

### 密钥身份验证凭证
<a name="sharepoint-secret-auth-credentials-oauth"></a>

对于 OAuth2 .0 的连接配置，可以执行与自动检测主文档字段、 inclusion/exclusion 筛选器和增量同步相同的步骤，如中所述。[连接配置](#configuration-sharepoint-connector)

**对于 OAuth 2.0 身份验证，您在中的秘密身份验证凭据 AWS Secrets Manager 必须包含这些键值对**。
+ `username`: *SharePoint admin username*
+ `password`: *SharePoint admin password*
+ `clientId`: *OAuth app client ID*
+ `clientSecret`: *OAuth app client secret*

### 将 SharePoint 实例连接到您的知识库
<a name="sharepoint-connector-oauth-using"></a>

要在使用 OAuth2 .0 时将 SharePoint 实例连接到知识库，请执行以下操作：
+ （控制台）在控制台中，按照将[ SharePoint 实例连接到知识库中所述的](https://docs.aws.amazon.com/bedrock/latest/userguide/sharepoint-data-source-connector.html#connect-sharepoint-console)相同步骤进行操作。当您想提供身份验证信息以连接到您的 SharePoint 实例时。
  + 提供租户 ID。您可以在 Azure Active Directory 门户的“属性”中找到租户 ID。
  + 转 AWS Secrets Manager 至添加您的秘密身份验证凭证或使用您创建的密钥的现有 Amazon 资源名称 (ARN)。您的密钥必须包含 SharePoint 管理员用户名和密码，以及您注册的应用程序客户端 ID 和客户端密钥。有关示例应用程序，请参阅 Microsoft Learn 网站上的[在 Microsoft Entra ID 中注册客户端应用程序](https://learn.microsoft.com/en-us/azure/healthcare-apis/register-application)（Microsoft Entra ID 以前称为 Azure Active Directory）。
+ (API) 以下是使用 `CreateDataSource` API 创建数据源的示例，其中包含您的 OAuth2 .0 的连接信息。

  ```
  aws bedrock-agent create-data-source \
   --name "SharePoint Online connector" \
   --description "SharePoint Online data source connector for Amazon Bedrock to use content in SharePoint" \
   --knowledge-base-id "your-knowledge-base-id" \
   --data-source-configuration file://sharepoint-bedrock-connector-configuration.json \
   --data-deletion-policy "DELETE"
  ```

  **`sharepoint-bedrock-connector-configuration.json` 的内容**

  ```
  {
      "sharePointConfiguration": {
          "sourceConfiguration": {
              "tenantId": "888d0b57-69f1-4fb8-957f-e1f0bedf64de",
              "hostType": "ONLINE",
              "domain": "yourdomain",
              "siteUrls": [
                  "https://yourdomain.sharepoint.com/sites/mysite"
              ],
              "authType": "OAUTH2_CLIENT_CREDENTIALS",
              "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-SharePoint"
          },
          "crawlerConfiguration": {
              "filterConfiguration": {
                  "type": "PATTERN",
                  "patternObjectFilter": {
                      "filters": [
                          {
                              "objectType": "File",
                              "inclusionFilters": [
                                  ".*\\.pdf"
                              ],
                              "exclusionFilters": [
                                  ".*private.*\\.pdf"
                              ]
                          }
                      ]
                  }
              }
          }
      },
      "type": "SHAREPOINT"
  }
  ```

# 连接到 Salesforce 来为知识库摄取内容
<a name="salesforce-data-source-connector"></a>

Salesforce 是一款客户关系管理（CRM）工具，用于管理支持、销售和营销团队。您可以使用[适用于 Amazon Bedrock 的 AWS 管理控制台](https://console.aws.amazon.com/bedrock/home)或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API 连接到 Salesforce 实例，来为 Amazon Bedrock 知识库摄取内容（请参阅 Amazon Bedrock [支持的 SDK 和 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)）。

**注意**  
Salesforce 数据来源连接器目前为预览版，可能随时发生变化。  
Salesforce 数据来源不支持多模态数据，例如表、曲线图、图表或其他图像。

目前，只有 Amazon OpenSearch 无服务器向量存储可用于此数据来源。

对可爬取的文件数和文件的 MB 数是有限制的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的特征](#supported-features-salesforce-connector)
+ [先决条件](#prerequisites-salesforce-connector)
+ [连接配置](#configuration-salesforce-connector)

## 支持的特征
<a name="supported-features-salesforce-connector"></a>
+ 自动检测主要文档字段
+ 包含/排除内容筛选条件
+ 对已添加、更新、删除的内容进行增量内容同步
+ OAuth 2.0 身份验证

## 先决条件
<a name="prerequisites-salesforce-connector"></a>

**在 Salesforce 中，请确保：**
+ 记下 Salesforce 实例 URL。例如，*https://company.salesforce.com/*。实例必须运行与 Salesforce 连接的应用程序。
+ 创建与 Salesforce 连接的应用程序并配置客户端凭证。然后，对于您选择的应用程序，从 OAuth 设置中复制用户密钥（客户端 ID）和使用者密钥（客户端密钥）。有关更多信息，请参阅关于[创建连接的应用程序](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5)和[为 OAuth 2.0 客户端凭证配置连接的应用程序](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)的 Salesforce 文档。
**注意**  
对于与 Salesforce 连接的应用程序，在“客户端凭证流”下，确保在“运行方式”字段中为客户端凭证搜索并选择用户名或别名。

**在 AWS 账户中，请确保**：
+ 将身份验证凭证存储在 [AWS Secrets Manager 密钥](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)中，并记下该密钥的 Amazon 资源名称（ARN）。按照此页面上的**连接配置**说明添加密钥中必须包含的键值对。
+ 在知识库的 AWS Identity and Access Management (IAM) 角色/权限策略中包含连接到数据来源的必要权限。有关将此数据来源添加到知识库 IAM 角色所需的权限的信息，请参阅[访问数据来源的权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html#kb-permissions-access-ds)。

**注意**  
如果使用的是控制台，则可以前往 AWS Secrets Manager 添加密钥或在配置数据来源时使用现有密钥。您可以在控制台中创建知识库时创建具有所有必需权限的 IAM 角色。配置数据来源和其他配置后，具有所有必需权限的 IAM 角色将应用于特定知识库。  
我们建议您定期刷新或轮换您的凭证和密码。为了安全起见，请仅提供必要的访问权限级别。建议不要跨数据来源重复使用凭证和密钥。

## 连接配置
<a name="configuration-salesforce-connector"></a>

要连接到 Salesforce 实例，您必须提供必要的配置信息，以便 Amazon Bedrock 可以访问和爬取您的数据。您还必须遵循[先决条件](#prerequisites-salesforce-connector)。

本部分包含此数据来源的配置示例。

有关自动检测文档字段、包含/排除筛选条件、增量同步、密钥身份验证凭证及其工作原理的更多信息，请选择以下相应的项：

### 自动检测主要文档字段
<a name="ds-salesforce-document-fields"></a>

数据来源连接器会自动检测并爬取文档或内容的所有主要元数据字段。例如，数据来源连接器可以爬取与您的文档等效的文档正文、文档标题、文档创建或修改日期或其他可能适用于您文档的核心字段。

**重要**  
如果您的内容包含敏感信息，则 Amazon Bedrock 可能使用敏感信息进行响应。

您可以对元数据字段应用筛选运算符，以帮助您进一步提高响应的相关性。例如，文档“epoch\$1modification\$1time”或文档在 1970 年 1 月 1 日最后一次更新之后经历的秒数。您可以通过将“epoch\$1modification\$1time”设置为*大于*某个数值，筛选出最新的数据。有关可以应用于元数据字段的筛选运算符的更多信息，请参阅[元数据和筛选](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)。

### 包含/排除筛选条件
<a name="ds-salesforce-inclusion-exclusion"></a>

您可以包含或排除对某些内容的爬取。例如，您可以指定一个前缀/正则表达式排除模式，以跳过对文件名中包含“private”的任何文件的爬取。您也可以指定一个前缀/正则表达式包含模式以包含某些内容实体或内容类型。如果您指定了包含和排除筛选条件，且两者都与文档匹配，则优先执行排除筛选条件，不爬取该文档。

排除或筛选掉活动名称中包含“private”的活动的正则表达式模式示例：*".\$1private.\$1"*

您可以对以下内容类型应用包含/排除筛选条件：
+ `Account`：账号/标识符
+ `Attachment`：附件文件名及其扩展名
+ `Campaign`：活动名称和相关标识符
+ `ContentVersion`：文档版本和相关标识符
+ `Partner`：合作伙伴信息字段，包括相关标识符
+ `Pricebook2`：产品/价格列表名称
+ `Case`：客户咨询/问题编号和其他信息字段，包括相关标识符（请注意：可能包含个人信息，您可以选择排除或筛选掉这些信息）
+ `Contact`：客户信息字段（请注意：可能包含个人信息，您可以选择排除或筛选掉这些信息）
+ `Contract`：合同名称和相关标识符
+ `Document`：文件名及其扩展名
+ `Idea`：想法信息字段和相关标识符
+ `Lead`：潜在新客户信息字段（请注意：可能包含个人信息，您可以选择排除或筛选掉这些信息）
+ `Opportunity`：待处理的销售/交易信息字段和相关标识符
+ `Product2`：商品信息字段和相关标识符
+ `Solution`：客户查询/问题的解决方案名称和相关标识符
+ `Task`：任务信息字段和相关标识符
+ `FeedItem`：聊天源帖子的标识符
+ `FeedComment`：评论所属的聊天源帖子的标识符
+ `Knowledge__kav`：知识文章标题
+ `User`：组织内的用户别名
+ `CollaborationGroup`：聊天组名称（唯一）

### 增量同步
<a name="ds-salesforce-incremental-sync"></a>

数据来源每次与知识库同步时，数据来源连接器都会爬取新增、修改和删除的内容。Amazon Bedrock 可以使用数据来源的机制来跟踪内容更改并爬取自上次同步以来更改的内容。首次将数据来源与知识库同步时，默认爬取所有内容。

要将数据来源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API 或在控制台中选择知识库，然后在数据来源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

### 密钥身份验证凭证
<a name="ds-salesforce-secret-auth-credentials"></a>

（对于 OAuth 2.0 身份验证）您在 AWS Secrets Manager 中的密钥身份验证凭证应包含以下键值对：
+ `consumerKey`：*应用程序客户端 ID*
+ `consumerSecret`：*应用程序客户端密钥*
+ `authenticationUrl`：*Salesforce 实例 URL 或请求身份验证词元的 URL*

**注意**  
您在 AWS Secrets Manager 中的密钥必须使用与知识库相同的区域。

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

**将 Salesforce 实例连接到知识库**

1. 按照[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)中的步骤操作，然后选择 **Salesforce** 作为数据来源。

1. 提供数据来源的名称和可选的描述。

1. 提供 Salesforce 实例 URL。例如，*https://company.salesforce.com/*。实例必须运行与 Salesforce 连接的应用程序。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**– 在将数据转换为嵌入时，您可以使用默认 AWS 托管式密钥或您自己的 KMS 密钥加密临时数据。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略**：您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. 提供身份验证信息以连接 Salesforce 实例：

   1. 要使用 OAuth 2.0 身份验证，请前往 AWS Secrets Manager 添加密钥身份验证凭证或使用您创建的密钥的现有 Amazon 资源名称（ARN）。您的密钥必须包含与 Salesforce 连接的应用程序的用户密钥（客户端 ID）、使用者密钥（客户端密钥）以及 Salesforce 实例 URL 或请求身份验证词元的 URL。有关更多信息，请参阅关于[创建连接的应用程序](https://help.salesforce.com/s/articleView?id=sf.connected_app_create.htm&type=5)和[为 OAuth 2.0 客户端凭证配置连接的应用程序](https://help.salesforce.com/s/articleView?id=sf.connected_app_client_credentials_setup.htm&type=5)的 Salesforce 文档。

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 选择使用筛选条件/正则表达式模式来包含或排除某些内容。否则，会爬取所有标准内容。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

以下是 Amazon Bedrock 知识库连接到 Salesforce 的配置示例。您可以使用 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-data-source-customize-ingestion.md)。

**AWS Command Line Interface**

```
aws bedrock create-data-source \
 --name "Salesforce connector" \
 --description "Salesforce data source connector for Amazon Bedrock to use content in Salesforce" \
 --knowledge-base-id "your-knowledge-base-id" \
 --data-source-configuration file://salesforce-bedrock-connector-configuration.json \
 --data-deletion-policy "DELETE" \
 --vector-ingestion-configuration '{"chunkingConfiguration":[{"chunkingStrategy":"FIXED_SIZE","fixedSizeChunkingConfiguration":[{"maxTokens":"100","overlapPercentage":"10"}]}]}'

salesforce-bedrock-connector-configuration.json
{
    "salesforceConfiguration": {
        "sourceConfiguration": {
            "hostUrl": "https://company.salesforce.com/",
            "authType": "OAUTH2_CLIENT_CREDENTIALS",
            "credentialsSecretArn": "arn:aws::secretsmanager:your-region:secret:AmazonBedrock-Salesforce"
        },
        "crawlerConfiguration": {
            "filterConfiguration": {
                "type": "PATTERN",
                "patternObjectFilter": {
                    "filters": [
                        {
                            "objectType": "Campaign",
                            "inclusionFilters": [
                                ".*public.*"
                            ],
                            "exclusionFilters": [
                                ".*private.*"
                            ]
                        }
                    ]
                }
            }
        }
    },
    "type": "SALESFORCE"
}
```

------

# 为知识库爬取网页
<a name="webcrawl-data-source-connector"></a>

Amazon Bedrock 提供的 Web 爬网程序可以连接并爬取您选择在 Amazon Bedrock 知识库中使用的 URL。您可以根据所选 URL 的设定范围或限制来爬取网站页面。您可以使用[适用于 Amazon Bedrock 的 AWS 管理控制台](https://console.aws.amazon.com/bedrock/home)或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) API 来爬取网站页面（请参阅 Amazon Bedrock [支持的软件开发工具包和 AWS CLI](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)）。目前，只有 Amazon OpenSearch 无服务器向量存储可用于此数据来源。

**注意**  
Web 爬网程序数据来源连接器目前为预览版，可能随时发生变化。

当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您只能使用 Web 爬网程序为您自己的网页或您有权爬取的网页编制索引，并且必须遵守 robots.txt 配置。

Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准

可以爬取的网页内容项目数量有限制，每个内容项目的 MB 数量是有限的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的特征](#supported-features-webcrawl-connector)
+ [先决条件](#prerequisites-webcrawl-connector)
+ [连接配置](#configuration-webcrawl-connector)

## 支持的特征
<a name="supported-features-webcrawl-connector"></a>

Web 爬网程序从种子 URL 开始连接并爬取 HTML 网页，遍历同一主域名和路径下的所有子链接。如果任何 HTML 页面引用了支持的文档，Web 爬网程序就会爬取这些文档，无论它们是否在同一主域名内。您可以通过更改爬网配置来修改爬取行为。请参阅 [连接配置](#configuration-webcrawl-connector)。

您可以执行以下操作：
+ 选择多个要爬取的源 URL，并将 URL 的范围设置为仅爬取主机或同时包含子域。
+ 爬取源 URL 中包含的静态网页。
+ 指定自定义用户代理后缀，为自己的爬网程序设置规则。
+ 包含或排除与筛选模式匹配的某些 URL。
+ 遵守标准 robots.txt 指令，例如 Allow 和 Disallow。
+ 限制要抓取的 URL 范围，也可以选择排除符合筛选模式的 URL。
+ 限制爬取 URL 的速率和要爬取的最大页面数。
+ 在 Amazon CloudWatch 中查看爬取的 URL 的状态

## 先决条件
<a name="prerequisites-webcrawl-connector"></a>

**要使用 Web 爬网程序，请确保您：**。
+ 检查是否授权您爬取源 URL。
+ 检查源 URL 对应的 robots.txt 路径是否阻止了爬取 URL。Web 爬网程序遵守 robots.txt 标准：如果未找到该网站的 robots.txt，则默认为 `disallow`。Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准。您还可以指定自定义用户代理标头后缀，为自己的爬网程序设置规则。有关更多信息，请参阅本页面上[连接配置](#configuration-webcrawl-connector)说明中的 Web 爬网程序 URL 访问权限。
+ [启用 CloudWatch Logs 传送功能](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-bases-logging.html)并按照以下示例 Web 爬网程序日志操作，可查看摄取 Web 内容的数据摄取作业的状态，以及某些 URL 是否无法检索。

**注意**  
当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

## 连接配置
<a name="configuration-webcrawl-connector"></a>

有关爬取 URL 的同步范围、包含/排除筛选条件、URL 访问权限、增量同步及其工作原理的更多信息，请选择以下相应的项：

### 爬取 URL 的同步范围
<a name="ds-sync-scope"></a>

您可以根据每个页面 URL 与种子 URL 的特定关系来限制要爬取的 URL 范围。为了加快爬取速度，您可以将 URL 限制为与种子 URL 具有相同主机和初始 URL 路径的 URL。要进行更广泛的爬取，您可以选择爬取同一主机或种子 URL 的任何子域内的 URL。

可从以下选项中进行选择。
+ 默认：将爬取限制为属于同一主机且具有相同初始 URL 路径的网页。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则只会爬取此路径和从此路径延伸的网页，例如“https://aws.amazon.com/bedrock/agents/”。例如，诸如“https://aws.amazon.com/ec2/”之类的同级网址不会被爬取。
+ 仅限主机：将爬取限制为属于同一主机的网页。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则包含“https://aws.amazon.com”的网页也会被爬取，比如“https://aws.amazon.com/ec2”。
+ 子域名：包括与种子 URL 具有相同主域名的任何网页的爬取。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则任何包含“amazon.com”（子域名）的网页都将被爬取，例如“https://www.amazon.com”。

**注意**  
确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站，例如 wikipedia.org。爬取大型网站需要很长时间。  
如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。

Web 爬网程序支持静态网站。

您还可以限制爬取 URL 的速率以控制对爬取速度的节流。您可以设置每分钟在每个主机上爬取的最大 URL 数量。此外，您还可以设置要爬取的网页总数的最大数量（最多 25000）。请注意，如果源 URL 中的网页总数超过您设置的最大值，则您的数据来源同步/摄取作业将失败。

### 包含/排除筛选条件
<a name="ds-inclusion-exclusion"></a>

您可以根据自己的范围包含或排除某些 URL。如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。如果您指定了包含和排除筛选条件，且两者都与 URL 匹配，则优先排除筛选条件，不会爬取网页内容。

**重要**  
有问题的正则表达式模式筛选条件会导致[灾难性的回溯](https://docs.aws.amazon.com/codeguru/detector-library/python/catastrophic-backtracking-regex/)和瞻前顾后，因此会被拒绝。

排除以“.pdf”结尾的 URL 或 PDF 网页附件的正则表达式筛选模式示例：*".\$1\$1.pdf\$1"*

### Web 爬网程序 URL 访问权限
<a name="ds-webcrawl-identity-crawling"></a>

您可以使用 Web 爬网程序来爬取您有权爬取的网站的页面。

当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准

您可以将某些用户代理机器人指定为“允许”或“不允许”用户代理爬取您的源 URL。您可以修改网站的 robots.txt 文件来控制 Web 爬网程序如何爬取您的源 URL。爬网程序将首先在 robots.txt 文件中查找 `bedrockbot` 规则，然后查找通用 `bedrockbot-UUID ` 规则。

您还可以添加 User-Agent 后缀，该后缀可用于在机器人保护系统中将您的爬网程序列入允许列表。请注意，无需将此后缀添加到 `robots.txt` 文件中来确保没有人可以仿冒用户代理字符串。例如，要让 Web 爬网程序能够爬取所有网站内容并禁止其他任何机器人爬取，请使用以下指令：

```
User-agent: bedrockbot-UUID # Amazon Bedrock Web Crawler
Allow: / # allow access to all pages
User-agent: * # any (other) robot
Disallow: / # disallow access to any pages
```

### 增量同步
<a name="ds-incremental-sync"></a>

每次运行 Web 爬网程序时，都会检索从符合范围与筛选条件的源 URL 可以访问的所有 URL 的内容。对于首次同步所有内容后的增量同步，Amazon Bedrock 会使用新内容和修改过的内容更新知识库，并删除不再存在的旧内容。有时，爬网程序可能无法分辨网站内容是否已被删除；在这种情况下，它会偏向于将旧内容保留在知识库中。

要将数据来源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html) API 或在控制台中选择知识库，然后在数据来源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

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

**将 Web 爬网程序数据来源连接到知识库**

1. 按照[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)中的步骤操作，然后选择 **Web 爬网程序**作为数据来源。

1. 提供数据来源的名称和可选的描述。

1. 提供要爬取的 URL 的**来源 URL**。选择**添加源 URL**，最多可添加 9 个其他 URL。提供源 URL 即表示您确认自己有权爬取其域。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**– 在将数据转换为嵌入时，您可以使用默认 AWS 托管式密钥或您自己的 KMS 密钥加密临时数据。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略** – 您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. （可选）为 **bedrock-UUID** 提供用户代理后缀，用于在爬网程序或机器人访问 Web 服务器时对其进行标识。

1. 在**同步范围**部分中，进行以下配置：

   1. 选择用于爬取您的源 URL 的**网站域范围**：
      + 默认：将爬取限制为属于同一主机且具有相同初始 URL 路径的网页。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则只会爬取此路径和从此路径延伸的网页，例如“https://aws.amazon.com/bedrock/agents/”。例如，诸如“https://aws.amazon.com/ec2/”之类的同级网址不会被爬取。
      + 仅限主机：将爬取限制为属于同一主机的网页。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则包含“https://aws.amazon.com”的网页也会被爬取，比如“https://aws.amazon.com/ec2”。
      + 子域名：包括与种子 URL 具有相同主域名的任何网页的爬取。例如，如果种子 URL 为“https://aws.amazon.com/bedrock/”，则任何包含“amazon.com”（子域名）的网页都将被爬取，例如“https://www.amazon.com”。
**注意**  
确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站，例如 wikipedia.org。爬取大型网站需要很长时间。  
如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。

   1. 输入**爬取速度上限**。每台主机每分钟推送 1 到 300 个 URL。较高的爬取速度会增加负载，但耗时较短。

   1. 输入 1 到 25000 之间的**数据来源同步的最大页数**。限制从您的源 URL 中爬取的最大网页数量。如果网页超过此数量，则数据来源同步将失败，并且不会摄取任何网页。

   1. 对于 **URL Regex** 模式（可选），您可以通过在框中输入正则表达式模式来添加**包含模式**或**排除模式**。通过选择**添加新模式**，您最多可以添加 25 种包含和 25 种排除筛选模式。包含和排除模式将根据您的范围进行爬取。如果存在冲突，则优先使用排除模式。

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

要使用 Web 爬网程序将知识库连接到数据来源，请使用 [Amazon Bedrock 代理构建时端点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 请求，在 [DataSourceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DataSourceConfiguration.html) 的 `type` 字段中指定 `WEB`，并包括 `webConfiguration` 字段。以下是您的 Amazon Bedrock 知识库的 Web 爬网程序配置示例。

```
{
    "webConfiguration": {
        "sourceConfiguration": {
            "urlConfiguration": {
                "seedUrls": [{
                    "url": "https://www.examplesite.com"
                }]
            }
        },
        "crawlerConfiguration": {
            "crawlerLimits": {
                "rateLimit": 50,
                "maxPages": 100
            },
            "scope": "HOST_ONLY",
            "inclusionFilters": [
                "https://www\.examplesite\.com/.*\.html"
            ],
            "exclusionFilters": [
                "https://www\.examplesite\.com/contact-us\.html"
            ],
            "userAgent": "CustomUserAgent"
        }
    },
    "type": "WEB"
}
```

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

------

# 将知识库连接到自定义数据来源
<a name="custom-data-source-connector"></a>

您可以不必选择支持的数据来源服务，而是连接到自定义数据来源以获得以下优势：
+ 更好的灵活性，并可控制您希望知识库访问的数据类型。
+ 能够使用 `KnowledgeBaseDocuments` API 操作直接摄取或删除文档而无需同步更改。
+ 能够直接通过 Amazon Bedrock 控制台或 API 查看数据来源中的文档。
+ 能够直接在中将文档上传到数据源AWS 管理控制台或以内联方式添加文档。
+ 能够在数据来源中添加或更新文档时，直接向每个文档添加元数据。有关在从数据来源检索信息时如何使用元数据进行筛选的更多信息，请参阅[配置和自定义查询与响应生成](kb-test-config.md)中的**元数据和筛选**标签页。

**多模式内容支持**  
自定义数据源支持多模式内容，包括最大 10MB base64 编码的图像、音频和视频文件。有关使用多式联运内容的全面指导，请参阅[为多模式内容建立知识库](kb-multimodal.md)。

要将知识库连接到自定义数据源，请使用[适用于 Amazon Bedrock 构建时终端节点的代理](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)请求。指定知识库要连接到的 `knowledgeBaseId`，向数据来源提供 `name`，然后将 `dataSourceConfiguration` 中的 `type` 字段指定为 `CUSTOM`。以下是创建此数据来源的极简示例：

```
PUT /knowledgebases/KB12345678/datasources/ HTTP/1.1
Content-type: application/json

{
    "name": "MyCustomDataSource",
    "dataSourceConfiguration": {
        "type": "CUSTOM"
    }
}
```

您可以包括以下任一可选字段来配置数据来源：


****  

| 字段 | 使用案例 | 
| --- | --- | 
| 描述 | 提供数据来源的描述。 | 
| clientToken | 用于确保 API 请求仅完成一次。有关更多信息，请参阅[确保幂等性](https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html)。 | 
| serverSideEncryption配置 | 在将数据转换为嵌入时，为临时数据存储指定自定义 KMS 密钥。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。 | 
| dataDeletionPolicy | 配置在删除数据来源后，如何处理向量存储中数据来源的向量嵌入。指定 RETAIN 以便将数据保留在向量存储中，或者使用默认选项 DELETE 来删除这些数据。 | 
| vectorIngestionConfiguration | 配置数据来源摄取选项。有关更多信息，请参阅下文。 | 

该`vectorIngestionConfiguration`字段映射到包含以下字段的[VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)对象：
+ chunkingConfiguration – 配置用于对数据来源中的文档进行分块的策略。有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
+ parsingConfiguration – 配置用于解析数据来源的策略。有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
+ customTransformationConfiguration — 自定义数据的转换方式并应用 Lambda 函数以实现更大的自定义。有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

设置自定义数据来源后，您可以向其中添加文档，然后直接将其摄取到知识库中。与其他数据来源不同，您无需同步自定义数据来源。要了解如何直接摄取文档，请参阅[将更改直接摄取到知识库中](kb-direct-ingestion.md)。

# 自定义数据来源的摄取
<a name="kb-data-source-customize-ingestion"></a>

在连接数据源时，您可以通过在发送请求时修改`vectorIngestionConfiguration`字段的值来自定义矢量摄取。 AWS 管理控制台 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)

选择一个主题，了解如何在连接到数据来源时，将自定义摄取所需的配置包括在内：

**Topics**
+ [选择用于解析的工具](#kb-data-source-customize-parsing)
+ [选择分块策略](#kb-data-source-customize-chunking)
+ [在摄取期间使用 Lambda 函数](#kb-data-source-customize-lambda)

## 选择用于解析的工具
<a name="kb-data-source-customize-parsing"></a>

您可以自定义数据中文档的解析方式。要了解有关在 Amazon Bedrock 知识库中解析数据的选项，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。

**警告**  
您在连接到数据来源后，便无法更改解析策略。要使用不同的解析策略，可以添加新的数据来源。  
创建知识库之后，便无法再添加 S3 位置来存储多模态数据（包括图像、数字、图表和表格）。如果要包含多模态数据并使用支持此类数据的解析器，必须创建新的知识库。

选择解析策略所涉及的步骤取决于您是使用 Amazon Bedrock API 还是 Amazon Bedrock API 以及您选择的解析方法。 AWS 管理控制台 如果您选择支持多模态数据的解析方法，则必须指定 S3 URI，以存储从文档中提取的多模态数据。这些数据可以在知识库查询中返回。
+ 在中 AWS 管理控制台，执行以下操作：

  1. 在设置知识库过程中连接到数据来源时，或者在向现有知识库添加新数据来源时，选择解析策略。

  1. （如果您选择 Amazon Bedrock 数据自动化或基础模型作为解析策略）在选择嵌入模型并配置向量存储时，在**多模态存储目标**部分中指定一个 S3 URI，以存储从文档中提取的多模态数据。您还可以在此步骤中，选择使用客户托管密钥来加密 S3 数据。
+ 在 Amazon Bedrock API 中，执行以下操作：

  1. （如果您计划使用 Amazon Bedrock 数据自动化或基础模型作为解析策略）[SupplementalDataStorageLocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_SupplementalDataStorageLocation.html)在请求中加[VectorKnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorKnowledgeBaseConfiguration.html)入。[CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html)

  1. [ParsingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ParsingConfiguration.html)在[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)请求的`parsingConfiguration`字段[VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)中加入。
**注意**  
如果您省略此配置，Amazon Bedrock 知识库将使用 Amazon Bedrock 默认解析器。

有关如何在 API 中指定解析策略的更多详细信息，请展开与您要使用的解析策略相对应的部分：

### Amazon Bedrock 默认解析器
<a name="w2aac28c10c23c15c17c11c13b1"></a>

要使用默认解析器，请不要将 `parsingConfiguration` 字段包括在 `VectorIngestionConfiguration` 中。

### Amazon Bedrock 数据自动化解析器（预览版）
<a name="w2aac28c10c23c15c17c11c13b3"></a>

要使用 Amazon Bedrock 数据自动化解析器，请在的`parsingStrategy`字段`BEDROCK_DATA_AUTOMATION`中指定，`ParsingConfiguration`并在`bedrockDataAutomationConfiguration`字段[BedrockDataAutomationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_BedrockDataAutomationConfiguration.html)中加入，格式如下：

```
{
    "parsingStrategy": "BEDROCK_DATA_AUTOMATION",
    "bedrockDataAutomationConfiguration": {
        "parsingModality": "string"
    }
}
```

### 基础模型
<a name="w2aac28c10c23c15c17c11c13b5"></a>

要使用基础模型作为解析器，请在的`parsingStrategy`字段`BEDROCK_FOUNDATION_MODEL`中指定，`ParsingConfiguration`并在`bedrockFoundationModelConfiguration`字段[BedrockFoundationModelConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_BedrockFoundationModelConfiguration.html)中包含一个，格式如下：

```
{
    "parsingStrategy": "BEDROCK_FOUNDATION_MODEL",
    "bedrockFoundationModelConfiguration": {
        "modelArn": "string",
        "parsingModality": "string",
        "parsingPrompt": {
            "parsingPromptText": "string"
        }
    }
}
```

## 选择分块策略
<a name="kb-data-source-customize-chunking"></a>

您可以自定义如何对数据中的文档进行分块，以进行存储和检索。要了解有关在 Amazon Bedrock 知识库中进行数据分块的选项，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。

**警告**  
连接到数据来源后，就无法更改分块策略。

在连接数据源时， AWS 管理控制台 您可以选择分块策略。使用 Amazon Bedrock API，您可以[ChunkingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ChunkingConfiguration.html)在 “” `chunkingConfiguration` 字段中加入。[VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)

**注意**  
如果您省略此配置，Amazon Bedrock 会将您的内容分为大约 300 个词元组成的块，同时保留句子边界。

展开与您要使用的解析策略相对应的部分：

### 不分块
<a name="w2aac28c10c23c15c17c13c13b1"></a>

要将数据来源中的每个文档视为单个源分块，请在 `ChunkingConfiguration` 的 `chunkingStrategy` 字段中指定 `NONE`，格式如下：

```
{
    "chunkingStrategy": "NONE"
}
```

### 固定大小分块
<a name="w2aac28c10c23c15c17c13c13b3"></a>

要将数据源中的每个文档分成大小大致相同的块，请在的`chunkingStrategy`字段`FIXED_SIZE`中指定，`ChunkingConfiguration`并在`fixedSizeChunkingConfiguration`字段[FixedSizeChunkingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FixedSizeChunkingConfiguration.html)中包含一个，如下所示：

```
{
    "chunkingStrategy": "FIXED_SIZE",
    "fixedSizeChunkingConfiguration": {
        "maxTokens": number,
        "overlapPercentage": number
    }
}
```

### 分层分块
<a name="w2aac28c10c23c15c17c13c13b5"></a>

要将数据来源中的每个文档分为两个层，其中第二层包含从第一层派生的较小分块，请在 `ChunkingConfiguration` 的 `chunkingStrategy` 字段中指定 `HIERARCHICAL`，并将 `hierarchicalChunkingConfiguration` 字段包括在内，格式如下：

```
{
    "chunkingStrategy": "HIERARCHICAL",
    "hierarchicalChunkingConfiguration": {
        "levelConfigurations": [{
            "maxTokens": number
        }],
        "overlapTokens": number
    }
}
```

### 语义分块
<a name="w2aac28c10c23c15c17c13c13b7"></a>

要将数据来源中的每个文档分为按语义含义（而非语法结构）区分优先级的分块，请在 `ChunkingConfiguration` 的 `chunkingStrategy` 字段中指定 `SEMANTIC`，并将 `semanticChunkingConfiguration` 字段包括在内，格式如下：

```
{
    "chunkingStrategy": "SEMANTIC",
    "semanticChunkingConfiguration": {
        "breakpointPercentileThreshold": number,
        "bufferSize": number,
        "maxTokens": number
    }
}
```

## 在摄取期间使用 Lambda 函数
<a name="kb-data-source-customize-lambda"></a>

您可以通过以下方式，使用 Lambda 函数对如何将数据中的源分块写入向量存储进行后处理：
+ 将提供自定义分块策略的分块逻辑包括在内。
+ 将指定块级元数据的逻辑包括在内。

要了解如何编写自定义 Lambda 函数用于摄取，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。在连接数据源时， AWS 管理控制台 您可以选择 Lambda 函数。使用 Amazon Bedrock API，您可以在的`CustomTransformationConfiguration`字段[CustomTransformationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CustomTransformationConfiguration.html)中加入，[VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html)并指定 Lambda 的 ARN，格式如下：

```
{
    "transformations": [{
        "transformationFunction": {
            "transformationLambdaConfiguration": {
                "lambdaArn": "string"
            }
        },
        "stepToApply": "POST_CHUNKING"
    }],
    "intermediateStorage": {
        "s3Location": {
            "uri": "string"
        }
    }
}
```

您还可以在应用 Lambda 函数后，指定要存储输出的 S3 位置。

您可以将 `chunkingConfiguration` 字段包括在内，以在应用 Amazon Bedrock 提供的分块选项之一后，应用 Lambda 函数。

# 为知识库设置安全配置
<a name="kb-create-security"></a>

创建知识库后，您可能需要设置以下安全配置：

**Topics**
+ [为知识库设置数据访问策略](#kb-create-security-data)
+ [为您的 Amazon OpenSearch 无服务器知识库设置网络访问策略](#kb-create-security-network)

## 为知识库设置数据访问策略
<a name="kb-create-security-data"></a>

如果您使用的是[自定义角色](kb-permissions.md)，请为新创建的知识库设置安全配置。如果您让 Amazon Bedrock 为您创建服务角色，则可以跳过此步骤。按照与您设置的数据库相对应的选项卡中的步骤进行操作。

------
#### [ Amazon OpenSearch Serverless ]

要将对 Amazon OpenSearch Serverless 集合的访问权限限制为知识库服务角色，请创建数据访问策略。您可以通过下列方式来执行此操作：
+ 按照亚马逊 OpenSearch 服务开发者指南中的[创建数据访问策略（控制台）](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-console)中的步骤使用亚马逊 OpenSearch 服务控制台。
+ 通过发送带有[OpenSearch 无服务器端点](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)的[CreateAccessPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateAccessPolicy.html)请求来使用 AWS API。有关AWS CLI示例，请参阅[创建数据访问策略（AWS CLI）](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-cli)。

使用以下数据访问策略，指定 Amazon OpenSearch Serverless 集合和您的服务角色：

```
[
    {
        "Description": "${data access policy description}",
        "Rules": [
          {
            "Resource": [
              "index/${collection_name}/*"
            ],
            "Permission": [
                "aoss:DescribeIndex",
                "aoss:ReadDocument",
                "aoss:WriteDocument"
            ],
            "ResourceType": "index"
          }
        ],
        "Principal": [
            "arn:aws:iam::${account-id}:role/${kb-service-role}"
        ]
    }
]
```

------
#### [ Pinecone, Redis 企业云 or MongoDB Atlas ]

要集成Pinecone、Redis Enterprise Cloud、MongoDB Atlas 向量索引，请将以下基于身份的策略附加到您的知识库服务角色，以允许其访问向量索引AWS Secrets Manager的密钥。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": [
            "bedrock:AssociateThirdPartyKnowledgeBase"
        ],
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:secretsmanager:us-east-1:123456789012:secret:${secret-id}"
            }
        }
    }]
}
```

------

------

## 为您的 Amazon OpenSearch 无服务器知识库设置网络访问策略
<a name="kb-create-security-network"></a>

如果您使用私有 Amazon OpenSearch Serverless 集合作为知识库，则只能通过 AWS PrivateLink VPC 终端节点对其进行访问。您可以在[设置亚马逊 OpenSearch 无服务器矢量集合时创建私有的 Amazon OpenSearch Serverless 集合](knowledge-base-setup.md)，也可以在配置其网络访问策略时将现有的亚马逊 OpenSearch 无服务器集合（包括亚马逊 Bedrock 控制台为您创建的集合）设为私有。

《亚马逊 OpenSearch 服务开发者指南》中的以下资源将帮助您了解私有 Amazon OpenSearch Serverless 集合所需的设置：
+ 有关为私有 Amazon OpenSearch Serverless 集合设置 VPC 终端节点的更多信息，请参阅[使用接口终端节点访问 Amazon OpenSearch Serverless（）AWS PrivateLink](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html)。
+ 有关 Amazon Serverless 中网络访问策略的更多信息，请参阅 Amazon OpenSearch Serv [ OpenSearch erless 的网络访问权限](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html)。

要允许 Amazon Bedrock 知识库访问亚马逊 OpenSearch 无服务器的私有馆藏，您必须编辑亚马逊 OpenSearch 无服务器集合的网络访问策略，以允许 Amazon Bedrock 作为源服务。选择与您的首选方法对应的选项卡，然后按照以下步骤操作：

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

1. 打开亚马逊 OpenSearch 服务控制台，网址为[https://console.aws.amazon.com/aos/](https://console.aws.amazon.com/aos/)。

1. 从左侧导航窗格中选择**集合**。然后选择您的集合。

1. 在**网络**部分，选择**关联策略**。

1. 选择**编辑**。

1. 对于**选择策略定义方法**，请执行以下操作之一：
   + 将**选择策略定义方法**保留为**可视化编辑器**，并在**规则 1** 部分配置以下设置：

     1. （可选）在**规则名称**字段中，输入网络访问规则的名称。

     1. 在**访问如下位置的集合**下，选择**私有（推荐）**。

     1. 选择 **AWS 服务私有访问权限**。在文本框中输入 **bedrock.amazonaws.com**。

     1. 取消选择 “**启用对 OpenSearch 仪表板的访问权限**”。
   + 选择 **JSON**，然后将以下策略粘贴到 **JSON 编辑器**。

     ```
     [
         {                                        
             "AllowFromPublic": false,
             "Description":"${network access policy description}",
             "Rules":[
                 {
                     "ResourceType": "collection",
                     "Resource":[
                         "collection/${collection-id}"
                     ]
                 }
             ],
             "SourceServices":[
                 "bedrock.amazonaws.com"
             ]
         }
     ]
     ```

1. 选择**更新**。

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

要编辑您的 Amazon OpenSearch Serverless 馆藏的网络访问策略，请执行以下操作：

1. 使用[OpenSearch 无服务器端点](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)发送[GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html)请求。指定策略的 `name`，然后将 `type` 指定为 `network`。记下响应中的 `policyVersion`。

1. 使用[OpenSearch 无服务器端点](https://docs.aws.amazon.com/general/latest/gr/opensearch-service.html#opensearch-service-regions)发送[UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html)请求。至少指定以下字段：  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/bedrock/latest/userguide/kb-create-security.html)

   ```
   [
       {                                        
           "AllowFromPublic": false,
           "Description":"${network access policy description}",
           "Rules":[
               {
                   "ResourceType": "collection",
                   "Resource":[
                       "collection/${collection-id}"
                   ]
               }
           ],
           "SourceServices":[
               "bedrock.amazonaws.com"
           ]
       }
   ]
   ```

有关AWS CLI示例，请参阅[创建数据访问策略（AWS CLI）](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.html#serverless-data-access-cli)。

------
+ 按照[创建网络策略（控制 OpenSearch 台）中的步骤使用 Amazon Service 控制台](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html#serverless-network-console)。在集合详细信息的**网络**部分注明**关联策略**，而不是创建网络策略。