ナレッジベースを作成する - Amazon Bedrock

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

ナレッジベースを作成する

注記

ルートユーザーを使用してナレッジベースを作成することはできません。これらのステップを開始する前に、IAM ユーザーでログインします。

Amazon S3 でデータソースと任意のベクトルストアを設定したら、ナレッジベースを作成できます。選択した方法に対応するタブを選択し、ステップに従います。

Console
ナレッジベースを作成するには
  1. にサインインし AWS Management Console、https://console.aws.amazon.com/bedrock/ で Amazon Bedrock コンソールを開きます。

  2. 左のナビゲーションペインで [ナレッジベース] を選択します。

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

  4. ナレッジベースの詳細の提供ページで、次の設定を行います。

    1. (オプション) ナレッジベースの詳細セクションで、デフォルトの名前を変更し、ナレッジベースの説明を入力します。

    2. IAM アクセス許可セクションで、他の AWS のサービスにアクセスするためのアクセス許可を Amazon Bedrock に付与する AWS Identity and Access Management (IAM) ロールを選択します。Amazon Bedrock にサービスロールを作成するか、 を作成したカスタムロールを選択できます。

    3. (オプション) ナレッジベースにタグを追加します。詳細については、「リソースのタグ付け」を参照してください。

    4. [Next (次へ)] を選択します。

  5. データソースの設定ページで、ナレッジベースに使用するデータソースの情報を入力します。

    1. (オプション) デフォルトのデータソース名 を変更します。

    2. データソースの場所現在のアカウントまたはその他のアカウントを選択する

    3. 準備したデータソースのファイルを含むオブジェクトの S3 URI を指定します。 ナレッジベースのデータソースを設定するその他のアカウントを選択した場合、他のアカウントの Amazon S3 バケットポリシー、AWS KMS キーポリシー、および現在のアカウントのナレッジベースロールを更新する必要がある場合があります。

      注記

      作成するナレッジベースと同じリージョンの Amazon S3 バケットを選択します。そうしないと、データソースは の同期に失敗します。

    4. カスタマーマネージドキーで Amazon S3 データを暗号化した場合は、Amazon S3 データのカスタマーマネージド AWS KMS キーを追加を選択し、KMS キーを選択して Amazon Bedrock が復号できるようにします。詳細については、「Amazon OpenSearch Service に渡される情報の暗号化」を参照してください。

    5. (オプション) 次の詳細設定を設定するには、詳細設定 - オプションセクションを展開します。

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

      2. データソースのチャンク戦略には、次のオプションから選択します。

        • デフォルトのチャンク化 — デフォルトでは、Amazon Bedrock はソースデータを自動的にチャンクに分割し、各チャンクには最大で 300 個のトークンが含まれます。300 個未満のトークンしか含まれない場合、ドキュメントは分割されません。

        • 固定サイズのチャンク化 — Amazon Bedrock は、ソースデータをユーザーが設定したおおよそのサイズのチャンクに分割します。次のオプションを設定します。

          • 最大トークン — Amazon Bedrock は、選択したトークン数以下のチャンクを作成します。

          • チャンク間のオーバーラップ率 — 各チャンクは、選択した割合だけ連続するチャンクと重複します。

        • チャンク化なし — Amazon Bedrock は各ファイルを 1 つのチャンクとして扱います。このオプションを選択した場合、ドキュメントを別々のファイルに分割して前処理することをお勧めします。

        注記

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

      3. データソースのデータ削除ポリシーの次のオプションから選択します。

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

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

    6. [次へ] を選択します。

  6. 「埋め込みモデル」セクションで、サポートされている埋め込みモデルを選択して、データをナレッジベースのベクトル埋め込みに変換します。

  7. 「ベクトルデータベース」セクションで、次のいずれかのオプションを選択して、ナレッジベースのベクトル埋め込みを保存します。

    • 新しいベクトルストアのクイック作成 – Amazon Bedrock は、Amazon OpenSearch Serverless ベクトル検索コレクションを作成します。このオプションでは、必須フィールドと必要な設定を使用して、パブリックベクトル検索コレクションとベクトルインデックスが設定されます。コレクションを作成したら、Amazon OpenSearch Serverless コンソールまたは AWS API を使用して管理できます。詳細については、「Amazon OpenSearch Service デベロッパーガイド」の「ベクトル検索コレクションの使用」を参照してください。このオプションを選択すると、オプションで次の設定を有効にできます。

      1. インフラストラクチャに障害が発生した場合にベクトルストアの可用性が損なわれないように、冗長なアクティブレプリカを有効にするには、冗長性を有効にする (アクティブレプリカ) を選択します。

        注記

        ナレッジベースをテストしている間は、このオプションを無効にしたままにしておくことをお勧めします。本番環境にデプロイする準備ができたら、冗長なアクティブレプリカを有効にすることをお勧めします。料金の詳細については、 OpenSearch 「Serverless の料金」を参照してください。

      2. カスタマーマネージドキーを使用して自動ベクトルストアを暗号化するには、Amazon OpenSearch Serverless ベクトルにカスタマーマネージド KMS キーを追加 – オプションを選択し、キーを選択します。詳細については、「Amazon OpenSearch Service に渡される情報の暗号化」を参照してください。

    • 作成したベクトルストアを選択する – 既に作成したベクトルデータベースを含むサービスを選択します。Amazon Bedrock が埋め込みを保存、更新、管理できるようにナレッジベースの情報をデータベースにマッピングするためのフィールドに入力します。これらのフィールドが作成したフィールドにどのようにマッピングされるかの詳細については、「」を参照してくださいサポートされているベクトルストアでナレッジベースのベクトルインデックスを設定する

      注記

      Amazon OpenSearch Serverless、Amazon Aurora、または MongoDB Atlas でデータベースを使用する場合は、事前にフィールドマッピングでフィールドを設定しておく必要があります。Pinecone または でデータベースを使用する場合Redis Enterprise Cloud、ここでこれらのフィールドの名前を指定できます。Amazon Bedrock はベクトルストアに動的にそれらを作成します。

  8. [次へ] を選択します。

  9. [確認および作成] ページで、ナレッジベースの設定と詳細を確認します。変更が必要なセクションで編集を選択します。問題がなければ、[ナレッジベースを作成] を選択します。

  10. ナレッジベースの作成にかかる時間は、入力したデータの量に左右されます。ナレッジベースの作成が完了すると、ナレッジベースのステータスReady に変わります。

API

ナレッジベースを作成するには、Agents for Amazon Bedrock のビルドタイムエンドポイントを使用してCreateKnowledgeBaseリクエストを送信し、名前、説明、実行手順、およびオーケストレーションに使用する基盤モデルを指定します。

注記

Amazon Bedrock に Amazon OpenSearch Service でベクトルストアの作成と管理を許可する場合は、 コンソールを使用します。詳細については、「ナレッジベースを作成する」を参照してください。

  • ナレッジベースを作成するアクセス許可がある ARN を roleArn フィールドで指定します。

  • 使用する埋め込みモデルを knowledgeBaseConfiguration オブジェクトの embeddingModelArn フィールドで指定します。

  • ベクトルストアの構成を storageConfiguration オブジェクトで指定します。詳細については、「サポートされているベクトルストアでナレッジベースのベクトルインデックスを設定する」を参照してください。

    • Amazon OpenSearch Service データベースの場合は、 opensearchServerlessConfiguration オブジェクトを使用します。

    • Pinecone データベースの場合は、 pineconeConfiguration オブジェクトを使用します。

    • Redis Enterprise Cloud データベースの場合は、 redisEnterpriseCloudConfiguration オブジェクトを使用します。

    • Amazon Aurora データベースの場合は、 rdsConfiguration オブジェクトを使用します。

    • MongoDB Atlas データベースの場合は、 mongodbConfiguration オブジェクトを使用します。

ナレッジベースを作成したら、ナレッジベースのファイルを含むデータソースを S3 バケットから作成します。データソースを作成するには、 CreateDataSource リクエストを送信します。

  • dataSourceConfiguration フィールドにデータソースファイルを含む S3 バケットの情報を入力します。

  • vectorIngestionConfiguration フィールドでデータソースをチャンクする方法を指定します。詳細については、「ナレッジベースのデータソースを設定する」を参照してください。

    注記

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

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

  • (オプション) Amazon Bedrock は、データを埋め込みに変換する際に、デフォルトで が AWS 所有および管理するキーを使用してデータを暗号化します。独自の KMS キーを使用するには、 serverSideEncryptionConfiguration オブジェクトに含めます。詳細については、「ナレッジベースリソースの暗号化」を参照してください。

ナレッジベースのセキュリティ設定をセットアップする

ナレッジベースを作成したら、次のセキュリティ設定を行う必要がある場合があります。

ナレッジベースのデータアクセスポリシーを設定する

カスタムロール を使用している場合は、新しく作成したナレッジベースのセキュリティ設定をセットアップします。Amazon Bedrock にサービスロールを作成させる場合は、このステップをスキップできます。設定するデータベースに対応するタブの手順に従います。

Amazon OpenSearch Serverless

Amazon OpenSearch Serverless コレクションへのアクセスをナレッジベースサービスロールに制限するには、データアクセスポリシーを作成します。これを行うには、次の方法があります。

Amazon OpenSearch Serverless コレクションとサービスロールを指定して、次のデータアクセスポリシーを使用します。

[ { "Description": "${data access policy description}", "Rules": [ { "Resource": [ "index/${collection_name}/*" ], "Permission": [ "aoss:DescribeIndex", "aoss:ReadDocument", "aoss:WriteDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::${account-id}:role/${kb-service-role}" ] } ]
Pinecone, Redis Enterprise Cloud or MongoDB Atlas

Pinecone、Redis Enterprise Cloud、MongoDB Atlas ベクトルインデックスを統合するには、ナレッジベースサービスロールに次のアイデンティティベースのポリシーをアタッチして、ベクトルインデックスの AWS Secrets Manager シークレットへのアクセスを許可します。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "bedrock:AssociateThirdPartyKnowledgeBase" ], "Resource": "*", "Condition": { "StringEquals": { "bedrock:ThirdPartyKnowledgeBaseCredentialsSecretArn": "arn:aws:iam::${region}:${account-id}:secret:${secret-id}" } } }] }

Amazon OpenSearch Serverless ナレッジベースのネットワークアクセスポリシーを設定する

ナレッジベースにプライベート Amazon OpenSearch Serverless コレクションを使用する場合は、VPC AWS PrivateLink エンドポイントを介してのみアクセスできます。Amazon OpenSearch Serverless ベクトルコレクションを設定するときにプライベート Amazon OpenSearch Serverless コレクションを作成することも、ネットワークアクセスポリシーを設定するときに既存の Amazon OpenSearch Serverless コレクション (Amazon Bedrock コンソールが作成したコレクションを含む) をプライベートにすることもできます。

Amazon OpenSearch Service デベロッパーガイドの以下のリソースは、プライベート Amazon OpenSearch Serverless コレクションに必要な設定を理解するのに役立ちます。

Amazon Bedrock ナレッジベースがプライベート Amazon OpenSearch Serverless コレクションにアクセスできるようにするには、Amazon OpenSearch Serverless コレクションのネットワークアクセスポリシーを編集して、Amazon Bedrock をソースサービスとして許可する必要があります。選択した方法に対応するタブを選択し、ステップに従います。

Console
  1. https://console.aws.amazon.com/aos/ で Amazon OpenSearch Service コンソールを開きます。

  2. 左側のナビゲーションペインからコレクション を選択します。次に、コレクションを選択します。

  3. ネットワーク セクションで、関連ポリシー を選択します。

  4. [編集] を選択します。

  5. Select ポリシー定義メソッド で、次のいずれかを実行します。

    • Select ポリシー定義メソッドビジュアルエディタのままにして、ルール 1 セクションで次の設定を行います。

      1. (オプション) ルール名 フィールドに、ネットワークアクセスルールの名前を入力します。

      2. からコレクションにアクセスする でプライベート (推奨) を選択します。

      3. AWS サービスプライベートアクセス を選択します。テキストボックスに と入力しますbedrock.amazonaws.com

      4. OpenSearch ダッシュボードへのアクセスを有効にするの選択を解除します。

    • JSON を選択し、JSON エディタ に次のポリシーを貼り付けます。

      [ { "AllowFromPublic": false, "Description":"${network access policy description}", "Rules":[ { "ResourceType": "collection", "Resource":[ "collection/${collection-id}" ] }, ], "SourceServices":[ "bedrock.amazonaws.com" ] } ]
  6. [更新] を選択します。

API

Amazon OpenSearch Serverless コレクションのネットワークアクセスポリシーを編集するには、次の手順を実行します。

  1. OpenSearch サーバーレスエンドポイント を使用してGetSecurityPolicyリクエストを送信します。ポリシーnameの を指定し、 を typeとして指定しますnetwork。応答内の policyVersion を書き留めます。

  2. OpenSearch サーバーレスエンドポイント を使用してUpdateSecurityPolicyリクエストを送信します。最低限、次のフィールドを指定します。

    フィールド 説明
    name ポリシーの名前
    policyVersion GetSecurityPolicy レスポンスからpolicyVersion返された 。
    type セキュリティポリシーのタイプ。network を指定します。
    ポリシー 使用するポリシー。次の JSON オブジェクトを指定する
    [ { "AllowFromPublic": false, "Description":"${network access policy description}", "Rules":[ { "ResourceType": "collection", "Resource":[ "collection/${collection-id}" ] }, ], "SourceServices":[ "bedrock.amazonaws.com" ] } ]

AWS CLI 例については、「データアクセスポリシーの作成 (AWS CLI)」を参照してください。