

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂資料來源的擷取
<a name="kb-data-source-customize-ingestion"></a>

您可以在 中連接資料來源時自訂向量擷取， AWS 管理主控台 或在傳送 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 請求時修改 `vectorIngestionConfiguration` 欄位的值。

選取主題，了解如何在連線至資料來源時包含用於自訂擷取的組態：

**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 位置來存放多模態資料 (包括影像、圖形、圖表和資料表)。如果您想要包含多模態資料並使用支援它的剖析器，必須建立新的知識庫。

選擇剖析策略所涉及的步驟取決於您使用的是 AWS 管理主控台 或 Amazon Bedrock API，以及您選擇的剖析方法。如果您選擇支援多模態資料的剖析方法，則必須指定要在其中存放從文件中擷取之多模態資料的 S3 URI。可在知識庫查詢中傳回此資料。
+ 在 中 AWS 管理主控台，執行下列動作：

  1. 當您在設定知識庫時，或是將新的資料來源新增至現有的知識庫時，請選取剖析策略。

  1. (如果您選擇 Amazon Bedrock Data Automation 或基礎模型作為剖析策略) 當您選取嵌入模型並設定向量存放區時，指定要在**多模態儲存目的地**區段中存放從文件擷取之多模型資料的 S3 URI。在此步驟中，您也可以選擇性地使用客戶受管金鑰來加密 S3 資料。
+ 在 Amazon Bedrock API 中，執行下列操作：

  1. (如果您打算使用 Amazon Bedrock Data Automation 或基礎模型作為剖析策略) 在 [CreateKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateKnowledgeBase.html) 請求的 [VectorKnowledgeBaseConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorKnowledgeBaseConfiguration.html) 中包含 [SupplementalDataStorageLocation](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_SupplementalDataStorageLocation.html)。

  1. 在 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) 請求中 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html) 的 `parsingConfiguration` 欄位中包含 [ParsingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ParsingConfiguration.html)。
**注意**  
如果您省略此組態，則 Amazon Bedrock 知識庫會使用 Amazon Bedrock 預設剖析器。

如需如何在 API 中指定剖析策略的詳細資訊，請展開對應至您所要使用剖析策略的區段：

### Amazon Bedrock 預設剖析器
<a name="w2aac28c10c23c15c17c11c13b1"></a>

若要使用預設剖析器，請勿在 `VectorIngestionConfiguration` 中包含 `parsingConfiguration` 欄位。

### Amazon Bedrock Data Automation 剖析器 (預覽)
<a name="w2aac28c10c23c15c17c11c13b3"></a>

若要使用 Amazon Bedrock Data Automation 剖析器，請在 `ParsingConfiguration` 的 `parsingStrategy` 欄位中指定 `BEDROCK_DATA_AUTOMATION`，並在 `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>

若要使用基礎模型做為剖析器，請在 `ParsingConfiguration` 的 `parsingStrategy` 欄位中指定 `BEDROCK_FOUNDATION_MODEL`，並在 `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，您可以在 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html) 的 `chunkingConfiguration` 欄位中包含 [ChunkingConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ChunkingConfiguration.html)。

**注意**  
如果您省略此組態，Amazon Bedrock 會將您的內容分割成大約 300 個字符的區塊，同時保留句子邊界。

展開對應至您要使用之剖析策略的區段：

### 無群集
<a name="w2aac28c10c23c15c17c13c13b1"></a>

若要將資料來源中的每個文件視為單一來源區塊，請在 `ChunkingConfiguration` 的 `chunkingStrategy` 欄位中指定 `NONE`，如下列格式所示：

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

### 固定大小群集
<a name="w2aac28c10c23c15c17c13c13b3"></a>

若要將資料來源中的每個文件分割為大約相同大小的區塊，請在 `ChunkingConfiguration` 的 `chunkingStrategy` 欄位中指定 `FIXED_SIZE`，並在 `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，您可以在 [VectorIngestionConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_VectorIngestionConfiguration.html) 的 `CustomTransformationConfiguration` 欄位中包含 [CustomTransformationConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CustomTransformationConfiguration.html)，並指定 Lambda 的 ARN，如下列格式所示：

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

您也可以指定在套用 Lambda 函式後，存放輸出的 S3 位置。

您可以在套用 Amazon Bedrock 提供的其中一個群集選項之後，包含要套用 Lambda 函式的 `chunkingConfiguration` 欄位。