連接至知識庫的 Amazon S3 - Amazon Bedrock

連接至知識庫的 Amazon S3

Amazon S3 是將資料當做物件存放在儲存貯體中的物件儲存服務。您可以使用 Amazon Bedrock 的 AWS 管理主控台CreateDataSource API 來連線至 Amazon Bedrock 知識庫的 Amazon S3 儲存貯體 (請參閱 Amazon Bedrock 支援的 SDK 和 AWS CLI)。

您可以使用 Amazon S3 主控台或 API,將一小批檔案上傳至 Amazon S3 儲存貯體。或者,您可以使用 AWS DataSync 持續將多個檔案上傳至 S3,並依排程從內部部署、邊緣、其他雲端或 AWS 儲存體傳輸檔案。

目前僅支援一般用途 S3 儲存貯體。

可網路爬取的檔案數量及每個檔案大小 (MB) 都有限制。請參閱知識庫的配額

支援的功能

  • 文件中繼資料欄位

  • 包含字首

  • 新增、更新、刪除內容的增量內容同步

必要條件

在 Amazon S3 中,請確定您

  • 請注意 Amazon S3 儲存貯體 URI、Amazon Resource Name (ARN),以及儲存貯體擁有者的 AWS 帳戶 ID。您可以在 Amazon S3 主控台的屬性區段中找到 URI 和 ARN。您的儲存貯體必須與 Amazon Bedrock 知識庫位於相同的區域中。您必須具有存取儲存貯體的許可。

在您的 AWS 帳戶中,請確認已完成下列項目

  • 在知識庫的 AWS Identity and Access Management (IAM) 角色/許可政策中包含要連接至資料來源的必要許可。如需將此資料來源新增至知識庫 IAM 角色的必要許可資訊,請參閱存取資料來源的許可

注意

如果您使用主控台,則可以在建立知識庫的步驟中,為您建立具有所有必要許可的 IAM 角色。在您設定資料來源和其他組態之後,具有所有必要許可的 IAM 角色會套用至特定知識庫。

連線組態

若要連線至 Amazon S3 儲存貯體,您必須提供必要的組態資訊,Amazon Bedrock 才能存取和網路爬取資料。您也必須遵循 必要條件

本節包含此資料來源的組態範例。

如需包含篩選條件、文件中繼資料欄位、增量同步以及這些運作方式的詳細資訊,請選取下列各項:

您可以包含一個獨立的檔案,該檔案會指定 Amazon S3 資料來源中每個檔案的文件中繼資料欄位/屬性,以及在為資料來源編製索引至向量存放區時是否將其包含在嵌入中。例如,您可以建立以下格式的檔案,將其命名為 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 的限制。如需可套用至中繼資料欄位之支援屬性/欄位資料類型和篩選運算子的詳細資訊,請參閱中繼資料和篩選

您可以指定包含字首,這是 Amazon S3 路徑字首,您可以在其中使用 S3 檔案或資料夾,而不是整個儲存貯體來建立 S3 資料來源連接器。

每次資料來源與知識庫同步時,資料來源連接器都會網路爬取新的、修改過的和刪除的內容。Amazon Bedrock 可以使用資料來源的機制來追蹤自上次同步以來變更的內容變更和網路爬取內容。當您第一次將資料來源與知識庫同步時,依預設會網路爬取所有內容。

若要將資料來源與知識庫同步,請使用 StartIngestionJob API,或在主控台中選取知識庫,然後在資料來源概觀區段中選取同步

重要

您從資料來源同步的所有資料可供具有 bedrock:Retrieve 許可能擷取資料的任何人使用。這也可以包含具有受控資料來源許可的任何資料。如需詳細資訊,請參閱知識庫許可

Console
將 Amazon S3 儲存貯體連接到知識庫
  1. 遵循 透過連線至 Amazon Bedrock 知識庫中的資料來源來建立知識庫 中的步驟,然後選擇 Amazon S3 作為資料來源。

  2. 提供資料來源的名稱。

  3. 指定 Amazon S3 儲存貯體位於您目前的 AWS 帳戶中,還是其他 AWS 帳戶中。您的儲存貯體必須與知識庫位於相同的區域中。

  4. (選用) 如果 Amazon S3 儲存貯體是使用 KMS 金鑰加密的,請包含該金鑰。如需詳細資訊,請參閱 可在 Amazon S3 中為資料來源將 AWS KMS 金鑰解密的許可權

  5. (選用) 在內容剖析和分塊區段中,您可以自訂如何將資料剖析和分塊。請參閱下列資源進一步了解這些自訂項目:

  6. 進階設定區段中,您可以選擇設定下列項目:

    • 用於暫時性資料儲存的 KMS 金鑰。– 您可以使用預設 AWS 受管金鑰 或您自己的 KMS 金鑰,在將資料轉換為嵌入時加密暫時性資料。如需詳細資訊,請參閱 資料擷取期間的暫時性資料儲存加密

    • 資料刪除政策 – 您可以刪除預設存放在向量存放區中資料來源的向量嵌入,或選擇保留向量存放區資料。

  7. 繼續選擇嵌入模型和向量存放區。若要查看剩餘的步驟,請返回透過連線至 Amazon Bedrock 知識庫中的資料來源來建立知識庫,並在連接資料來源後繼續進行該步驟。

API

以下是 Amazon Bedrock 知識庫連線至 Amazon S3 的組態範例。您可以使用 API 搭配 AWS CLI 或支援的 SDK (例如 Python) 來設定資料來源。呼叫 CreateKnowledgeBase 之後,您可以呼叫 CreateDataSource,在 dataSourceConfiguration 中使用連線資訊建立資料來源。

若要了解您可以透過包含選用 vectorIngestionConfiguration 欄位套用至擷取的自訂項目,請參閱自訂資料來源的擷取

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" }