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

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

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

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

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

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

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

サポートされている機能

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

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

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

前提条件

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

  • Amazon S3 バケット URI、Amazon リソースネーム (ARN)、およびバケット所有者のアカウント ID を書き留めます AWS 。URI および は、Amazon S3 コンソールのARNプロパティセクションにあります。バケットは 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 の制限を超えることはできません。サポートされている属性/フィールドデータ型とメタデータフィールドに適用できるフィルタリング演算子の詳細については、「メタデータとフィルタリング」を参照してください。

特定のコンテンツのクロールを含めることも除外することもできます。例えば、特定のコンテンツエンティティまたはコンテンツタイプを含める除外prefix/regular expression pattern to skip crawling any file that contains “private” in the file name. You could also specify an inclusion prefix/regular式パターンを指定できます。包含フィルターと除外フィルターを指定し、両方がドキュメントに一致する場合、除外フィルターが優先され、ドキュメントはクロールされません。

PDF ファイルのみを含むフィルターパターンの例: ".*\\.pdf"

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

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

重要

データソースから同期するすべてのデータは、データを取得する 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 に接続するための設定の例です。または Python などの AWS CLI サポートされている APIでSDK、 を使用してデータソースを設定します。を呼び出した後CreateKnowledgeBaseCreateDataSourceを呼び出して、 の接続情報を使用してデータソースを作成します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" }