ナレッジベースの Amazon S3 に接続する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ナレッジベースの Amazon S3 に接続する

Amazon S3 は、データをオブジェクトとしてバケットに保存するオブジェクトストレージサービスです。Amazon Bedrock AWS の マネジメントコンソールまたは CreateDataSource API を使用して、Amazon Bedrock ナレッジベースの Amazon S3 バケットに接続できます (「Amazon Bedrock がサポートする SDKs AWS CLI」を参照)。 CreateDataSource

Amazon S3 コンソールまたは API を使用して、ファイルの小さなバッチを Amazon S3 バケットにアップロードできます。または、 AWS DataSyncを使用して複数のファイルを S3 に継続的にアップロードし、オンプレミス、エッジ、その他のクラウド、または AWS ストレージからスケジュールに従ってファイルを転送することもできます。

現在、汎用 S3 バケットのみがサポートされています。

クロールできるファイル数とファイルあたりの MB に制限があります。「Quotas for knowledge bases」を参照してください。

サポートされている機能

  • ドキュメントメタデータフィールド

  • 包含コンテンツフィルター

  • 追加、更新、削除されたコンテンツの増分同期

前提条件

Amazon S3 で、以下を確認してください。

  • Amazon S3 バケット URI、Amazon リソースネーム (ARN)、およびバケットの所有者の AWS アカウント ID を書き留めます。URI と ARN は、Amazon S3 コンソールのプロパティセクションにあります。バケットは Amazon Bedrock ナレッジベースと同じリージョンにある必要があります。バケットにアクセスするにはアクセス許可が必要です。

AWS アカウントで、以下を確認してください

  • ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。このデータソースがナレッジベース IAM ロールに追加するために必要なアクセス許可については、「データソースへのアクセス許可」を参照してください。

注記

コンソールを使用する場合、ナレッジベースを作成するステップの一部として、必要なすべてのアクセス許可を持つ IAM ロールを作成できます。データソースやその他の設定を行うと、必要なすべてのアクセス許可を持つ IAM ロールが特定のナレッジベースに適用されます。

接続設定

Amazon S3 バケットに接続するには、Amazon Bedrock がデータにアクセスしてクロールできるように、必要な設定情報を提供する必要があります。また、前提条件 に従う必要があります。

このデータソースの設定例をこのセクションに示します。

包含フィルター、ドキュメントメタデータフィールド、増分同期、およびこれらの仕組みの詳細については、以下を選択してください。

Amazon S3 データソース内の各ファイルのドキュメントメタデータフィールド/属性を指定する個別のファイルと、データソースをベクトルストアにインデックス化するときに埋め込みに含めるかどうかを指定する個別のファイルを含めることができます。たとえば、次の形式でファイルを作成し、example.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 データソースコネクタを作成できます。たとえば、プレフィックスは「.*\\.pdf」にすることができます。

データソースコネクタは、データソースがナレッジベースと同期するたびに、新規、変更、削除されたコンテンツをクロールします。 Amazon Bedrock は、データソースのメカニズムを使用してコンテンツの変更を追跡し、前回の同期以降に変更されたコンテンツをクロールできます。データソースをナレッジベースと初めて同期すると、デフォルトですべてのコンテンツがクロールされます。

データソースをナレッジベースと同期するには、StartIngestionJob API を使用するか、コンソールでナレッジベースを選択し、データソースの概要セクションで [同期] を選択します。

重要

データソースから同期するすべてのデータは、データを取得する bedrock:Retrieve アクセス許可を持つすべてのユーザーが利用できるようになります。これには、データソースのアクセス許可が制御されているデータを含めることもできます。詳細については、「Knowledge base permissions」を参照してください。

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 または Python などのサポートされている SDK を使用して設定します。CreateKnowledgeBase を呼び出した後、CreateDataSource を呼び出して、dataSourceConfiguration の接続情報を使用してデータソースを作成します。

オプションの vectorIngestionConfigurationフィールドを含めることで取り込みに適用できるカスタマイズについては、「」を参照してくださいデータソースの取り込みをカスタマイズする

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