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

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

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

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

サポートされている機能

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

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

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

前提条件

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 内の各ファイルのドキュメントメタデータフィールド/属性を指定する個別のファイルを含めることができます。例えば、ドキュメント oscars-coverage_20240310.pdf にはニュース記事が含まれており、年とジャンルで分類できます。この例では、次の oscars-coverage_20240310.pdf.metadata.json ファイルを作成してバケットにアップロードします。

{ "metadataAttributes": { "genre": "entertainment", "year": 2024 } }

メタデータファイルは、関連するソースドキュメントファイルと同じ名前を使用し、ファイル名の末尾に .metadata.json を追加する必要があります。メタデータファイルは、Amazon S3 バケットのソースファイルと同じフォルダまたは場所に保存する必要があります。ファイルは 10 KB の制限を超えることはできません。サポートされている属性/フィールドデータ型とメタデータフィールドに適用できるフィルタリング演算子については、「メタデータとフィルタリング」を参照してください。

特定のコンテンツのクロールを含めたり除外したりできます。例えば、除外プレフィックス/正規表現パターンを指定して、ファイル名に「プライベート」が含まれているファイルのクロールをスキップできます。包含プレフィックス/正規表現パターンを指定して、特定のコンテンツエンティティまたはコンテンツタイプを含めることもできます。包含フィルターと除外フィルターを指定し、両方がドキュメントと一致する場合、除外フィルターが優先され、ドキュメントはクロールされません。

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

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

重要

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

Console

以下は、Amazon Bedrock ナレッジベースの Amazon S3 に接続するための設定の例です。データソースは、コンソールのナレッジベース作成ステップの一部として設定します。

  1. Amazon Bedrock のアクセス許可を持つ IAM ロール AWS Management Console を使用して にサインインし、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。 Amazon Bedrock の開始方法

  2. 左側のナビゲーションペインから、ナレッジベース を選択します。

  3. ナレッジベース セクションで、ナレッジベースの作成 を選択します。

  4. ナレッジベースの詳細を入力します。

    1. ナレッジベース名とオプションの説明を入力します。

    2. ナレッジベースの作成に必要なアクセス許可の AWS Identity and Access Management ロールを指定します。

      注記

      ナレッジベースを作成するためのコンソールステップの一部として、必要なアクセス許可を持つ IAM ロールを作成できます。ナレッジベースを作成するステップを完了すると IAM 、必要なすべてのアクセス許可を持つロールが特定のナレッジベースに適用されます。

    3. ナレッジベースに割り当てるタグを作成します。

    次のセクションに進み、データソースを設定します。

  5. データソースとして Amazon S3 を選択し、接続設定の詳細を指定します。

    1. データソース名を指定します。

    2. Amazon S3 バケットが現在の AWS アカウントにあるか、別の AWS アカウントにあるかを指定します。

    3. 既存の Amazon S3 バケットの場所を参照するか、URI を指定します。URI と ARN は、Amazon S3 コンソールのプロパティセクションにあります。バケットは、Amazon Bedrock ナレッジベースと同じリージョンにある必要があります。バケットにアクセスするにはアクセス許可が必要です。

      データ暗号化に独自のマネージド AWS KMS キーを使用することを選択できます。

    詳細設定を確認します。オプションで、選択したデフォルトの設定を変更できます。

  6. 詳細設定で一時的なデータ暗号化キーとデータ削除ポリシーを設定します。

    KMS key 設定では、カスタムキーを選択するか、デフォルトの が提供するデータ暗号化キーを使用できます。

    データを埋め込みに変換する際、 はデフォルトで、 が AWS 所有および管理するキーを使用して一時的なデータを Amazon Bedrock 暗号化します。独自の KMS キーを使用できます。詳細については、「データインジェスト時の一時データストレージの暗号化」を参照してください。

    データ削除ポリシー設定では、次のいずれかを選択できます。

    • 削除: ナレッジベースまたはデータソースリソースの削除時に、データソースに属するすべてのデータをベクトルストアから削除します。基盤となるベクトルストア自体は削除されず、データのみが削除されることに注意してください。 AWS アカウントが削除されると、このフラグは無視されます。

    • 保持: ナレッジベースまたはデータソースリソースを削除すると、ベクトルストア内のすべてのデータが保持されます。

    データソースの設定を続行します。

  7. デフォルトまたはカスタマイズされたチャンクおよび解析設定を選択します。

    1. カスタム設定を選択する場合は、次のいずれかのチャンクオプションを選択します。

      • 固定サイズのチャンク: コンテンツは、設定されたおおよそのトークンサイズのテキストのチャンクに分割されます。チャンクで を超えてはならないトークンの最大数と、連続するチャンク間の重複率を設定できます。

      • デフォルトのチャンク: コンテンツは最大 300 トークンのテキストのチャンクに分割されます。1 つのドキュメントまたはコンテンツに含まれるトークンが 300 個未満の場合、ドキュメントはそれ以上分割されません。

      • 階層チャンク: 親子チャンクのネストされた構造に整理されたコンテンツ。親チャンクトークンの最大サイズと子チャンクトークンの最大サイズを設定します。また、各親チャンクと各子の親間の重複トークンの絶対数を設定します。

      • セマンティックチャンク: 意味的に類似したテキストチャンクまたは文のグループに整理されたコンテンツ。ターゲット/現在の文を囲む文の最大数をグループ化するように設定します (バッファサイズ)。また、テキストを意味のあるチャンクに分割するためのブレークポイントパーセンタイルしきい値も設定します。

      • チャンクなし: 各ドキュメントは 1 つのテキストチャンクとして扱われます。ドキュメントを別々のファイルに分割して前処理することもできます。

      注記

      データソースの作成後にチャンク戦略を変更することはできません。

    2. ドキュメントを解析するために Amazon Bedrockの基盤モデルを使用して、標準テキストよりも多くのテキストを解析することを選択できます。例えば、ドキュメント内の表形式データを、構造をそのまま解析できます。基盤モデルのコストに関する情報のAmazon Bedrock 料金を表示します。

    3. AWS Lambda 関数を使用してチャンク戦略をカスタマイズし、ドキュメントメタデータ属性/フィールドの処理方法と取り込み方法を選択できます。Lambda 関数の入力と出力の Amazon S3 バケットの場所を指定します。

    次のセクションに移動して、ベクトルストアを設定します。

  8. データをベクトル埋め込みに変換するモデルを選択します。

    Amazon Bedrock が埋め込みを保存、更新、管理できるようにするベクトルストアを作成します。新しいベクトルストアをすばやく作成することも、作成したサポートされているベクトルストアから選択することもできます。新しいベクトルストアを作成すると、Amazon OpenSearch Serverless ベクトル検索コレクションと、必須フィールドを含むインデックスが自動的に設定されます。サポートされているベクトルストアから選択する場合は、ベクトルフィールド名とメタデータフィールド名をマッピングする必要があります。

    次のセクションに進み、ナレッジベースの設定を確認します。

  9. ナレッジベースの詳細を確認します。先に進む前に任意のセクションを編集し、ナレッジベースを作成できます。

    注記

    ナレッジベースの作成にかかる時間は、取り込むデータの量と特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスが Ready に変わります。

    ナレッジベースの作成の準備が完了したら、データソースを初めて同期し、コンテンツを最新の状態に保ちます。コンソールでナレッジベースを選択し、データソースの概要セクションで同期を選択します。

API

以下は、Amazon Bedrock ナレッジベースの Amazon S3 に接続するための設定の例です。API を使用して、 AWS CLI または Python などのサポートされている SDK でデータソースを設定します。を呼び出した後CreateKnowledgeBaseCreateDataSourceを呼び出して、 の接続情報を使用してデータソースを作成します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" }