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

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

連接至知識庫的 Amazon S3

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

多模態內容支援

Amazon S3 資料來源支援多模式內容,包括影像、音訊和影片檔案。如需使用多模態內容的完整指引,請參閱 建立多模態內容的知識庫

您可以使用 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" }