本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Connect 到 Amazon S3 以獲取您的 Amazon 基岩知識庫
Amazon S3 是將資料當做物件存放在儲存貯體中的物件儲存服務。您可以使用任何一個連接到您的 Amazon S3 儲存貯體,以取得您的 Amazon 基岩知識庫 AWS 適用於 Amazon 基岩或亞馬遜基岩的管理主控台 CreateDataSourceAPI(請參閱支援的 Amazon 基岩和 SDKs AWS CLI).
您可以使用 Amazon S3 主控台或將一小批檔案上傳到 Amazon S3 儲存貯體API。您也可以使用 AWS DataSync持續將多個檔案上傳至 S3,並按排程從內部部署、邊緣、其他雲端或傳輸檔案 AWS 存儲。
目前僅支援一般用途 S3 儲存貯體。
每個檔案可以編目的檔案數量和 MB 有限制。如需知識庫,請參閱配額。
支援的功能
-
文件元資料欄位
-
包含/排除內容過濾器
-
增量內容同步新增、更新、刪除的內容
必要條件
在 Amazon S3 中,請確保您:
在您的 AWS 帳戶,請確保您:
如果您使用主控台, IAM 可以為您創建具有所有必需權限的角色,作為創建知識庫步驟的一部分。設定資料來源和其他設定之後, IAM 具有所有必需權限的角色會套用至您的特定知識庫。
連接配置
若要連接到 Amazon S3 儲存貯體,您必須提供必要的組態資訊,以便 Amazon 基岩能夠存取和抓取您的資料。您還必須遵循必要條件.
此資料來源的組態範例包含在本節中。
如需包含/排除篩選器、文件中繼資料欄位、增量同步,以及這些篩選器如何運作的詳細資訊,請選取下列選項:
您可以包含個別檔案,以指定 Amazon S3 中每個檔案的文件中繼資料欄位/屬性。例如,文檔 oscars-coverage_20240310.pdf
包含新聞文章,可以按年份和類型進行分類。在此範例中,請按照下列方式建立並上傳至您的儲存貯體 oscars-coverage_20240310.pdf.metadata.json
file.
{
"metadataAttributes": {
"genre": "entertainment",
"year": 2024
}
}
中繼資料檔案必須使用與其關聯來源文件檔案相同的名稱,並.metadata.json
附加在檔案名稱的末尾。中繼資料檔案必須與 Amazon S3 儲存貯體中的來源檔案存放在相同的資料夾或位置。檔案不得超過 10 KB 的限制。如需支援的屬性/欄位資料類型,以及可套用至中繼資料欄位的篩選運算子的相關資訊,請參閱中繼資料和篩選。
您可以包含或排除探索特定內容。例如,您可以指定排除首碼/規則運算式模式,以略過探索檔案名稱中包含「private」的任何檔案。您也可以指定包含首碼/規則運算式模式,以包含某些內容實體或內容類型。如果您指定包含和排除篩選器,且兩者都符合文件,則排除篩選器會優先執行,而且不會編目文件。
僅包含PDF檔案的過濾器模式範例:「.*\\. pdf」
每次資料來源與您的知識庫同步時,資料來源連接器都會檢索新的、已修改的和已刪除的內容。 Amazon Bedrock 可以使用資料來源的機制來追蹤自上次同步以來變更的內容和編目內容。當您第一次將資料來源與知識庫同步時,依預設會檢索所有內容。
若要將資料來源與知識庫同步,請在主控台中使用StartIngestionJobAPI或選取您的知識庫,然後在資料來源概觀區段中選取 [同步]。
您從資料來源同步的所有資料都可供具有擷取資料bedrock:Retrieve
權限的任何人使用。這也可以包括任何具有受控資料來源權限的資料。如需詳細資訊,請參閱知識庫權限。
- Console
-
以下是針對您的 Amazon 基岩知識庫連接到 Amazon S3 的組態範例。您可以將資料來源設定為主控台中知識庫建立步驟的一部分。
-
登入 AWS Management Console 使用具有 Amazon 基岩許可的IAM角色,並在以下位置打開 Amazon 基岩控制台。https://console.aws.amazon.com/bedrock/
-
在左側導覽窗格中,選取 [知識庫]。
-
在 [知識庫] 區段中,選取 [建立知識庫]。
-
提供知識庫詳細資料。
-
提供知識庫名稱和可選描述。
-
提供 AWS Identity and Access Management 角色,用於建立知識庫所需的必要存取權限。
所以此 IAM 可以為您建立具有所有必要權限的角色,作為建立知識庫的主控台步驟的一部分。完成建立知識庫的步驟之後, IAM 具有所有必需權限的角色會套用至您的特定知識庫。
-
建立您要指派給知識庫的任何標籤。
轉到下一節以配置您的數據源。
-
選擇 Amazon S3 做為您的資料來源,並提供連線組態詳細資訊。
-
提供資料來源名稱。
-
指定您的 Amazon S3 儲存貯體是否在您目前的儲存貯體 AWS 帳戶或其他 AWS 帳戶。
-
從現有的 Amazon S3 儲存貯體位置瀏覽或提供URI. 您可以ARN在 Amazon S3 主控台的屬性部分中找到URI和。您的儲存貯體必須位於與 Amazon 基岩知識庫相同的區域。您必須擁有存取值區的權限。
您可以選擇使用自己的託管 AWS KMS 用於資料加密的金鑰。
檢查進階設定。您可以選擇性地變更預設選取的設定。
-
在進階設定中設定暫時性資料加密金鑰和資料刪除政策。
用於 KMS key 設定時,您可以選擇自訂金鑰或使用預設提供的資料加密金鑰。
將數據轉換為嵌入時, Amazon Bedrock 使用密鑰加密您的臨時數據 AWS 擁有和管理,默認情況下。您可以使用自己的KMS密鑰。如需詳細資訊,請參閱資料擷取期間的暫時性資料儲存加密。
對於資料刪除原則設定,您可以選擇:
繼續設定資料來源。
-
選擇預設或自訂的區塊和剖析組態。
-
如果您選擇自訂設定,請選取下列其中一個區塊選項:
-
固定大小的塊:內容拆分為您設置的近似令牌大小的文本塊。您可以設定不得超過區塊的記號數目上限,以及連續區塊之間的重疊百分比。
-
默認塊:內容分割成多達 300 個令牌的文本塊。如果單一文件或內容片段包含少於 300 個標記,則不會進一步分割文件。
-
分層塊:內容組織成父子塊的嵌套結構。您可以設置最大父塊令牌大小和最大子塊令牌大小。您還可以設置連續父塊和連續子塊之間的重疊令牌的絕對數量。
-
語義塊:內容組織成語義相似的文本塊或句子組。您可以將目標/當前句子周圍的最大句子數設置為組合在一起(緩衝區大小)。您也可以設定中斷點百分位數閾值,以將文字分割成有意義的區塊。語義塊使用基礎模型。檢視 Amazon Bedrock 定價基礎模型的成本信息。
-
沒有區塊:每個文檔被視為一個單一的文本塊。您可能希望通過將文檔拆分為單獨的文件來預處理它們。
-
您可以選擇使用 Amazon Bedrock解析文檔以解析比標準文本更多的基礎模型。例如,您可以在文件中剖析表格式資料,但其結構完整無缺。檢視 Amazon Bedrock 定價基礎模型的成本信息。
-
您可以選擇使用 AWS Lambda 用於自定義分塊策略以及如何處理和攝取文檔元數據屬性/字段的功能。提供 Amazon S3 Lambda 函數輸入和輸出的值區位置。
轉到下一節以配置向量存儲。
-
選擇將資料轉換為向量嵌入的模型。
建立向量存放區以允許 Amazon 基岩存放、更新和管理嵌入。您可以快速建立新的向量存放區,或從已建立的支援向量存放區中進行選取。如果您建立新的向量存放區,系統會為您設定 Amazon OpenSearch 無伺服器向量搜尋集合和索引,其中包含必要欄位。如果您從支援的向量存放區中選取,則必須對應向量欄位名稱和中繼資料欄位名稱。
移至下一節以檢閱您的知識庫組態。
-
檢查您的知識庫的詳細信息。您可以在繼續前進並創建知識庫之前編輯任何部分。
建立知識庫所需的時間取決於您的特定組態。知識庫的建立完成後,知識庫的狀態會變更為其已就緒或可用的狀態。
知識庫準備就緒且可用之後,請在您想要保持內容保持最新狀態時,首次同步資料來源。在主控台中選取您的知識庫,然後在資料來源概觀區段中選取 [同步]。
- API
-
以下是針對您的 Amazon 基岩知識庫連接到 Amazon S3 的組態範例。您可以使用配置您的資料來源 API AWS CLI 或支持SDK,例如 Python。打電話後 CreateKnowledgeBase,您可CreateDataSource以打電話建立包含連線資訊的資料來源dataSourceConfiguration
。請記住,還要在中指定您的分塊策略/方法以vectorIngestionConfiguration
及中的數據刪除策略。dataDeletionPolicy
AWS Command Line Interface
aws bedrock 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": [
".*\\.pdf"
]
},
"type": "S3"
}