自訂資料來源的擷取
您在 AWS 管理主控台 中連線至資料來源時可以自訂向量擷取,或在傳送 CreateDataSource 請求時修改 vectorIngestionConfiguration 欄位的值。
選取主題,了解如何在連線至資料來源時包含用於自訂擷取的組態:
選擇要用於剖析的工具
您可以自訂如何剖析資料中的文件。若要了解在 Amazon Bedrock 知識庫中剖析資料的選項,請參閱 剖析資料來源的選項。
警告
在連線至資料來源之後,便無法變更剖析策略。若要使用不同的剖析策略,您可以新增新的資料來源。
建立知識庫之後,您就無法新增 S3 位置來存放多模態資料 (包括影像、圖形、圖表和資料表)。如果您想要包含多模態資料並使用支援它的剖析器,必須建立新的知識庫。
選擇剖析策略所涉及的步驟取決於您使用的是 AWS 管理主控台 或 Amazon Bedrock API,以及您選擇的剖析方法。如果您選擇支援多模態資料的剖析方法,則必須指定要在其中存放從文件中擷取之多模態資料的 S3 URI。可在知識庫查詢中傳回此資料。
-
在 AWS 管理主控台 中,執行以下操作:
-
當您在設定知識庫時,或是將新的資料來源新增至現有的知識庫時,請選取剖析策略。
-
(如果您選擇 Amazon Bedrock Data Automation 或基礎模型作為剖析策略) 當您選取嵌入模型並設定向量存放區時,指定要在多模態儲存目的地區段中存放從文件擷取之多模型資料的 S3 URI。在此步驟中,您也可以選擇性地使用客戶受管金鑰來加密 S3 資料。
-
-
在 Amazon Bedrock API 中,執行下列操作:
-
(如果您打算使用 Amazon Bedrock Data Automation 或基礎模型作為剖析策略) 在 CreateKnowledgeBase 請求的 VectorKnowledgeBaseConfiguration 中包含 SupplementalDataStorageLocation。
-
在 CreateDataSource 請求中 VectorIngestionConfiguration 的
parsingConfiguration欄位中包含 ParsingConfiguration。注意
如果您省略此組態,則 Amazon Bedrock 知識庫會使用 Amazon Bedrock 預設剖析器。
-
如需如何在 API 中指定剖析策略的詳細資訊,請展開對應至您所要使用剖析策略的區段:
若要使用預設剖析器,請勿在 VectorIngestionConfiguration 中包含 parsingConfiguration 欄位。
若要使用 Amazon Bedrock Data Automation 剖析器,請在 ParsingConfiguration 的 parsingStrategy 欄位中指定 BEDROCK_DATA_AUTOMATION,並在 bedrockDataAutomationConfiguration 欄位中包含 BedrockDataAutomationConfiguration,格式如下:
{ "parsingStrategy": "BEDROCK_DATA_AUTOMATION", "bedrockDataAutomationConfiguration": { "parsingModality": "string" } }
若要使用基礎模型做為剖析器,請在 ParsingConfiguration 的 parsingStrategy 欄位中指定 BEDROCK_FOUNDATION_MODEL,並在 bedrockFoundationModelConfiguration 欄位中包含 BedrockFoundationModelConfiguration,如下所示:
{ "parsingStrategy": "BEDROCK_FOUNDATION_MODEL", "bedrockFoundationModelConfiguration": { "modelArn": "string", "parsingModality": "string", "parsingPrompt": { "parsingPromptText": "string" } } }
選擇群集策略
您可以自訂資料中的文件在儲存與擷取時的分塊方式。若要了解在 Amazon Bedrock 知識庫中群集資料的選項,請參閱 內容群集如何適用於知識庫。
警告
在連線至資料來源之後,便無法變更分塊策略。
在 AWS 管理主控台 中,您要選擇在連線至資料來源時的群集策略。使用 Amazon Bedrock API,您可以在 VectorIngestionConfiguration 的 chunkingConfiguration 欄位中包含 ChunkingConfiguration。
注意
如果您省略此組態,Amazon Bedrock 會將您的內容分割成大約 300 個字符的區塊,同時保留句子邊界。
展開對應至您要使用之剖析策略的區段:
若要將資料來源中的每個文件視為單一來源區塊,請在 ChunkingConfiguration 的 chunkingStrategy 欄位中指定 NONE,如下列格式所示:
{ "chunkingStrategy": "NONE" }
若要將資料來源中的每個文件分割為大約相同大小的區塊,請在 ChunkingConfiguration 的 chunkingStrategy 欄位中指定 FIXED_SIZE,並在 fixedSizeChunkingConfiguration 欄位中包含 FixedSizeChunkingConfiguration,如下列格式所示:
{ "chunkingStrategy": "FIXED_SIZE", "fixedSizeChunkingConfiguration": { "maxTokens": number, "overlapPercentage": number } }
若要將資料來源中的每個文件分成兩個層級,其中第二層包含衍生自第一層的較小區塊,請在 ChunkingConfiguration 的 chunkingStrategy 欄位中指定 HIERARCHICAL,並包含 hierarchicalChunkingConfiguration 欄位,如下列格式所示:
{ "chunkingStrategy": "HIERARCHICAL", "hierarchicalChunkingConfiguration": { "levelConfigurations": [{ "maxTokens": number }], "overlapTokens": number } }
若要將資料來源中的每個文件分割為以語意意義優先於語法結構的區塊,請在 ChunkingConfiguration 的 chunkingStrategy 欄位中指定 SEMANTIC,並包含 semanticChunkingConfiguration 欄位,如下列格式所示:
{ "chunkingStrategy": "SEMANTIC", "semanticChunkingConfiguration": { "breakpointPercentileThreshold": number, "bufferSize": number, "maxTokens": number } }
在擷取期間使用 Lambda 函數
您可以透過下列方式,使用 Lambda 函數將資料中的來源區塊寫入向量存放區:
-
包含群集邏輯以提供自訂群集策略。
-
包含邏輯以指定區塊層級中繼資料。
若要了解如何撰寫用於擷取的自訂 Lambda 函數,請參閱 使用自訂轉換 Lambda 函數來定義如何擷取您的資料。在 AWS 管理主控台 中,您要選擇在連線至資料來源時的 Lambda 函數。使用 Amazon Bedrock API,您可以在 VectorIngestionConfiguration 的 CustomTransformationConfiguration 欄位中包含 CustomTransformationConfiguration,並指定 Lambda 的 ARN,如下列格式所示:
{ "transformations": [{ "transformationFunction": { "transformationLambdaConfiguration": { "lambdaArn": "string" } }, "stepToApply": "POST_CHUNKING" }], "intermediateStorage": { "s3Location": { "uri": "string" } } }
您也可以指定在套用 Lambda 函數後,存放輸出的 S3 位置。
您可以在套用 Amazon Bedrock 提供的其中一個群集選項之後,包含要套用 Lambda 函數的 chunkingConfiguration 欄位。