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

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

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

Amazon Bedrock ナレッジベースを作成して、独自のデータから情報を取得し、自然言語の質問に答えるためのレスポンスを生成できます。ナレッジベースの作成の一環として、選択したデータソースとベクトルストアを設定します。

注記

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

選択した方法に対応するタブを選択し、ステップに従います。

Console
ナレッジベースを作成するには
  1. にサインインする AWS Management Console IAM Amazon Bedrock のアクセス許可を持つ ロールを使用して、 で Amazon Bedrock コンソールを開きますhttps://console.aws.amazon.com/bedrock/

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

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

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

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

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

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

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

  5. データソースの選択ページで、ナレッジベースに使用するデータソースを選択します。

    1. 選択したデータソースの接続設定手順に従います。「サポートされているデータソース」を参照してデータソースを選択し、コンソール接続設定のステップに従います。

    2. (オプション) データソース設定の一部として次の詳細設定を設定するには、詳細設定 - オプションセクションを展開します。

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

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

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

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

      • 保持: ナレッジベースまたはデータソースリソースの削除時にベクトル埋め込みに変換されるデータソースからのすべてのデータを保持します。ナレッジベースまたはデータソースリソースを削除しても、ベクトルストア自体は削除されないことに注意してください。

    3. データソース設定の一部として次のコンテンツのチャンク化と解析を設定するには、コンテンツチャンク化と解析セクションに移動します。

      次のいずれかのチャンクオプションを選択します。

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

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

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

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

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

      注記

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

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

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

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

  6. 「埋め込みモデルの選択」および「ベクトルストアの設定」ページで、サポートされている埋め込みモデルを選択して、データをナレッジベースのベクトル埋め込みに変換します。

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

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

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

        注記

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

      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. ナレッジベースの作成にかかる時間は、特定の設定によって異なります。ナレッジベースの作成が完了すると、ナレッジベースのステータスは、準備完了状態または使用可能状態に変わります。

API

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

注記

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

  • roleArn フィールドにナレッジベースを作成するARNアクセス許可を に付与します。

  • knowledgeBaseConfiguration オブジェクトの embeddingModelArnフィールドで使用するベクトル埋め込みモデルを指定します。ナレッジベース でサポートされているモデルを参照してください。

    ナレッジベースでサポートされているモデルを使用するには、モデルアクセスを有効にする必要があります。データをベクトル埋め込みに変換するために必要なモデル Amazon リソースネーム (ARN) を書き留めます。選択したモデルのモデル ID をナレッジベースにコピーし、モデルリソースタイプに提供されたARN例に従って、モデル (リソース) ID ARNを使用してモデルを構築します。

  • ベクトルストアの構成を storageConfiguration オブジェクトで指定します。詳細については、「ナレッジベースの独自のベクトルストアの前提条件」を参照してください

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

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

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

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

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

ナレッジベースを作成したら、ナレッジベースのドキュメントまたはコンテンツを含むデータソースを作成します。データソースを作成するには、 CreateDataSource リクエストを送信します。「サポートされているデータソース」を参照してデータソースを選択し、API接続設定の例に従ってください。

  • dataSourceConfiguration フィールドでデータソースファイルの接続情報を指定します。

  • 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 コレクションを使用する場合は、 を介してのみアクセスできます。 AWS PrivateLink VPC エンドポイント。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. で Amazon OpenSearch Service コンソールを開きますhttps://console.aws.amazon.com/aos/

  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. [Update] (更新) を選択します。

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).