ナレッジベース用に作成したベクトルストアを使用するための前提条件
ドキュメント変換先のベクトル埋め込みを保存するには、ベクトルストアを使用します。Amazon Bedrock ナレッジベースでは、一部のベクトルストアのクイック作成フローがサポートされるため、これらのベクトルストアのいずれかで Amazon Bedrock によりベクトルインデックスが自動的に作成されるよう設定する場合は、この前提条件をスキップして「Amazon Bedrock ナレッジベースでデータソースに接続してナレッジベースを作成する」に進みます。
標準の浮動小数点 (float32) ベクトル埋め込みの代わりにバイナリベクトル埋め込みを保存する場合は、バイナリベクトルをサポートするベクトルストアを使用する必要があります。
注記
Amazon OpenSearch Serverless クラスターと Amazon OpenSearch Managed クラスターは、バイナリベクトルの保存がサポートされる唯一のベクトルストアです。
独自のサポートされているベクトルストアを設定して、データのベクトル埋め込み表現をインデックス化できます。次のデータ用にフィールドを作成できます。
-
選択した埋め込みモデルによってデータソースのテキストから生成されたベクトル用のフィールド。
-
データソース内のファイルから抽出されたテキストチャンク用フィールド。
-
Amazon Bedrock が管理するソースファイルのメタデータのフィールド。
-
(Amazon Aurora データベースを使用してメタデータのフィルタリングを設定する場合) ソースファイルに関連付けるメタデータのフィールド。他のベクトルストアでフィルタリングを設定する場合は、フィルタリングのためにこれらのフィールドを設定する必要はありません。
KMS キーを使用して、サードパーティーのベクトルストアを暗号化できます。詳細については、「Encryption of knowledge base resources」を参照してください。
ベクトルインデックスの作成に使用するベクトルストアサービスに対応するタブを選択します。
注記
埋め込みモデルとベクトルディメンションの選択は、使用可能なベクトルストアの選択に影響を与える可能性があります。希望するベクトルストアを使用できない場合は、互換性のあるオプション (埋め込みモデルとベクトルディメンション) を選択します。
- Amazon OpenSearch Serverless
-
-
アクセス許可を設定し、AWS マネジメントコンソール の Amazon OpenSearch Serverless でベクトル検索コレクションを作成するには、「Amazon OpenSearch Service デベロッパーガイド」の「Working with vector search collections」のステップ 1 と 2 に従います。コレクションを設定するときは、以下の考慮事項に注意してください。
-
コレクションに任意の名前と説明を付けます。
-
コレクションをプライベートにするには、[セキュリティ] セクションの [標準作成] を選択します。次に、[ネットワークアクセス設定] セクションで、[アクセスタイプ] として [VPC] を選択し、VPC エンドポイントを選択します。Amazon OpenSearch Serverless コレクションの VPC エンドポイントの設定の詳細については、「Amazon OpenSearch Service デベロッパーガイド」の「Access Amazon OpenSearch Serverless using an interface endpoint (AWS PrivateLink)」を参照してください。
-
-
コレクションを作成したら、ナレッジベースを作成するときに備えて [コレクション ARN] を書き留めます。
-
左側のナビゲーションペインの [サーバーレス] で [コレクション] を選択します。次に、ベクトル検索コレクションを選択します。
-
[インデックス] タブを選択します。次に、[ベクトルインデックスを作成] を選択します。
-
[ベクトルインデックスの詳細] セクションで、ベクトルインデックス名フィールドに [ベクトルインデックスの名前] を入力します。
-
[ベクトルフィールド] セクションで[ベクトルフィールドの追加] を選択します。Amazon Bedrock は、データソースのベクトル埋め込みをこのフィールドに保存します。次の設定の詳細を入力します。
-
ベクトルフィールド名 – フィールドの名前を指定します (例:
embeddings)。 -
エンジン – 検索に使用するベクトルエンジン。[faiss] を選択します。
-
ディメンション - ベクトルのディメンション (次元) の数。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。
モデル ディメンション Titan G1 埋め込み - テキスト 1,536 Titan V2 埋め込み - テキスト 1,024、512、256 Cohere Embed 英語 1,024 Cohere Embed 多言語 1,024 -
距離メトリクス - ベクトル間の類似性を測定するために使用されるメトリクス。浮動小数点ベクトル埋め込みには、ユークリッドを使用することをお勧めします。
-
-
[メタデータの管理] セクションを展開し、ナレッジベースがベクトルを使用して取得できる追加のメタデータを保存するよう、ベクトルインデックスを設定します。次の表は、各フィールドに対して指定するフィールドと値を示しています。
フィールドの説明 フィールドのマッピング データ型 フィルタリング可能 Amazon Bedrock はデータから未加工テキストをチャンク化し、チャンクをこのフィールドに保存します。 選択した名前 (例: text)文字列 真 Amazon Bedrock は、ナレッジベースに関連するメタデータをこのフィールドに保存します。 選択した名前 (例: bedrock-metadata)文字列 False -
ナレッジベースの作成時に、ベクトルインデックス名、ベクトルフィールド名、メタデータ管理マッピングフィールド名に選択した名前を書き留めます。次に [作成] を選択します。
ベクトルインデックスを作成したら、[ナレッジベースの作成] に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。
フィールド ナレッジベース設定 (コンソール) の対応するフィールド ナレッジベース設定 (API) の対応するフィールド 説明 コレクション ARN コレクション ARN collectionARN ベクトル検索コレクションの Amazon リソースネーム (ARN)。 ベクトルインデックス名 ベクトルインデックス名 vectorIndexName ベクトルインデックスの名前。 ベクトルフィールド名 ベクトルフィールド vectorField データソースのベクトル埋め込みを保存するフィールドの名前。 メタデータ管理 (最初のマッピングフィールド) テキストフィールド textField データソースから未加工のテキストを保存するフィールドの名前。 メタデータ管理 (2 番目のマッピングフィールド) Bedrock が管理するメタデータフィールド metadataField Amazon Bedrock が管理するメタデータを保存するフィールドの名前。 Amazon OpenSearch Serverless でのベクトルストアの設定に関する詳細なドキュメントについては、「Amazon OpenSearch Service デベロッパーガイド」の「Working with vector search collections」を参照してください。
-
- Amazon OpenSearch Service Managed Clusters
-
重要
-
OpenSearch マネージドクラスターでドメインリソースを使用する前に、特定の IAM アクセス許可とポリシーを設定する必要があります。詳細については、「Amazon Bedrock ナレッジベースで OpenSearch マネージドクラスターを使用するために必要な前提条件とアクセス許可」を参照してください。
-
データインジェストに障害が発生した場合は、OpenSearch ドメイン容量が不足している可能性があります。この問題を解決するには、より高い IOPS をプロビジョニングし、スループット設定を増やして、ドメインの容量を増やします。詳細については、「Amazon OpenSearch Service の運用上のベストプラクティス」を参照してください。
-
AWS マネジメントコンソールの OpenSearch クラスターでドメインとベクトルインデックスを作成するには、「Amazon OpenSearch Service デベロッパーガイド」の「OpenSearch Service ドメインの作成と管理」で説明されているステップに従います。
ドメインを設定するときは、以下の考慮事項に注意してください。
-
ドメインに任意の名前を付けます。
-
[簡易作成] オプションを使用して、ドメインの作成をすばやく開始することをお勧めします。
注記
このオプションでは、スループットが低いドメインが作成されます。ワークロードが大きいためにより高いスループットが必要な場合は、[標準作成] オプションを選択してください。必要に応じて、後でキャパシティを調整できます。このオプションでは、最小キャパシティから始めて、必要に応じて後で変更できます。
-
[ネットワーク] では、[パブリックアクセス] を選択する必要があります。VPC の背後にある OpenSearch ドメインは、ナレッジベースではサポートされていません。
-
[バージョン] は次のようにします。バイナリベクトル埋め込みを使用している場合、Amazon Bedrock ナレッジベースには Engine バージョン 2.16 以降が必要です。さらに、k-nn インデックスを作成するには 2.13 以降のバージョンが必要です。詳細については、「Amazon OpenSearch Service デベロッパーガイド」の「K-NN 検索」を参照してください。
-
[デュアルスタックモード] を使用することをお勧めします。
-
[きめ細かなアクセスコントロール] を有効にしてドメイン内のデータを保護し、OpenSearch ドメインへのアクセスをナレッジベースサービスロールに許可してリクエストを行うアクセス許可をさらに制御することをお勧めします。
-
その他のすべての設定をデフォルト値のままにし、[作成] を選択してドメインを作成します。
-
-
ドメインが作成されたら、それをクリックして、ナレッジベースの作成時に [ドメイン ARN] と [ドメインエンドポイント] を書き留めます。
-
ドメインを作成したら、OpenSearch ダッシュボードで次のコマンドを実行するか、curl コマンドを使用してベクトルインデックスを作成できます。詳細については、「OpenSearch ドキュメント
」を参照してください。 コマンドを実行するときは、次のようにします。
-
ベクトルフィールドの名前を指定します (例:
embeddings)。 -
検索に使用するベクトルが faiss であることを確認します。nmslib はサポートされていません。
-
ベクトル内のディメンションの数については、次の表を参照し、ベクトルに含めるディメンションの数を決定してください。
注記
Titan V2 埋め込み - テキストモデルでは複数のディメンションがサポートされます。256 または 512 にすることもできます。
モデル ディメンション Titan G1 埋め込み - テキスト 1,536 Titan V2 埋め込み - テキスト 1,024、512、256 Cohere Embed 英語 1,024 Cohere Embed 多言語 1,024 -
ナレッジベースがベクトルを使用して取得できる追加のメタデータを保存するよう、ベクトルインデックスを設定する 2 つのフィールドを追加できます。次の表は、フィールドと、各フィールドに対して指定する値を示しています。
フィールドの説明 フィールドのマッピング Amazon Bedrock はデータから未加工テキストをチャンク化し、チャンクをこのフィールドに保存します。 オブジェクトとして指定されます。例: AMAZON_BEDROCK_TEXT_CHUNK。Amazon Bedrock は、ナレッジベースに関連するメタデータをこのフィールドに保存します。 オブジェクトとして指定されます。例: AMAZON_BEDROCK_METADATA。
PUT /<index-name>{ "settings": { "index": { "knn": true } }, "mappings": { "properties": { "<vector-name>": { "type": "knn_vector", "dimension":<embedding-dimension>, "data_type": "binary", # Only needed for binary embeddings "space_type": "l2" | "hamming", # Use l2 for float embeddings and hamming for binary embeddings "method": { "name": "hnsw", "engine": "faiss", "parameters": { "ef_construction": 128, "m": 24 } } }, "AMAZON_BEDROCK_METADATA": { "type": "text", "index": "false" }, "AMAZON_BEDROCK_TEXT_CHUNK": { "type": "text", "index": "true" } } } } -
-
ドメイン ARN とエンドポイントに加えて、ナレッジベースの作成時にベクトルインデックス名、ベクトルフィールド名、メタデータ管理マッピングフィールド名に選択した名前を書き留めます。
ベクトルインデックスを作成したら、[ナレッジベースの作成] に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。
フィールド ナレッジベース設定 (コンソール) の対応するフィールド ナレッジベース設定 (API) の対応するフィールド 説明 ドメイン ARN ドメイン ARN domainARN OpenSearch ドメインの Amazon リソースネーム (ARN)。 ドメインエンドポイント ドメインエンドポイント domainEndpoint OpenSearch ドメインに接続するエンドポイント。 ベクトルインデックス名 ベクトルインデックス名 vectorIndexName ベクトルインデックスの名前。 ベクトルフィールド名 ベクトルフィールド vectorField データソースのベクトル埋め込みを保存するフィールドの名前。 メタデータ管理 (最初のマッピングフィールド) テキストフィールド textField データソースから未加工のテキストを保存するフィールドの名前。 メタデータ管理 (2 番目のマッピングフィールド) Bedrock が管理するメタデータフィールド metadataField Amazon Bedrock が管理するメタデータを保存するフィールドの名前。 -
- Amazon S3 Vectors
-
Amazon S3 Vectors では、コスト効率の高いベクトルストレージが Amazon S3 に用意されており、ベクトルデータの保存とクエリに使用できます。1 秒未満のクエリパフォーマンスで、大きなベクトルデータセットの耐久性と伸縮自在なストレージが提供されます。Amazon S3 Vectors は、低頻度のクエリワークロードに最適で、検索拡張生成 (RAG) およびセマンティック検索アプリケーションで使用するとコストを削減できます。
重要
Amazon S3 Vectors と Amazon Bedrock ナレッジベースの統合はプレビューリリース段階であり、変更される可能性があります。
Amazon S3 Vectors には S3 ベクトルバケットが導入されており、セマンティックの意味と類似性に基づいてクエリを実行できます。インフラストラクチャをプロビジョニングすることなく、ベクトルデータを大規模に保存、アクセス、クエリしながら、1 秒未満のクエリ応答時間を実現し、コストを削減するために使用できます。ベクトルバケット内では、ベクトルデータをベクトルインデックス内で整理できます。ベクトルバケットは複数のベクトルインデックスを持つことができ、各ベクトルインデックスは数百万のベクトルを保持できます。詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 Vectors」を参照してください。
注記
-
Amazon Bedrock と Amazon S3 Vectors の両方を利用できるすべての AWS リージョンで Amazon S3 Vectors のナレッジベースを作成できます。Amazon S3 Vectors のリージョンの可用性については、「Amazon S3 ユーザーガイド」の「Amazon S3 Vectors」を参照してください。
-
Amazon S3 Vectors のナレッジベースを作成する場合、階層チャンキングはサポートされません。チャンキング戦略については、「ナレッジベースのコンテンツのチャンキングの仕組み」を参照してください。
メタデータのサポート
ベクトルインデックスの作成後にベクトルデータをインデックスに挿入するとき、メタデータをキーと値のペアとして各ベクトルにアタッチできます。デフォルトでは、ベクトルにアタッチされているすべてのメタデータはフィルタリング可能で、類似度検索クエリでフィルターとして使用できます。フィルタリング可能なメタデータを使用すると、日付、カテゴリ、ユーザー設定などの一連の条件に基づいて受信クエリをフィルタリングできます。
ベクトルインデックスの作成時にフィルタリングできないようメタデータを設定することもできます。Amazon S3 ベクトルインデックスでは、文字列、ブール値、および数値タイプがサポートされます。ベクトルごとに最大 40 KB のメタデータがサポートされます。この 40 KB のメタデータ内では、フィルタリング可能なメタデータはベクトルごとに最大 2 KB になります。デフォルトでは、フィルタリング可能なメタデータにはシステムメタデータとチャンクテキストも含まれるため、ユーザーメタデータに追加のスペースが必要な場合は、フィルタリングできないよう設定する必要があります。ナレッジベースの作成後、フィルタリング可能なメタデータスペースを使用して埋め込みを保存できます。
メタデータがこれらの制限のいずれかを超えると、ベクトルインデックスの作成時にエラーが発生します。詳細については、「Amazon S3 ユーザーガイド」の「Amazon S3 Vectors」を参照してください。
必要なアクセス許可
IAM ポリシーで、Amazon Bedrock が S3 ベクトルバケット内のベクトルインデックスにアクセスすることが許可されていることを確認します。必要なアクセス許可の詳細については、「Amazon Bedrock ナレッジベースのサービスロールを作成する」を参照してください。
S3 ベクトルバケットとインデックスを作成する
ナレッジベースで Amazon S3 Vectors を使用するには、S3 ベクトルバケットとベクトルインデックスを作成する必要があります。Amazon S3 コンソール、AWS CLI、または AWS SDK を使用して、ベクトルバケットとインデックスを作成できます。詳しい手順については、「Amazon S3 ユーザーガイド」の「ベクトルインデックスを作成する」を参照してください。
Amazon S3 コンソール
でベクトルバケットとインデックスを作成するときは、次の考慮事項に注意してください。 -
S3 ベクトルバケットを作成するときは、次の考慮事項に注意してください。
-
一意のベクトルバケット名を指定します。
-
(オプション) Amazon S3 では、Amazon S3 マネージドキー (SSE-S3) によるデフォルトのサーバー側暗号化を使用して、データが自動的に暗号化されます。このデフォルトの暗号化を使用するか、代わりに AWS Key Management Service キーによるサーバー側の暗号化 (SSE-KMS) を使用するかを選択できます。
注記
ベクトルバケットを作成した後、暗号化タイプを変更することはできません。
詳細な手順については、「AWS KMS キーによる暗号化」を参照してください。
-
-
S3 ベクトルバケットを作成したら、ナレッジベースの作成時にベクトルバケットの Amazon リソースネーム (ARN) を書き留めます。
-
作成したベクトルバケットを選択し、ベクトルインデックスを作成します。ベクトルインデックスを作成するときは、次の考慮事項に注意してください。
-
インデックスフィールド名 – フィールドの名前を指定します (例:
embeddings)。 -
ディメンション - ベクトルのディメンションの数。ディメンションは 1~4,096 の値にする必要があります。埋め込みモデルの選択内容に基づいてベクトルに含めるディメンションの数を決定するには、次の表を参照してください。
モデル ディメンション Titan G1 埋め込み - テキスト 1,536 Titan V2 埋め込み - テキスト 1,024、512、256 Cohere Embed 英語 1,024 Cohere Embed 多言語 1,024 -
注記
Amazon S3 Vectors では浮動小数点埋め込みのみサポートされます。バイナリ埋め込みはサポートされていません。
距離メトリクス - ベクトル間の類似性を測定するために使用されるメトリクス。コサインまたはユークリッドを使用できます。
-
-
[その他の設定] を展開し、[フィルタリングできないメタデータ] フィールドでフィルタリングできないメタデータを指定します。
注記
テキストチャンクが 2 KB のメタデータ領域を超えることが予想される場合は、フィルタリングできないメタデータキーとして
AMAZON_BEDROCK_TEXTおよびAMAZON_BEDROCK_METADATAテキストフィールドを追加することをお勧めします。ナレッジベースには、これらのフィールドを使用してテキストチャンクとシステムメタデータが保存されます。最大 10 個のフィルタリングできないメタデータキーを設定できます。[キーの追加] を選択し、キーとして
AMAZON_BEDROCK_TEXTとAMAZON_BEDROCK_METADATAを追加します。 -
ベクトルインデックスを作成し、ナレッジベースの作成時にベクトルインデックスの Amazon リソースネーム (ARN) を書き留めます。
S3 ベクトルバケットのナレッジベースを作成する
この情報を収集したら、ナレッジベースの作成に進むことができます。S3 ベクトルバケットを使用してナレッジベースを作成するときは、ベクトルバケットの ARN とベクトルインデックスを指定する必要があります。ベクトルインデックスには、データソースから生成された埋め込みが保存されます。次の表は、各情報を入力する場所をまとめたものです。
フィールド ナレッジベース設定 (コンソール) の対応するフィールド ナレッジベース設定 (API) の対応するフィールド 説明 ベクトルバケット ARN S3 ベクトルバケット ARN vectorBucketArn S3 ベクトルバケットの Amazon リソースネーム (ARN)。 ベクトルインデックス ARN S3 ベクトルインデックス ARN vectorIndexARN S3 ベクトルバケットのベクトルインデックスの Amazon リソースネーム (ARN)。 -
- Amazon Aurora (RDS)
-
-
「Using Aurora PostgreSQL as a knowledge base」の手順に従って、Amazon Aurora データベース (DB) クラスターを作成します。テーブルを作成するときは、次の列とデータ型で設定します。上の表に掲載されている名前の代わりに、希望する列名を使用できます。ナレッジベースの設定時に指定できるように、使用した列名をメモしておきます。
これらのフィールドは、ナレッジベースを作成する前に指定する必要があります。ナレッジベースが作成されると、フィールドを更新することはできません。
重要
Aurora クラスターは、Amazon Bedrock のナレッジベースが作成されるクラスターと同じ AWS アカウントに存在する必要があります。
列名 データ型 ナレッジベース設定 (コンソール) の対応するフィールド ナレッジベース設定 (API) の対応するフィールド 説明 id UUID プライマリキー プライマリキー primaryKeyField各レコードに固有の識別子が含まれます。 埋め込み ベクトル ベクトルフィールド vectorFieldデータソースのベクトル埋め込みが含まれます。 チャンク テキスト テキストフィールド textFieldデータソースからの未加工テキストのチャンクが含まれます。 metadata JSON Bedrock が管理するメタデータフィールド metadataFieldソース属性を実行し、データインジェストとクエリを有効にするために必要なメタデータが含まれています custom_metadata JSONB カスタムメタデータフィールド customMetadataFieldAmazon Bedrock がデータソースからメタデータファイルのすべての情報を書き込む列を示すオプションフィールド。 -
テキストフィールドと埋め込みフィールドの列ベクトルおよびテキストにインデックスを作成する必要があります。カスタムメタデータフィールドを使用している場合は、この列に GIN インデックスも作成する必要があります。GIN インデックスを使用すると、メタデータフィルタリングのために jsonb ドキュメント内のキーと値のペアを効率的に検索できます。詳細については、PostgreSQL ドキュメントの「jsonb インデックス作成
」を参照してください。 列名 インデックスの作成場所 必須? ベクトル CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);あり text CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));あり カスタムメタデータ CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (custom_metadata);カスタムメタデータ列を作成している場合のみ。 -
(オプション) フィルタリングのためにファイルにメタデータを追加した場合は、カスタムメタデータフィールドに列名を指定して、すべてのメタデータを 1 つの列に保存することをお勧めします。データインジェスト中、この列にはデータソースのメタデータファイル内のすべての情報が入力されます。このフィールドを指定することにした場合は、この列に GIN インデックスを作成する必要があります。
注記
数値メタデータに対して範囲フィルターを頻繁に使用する場合は、パフォーマンスを最適化するため、特定のキーのインデックスを作成します。例えば、
"lessThan": { "key": "year", "value": 1989 }などのフィルターを使用する場合は、yearキーに式インデックスを作成します。詳細については、「PostgreSQL ドキュメント」の「式のインデックス」を参照してください。 CREATE INDEX ON your_table ((custom_metadata->>'year')::double precisionまたは、このフィールド名を指定しない場合は、ファイル内のメタデータ属性ごとに列を作成し、データ型 (テキスト、数値、またはブール値) を指定できます。例えば、属性
genreがデータソースに存在する場合は、genreという名前の列を追加し、textをデータ型として指定します。データインジェスト中、これらの別個の列には対応する属性値が入力されます。 -
「Amazon Aurora および AWS Secrets Manager によるパスワード管理」の手順に従って、Aurora DB クラスターの AWS Secrets Manager シークレットを設定します。
-
DB クラスターを作成しシークレットを設定したら、次の情報をメモします。
ナレッジベース設定 (コンソール) のフィールド ナレッジベース設定 (API) のフィールド 説明 Amazon Aurora DB クラスターの ARN resourceArn DB クラスターの ARN。 データベース名 databaseName データベースの名前 テーブル名 tableName DB クラスター内のテーブル名 シークレット ARN credentialsSecretArn DB クラスターの AWS Secrets Manager キーの ARN
-
- Neptune Analytics graphs (GraphRAG)
-
-
AWS マネジメントコンソールの Neptune Analytics でグラフとベクトルストアを作成するには、「Neptune Analytics ユーザーガイド」の「Neptune Analytics でのベクトルインデックス作成」で説明されているステップに従います。
注記
Neptune GraphRAG を使用するには、ベクトル検索インデックスを含む空の Neptune Analytics グラフを作成します。ベクトル検索インデックスは、グラフの作成時のみ作成できます。コンソールで Neptune Analytics グラフを作成するとき、プロセスの最後付近にある [ベクトル検索設定] でインデックスディメンションを指定します。
グラフを作成するときは、次の考慮事項に注意してください。
-
グラフに任意の名前を付けます。
-
[データソース] で、[空のグラフを作成] を選択し、割り当てる m-NCU の数を指定します。m-NCU ごとに、約 1 GiB のメモリ容量と、対応するコンピューティングおよびネットワークがあります。
注記
グラフの容量は後で変更できます。最も小さいインスタンスから開始し、必要に応じて後で別のインスタンスを選択することをお勧めします。
-
デフォルトのネットワーク接続設定のままにすることができます。Amazon Bedrock は、ナレッジベースを関連付ける Neptune Analytics グラフへのネットワーク接続を作成します。グラフにパブリック接続やプライベートエンドポイントを設定する必要はありません。
-
[ベクトル検索設定] で [ベクトルディメンションを使用] を選択し、各ベクトルのディメンション数を指定します。
注記
各ベクトルのディメンションの数は、埋め込みモデルのベクトルディメンションと一致している必要があります。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。
モデル ディメンション Titan G1 埋め込み - テキスト 1,536 Titan V2 埋め込み - テキスト 1,024、512、256 Cohere Embed 英語 1,024 Cohere Embed 多言語 1,024 -
他のすべての設定をデフォルトのままにして、グラフを作成します。
-
-
グラフを作成したら、そのグラフをクリックして、ナレッジベースの作成時に [リソース ARN] と [ベクトルディメンション] を書き留めます。Amazon Bedrock で埋め込みモデルを選択するときは、Neptune Analytics グラフで設定したベクトルディメンションと同じディメンションのモデルを選択してください。
ベクトルインデックスを作成したら、ナレッジベースの作成に進むことができます。次の表は、メモした各情報を入力する場所をまとめたものです。
フィールド ナレッジベース設定 (コンソール) の対応するフィールド ナレッジベース設定 (API) の対応するフィールド 説明 グラフ ARN Neptune 分析グラフ ARN graphARN Neptune Analytics グラフの Amazon リソースネーム (ARN)。 メタデータ管理 (最初のマッピングフィールド) テキストフィールド名 textField データソースから未加工のテキストを保存するフィールドの名前。このフィールドには、テキストなどの任意の値を指定できます。 メタデータ管理 (2 番目のマッピングフィールド) Bedrock が管理するメタデータフィールド metadataField Amazon Bedrock が管理するメタデータを保存するフィールドの名前。このフィールドには、メタデータなどの任意の値を指定できます。 -
- Pinecone
-
注記
Pinecone を使用する場合、AWS がベクトルストアサービスを提供するために指定されたサードパーティーソースに自動的にアクセスすることを許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。
Pinecone でベクトルストアを設定する方法の詳細については、「Pinecone as a knowledge base for Amazon Bedrock
」を参照してください。 ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
-
エンドポイント URL – インデックス管理ページのエンドポイント URL。
-
認証情報シークレット ARN – データベースユーザーのユーザー名とパスワードを含む、AWS Secrets Manager で作成したシークレットの Amazon リソースネーム (ARN)。
-
(オプション) 認証情報シークレット ARN のカスタマーマネージド KMS キー – 認証情報シークレット ARN を暗号化した場合は、Amazon Bedrock が復号できるように KMS キーを指定します。
-
名前空間 - (オプション) データベースに新しいデータを書き込むために使用する名前空間。詳細については、「Using namespaces
」を参照してください。
Pinecone インデックスを作成するときに必要となる追加の設定は以下のとおりです。
-
テキストフィールド名 – Amazon Bedrock が未加工チャンクテキストを保存するフィールドの名前。
-
メタデータフィールド名 – Amazon Bedrock がソース属性メタデータを保存するフィールドの名前。
Pinecone インデックスにアクセスするには、AWS Secrets Manager を使用して Amazon Bedrock に Pinecone API キーを提供する必要があります。
Pinecone 設定用のシークレットを設定するには
-
「Create an AWS Secrets Manager secret」の手順に従い、キーを
apiKeyに、値を Pinecone インデックスにアクセスするための API キーに設定します。 -
この API キーを見つけるには、Pinecone コンソール
を開いて [API キー] を選択します。 -
シークレットを作成したら、作成したシークレットの ARN をメモしておきます。
-
「ナレッジベースが格納されているベクトルストアの AWS Secrets Manager シークレットを復号するアクセス許可。」の手順に従って、KMS キーの ARN を復号化する権限をサービスロールにアタッチします。
-
この ARN は、後でナレッジベースを作成するときに、[認証情報シークレット ARN] フィールドに入力します。
-
- Redis Enterprise Cloud
-
注記
Redis Enterprise Cloud を使用する場合、AWS がベクトルストアサービスを提供するために指定されたサードパーティーソースに自動的にアクセスすることを許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。
Redis Enterprise Cloud でのベクトルストアの設定に関する詳細なドキュメントについては、「Integrating Redis Enterprise Cloud with Amazon Bedrock
」を参照してください。 ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
-
エンドポイント URL – データベースのパブリックエンドポイント URL。
-
ベクトルインデックス名 - データベースのベクトルインデックスの名前。
-
ベクトルフィールド - ベクトル埋め込みが保存されるフィールドの名前。ベクトルに含めるディメンションの数を決定するには、次の表を参照してください。
モデル ディメンション Titan G1 埋め込み - テキスト 1,536 Titan V2 埋め込み - テキスト 1,024、512、256 Cohere Embed 英語 1,024 Cohere Embed 多言語 1,024 -
テキストフィールド – Amazon Bedrock が未加工テキストのチャンクを保存するフィールドの名前。
-
Bedrock マネージドメタデータフィールド – Amazon Bedrock がナレッジベースに関連するメタデータを保存するフィールドの名前。
Redis Enterprise Cloud クラスターにアクセスするには、AWS Secrets Manager を使用して Redis Enterprise Cloud のセキュリティ設定を Amazon Bedrock に提供する必要があります。
Redis Enterprise Cloud 設定用のシークレットを設定するには
-
「Transport Layer Security (TLS)
」の手順に従って、Amazon Bedrock でデータベースを使用するように TLS を有効にします。 -
「Create an AWS Secrets Manager secret」の手順を実行します。シークレット内の Redis Enterprise Cloud 設定の適切な値を使用して、以下のキーを設定します。
-
username– Redis Enterprise Cloud データベースにアクセスするためのユーザー名。自身のユーザー名を確認するには、Redis コンソールでデータベースの [セキュリティ] セクションを参照してください。 -
password– Redis Enterprise Cloud データベースにアクセスするためのパスワード。自身のパスワードを確認するには、Redis コンソールでデータベースの [セキュリティ] セクションを参照してください。 -
serverCertificate- Redis Cloud 認証機関からの証明書の内容。「Download CA certificates」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。 -
clientPrivateKey- Redis Cloud 認証機関からの証明書のプライベートキー。「Download CA certificates」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。 -
clientCertificate- Redis Cloud 認証機関からの証明書のパブリックキー。「Download CA certificates」の手順に従って、Redis 管理コンソールを使ってサーバー証明書をダウンロードします。
-
-
シークレットを作成したら、そのシークレットの ARN を書き留めます。この ARN は、後でナレッジベースを作成するときに、[認証情報シークレット ARN] フィールドに入力します。
-
- MongoDB Atlas
-
注記
MongoDB Atlas を使用する場合、AWS がベクトルストアサービスを提供するために指定されたサードパーティーソースに自動的にアクセスすることを許可することに同意します。お客様は、サードパーティーサービスからのデータの使用および転送に適用されるいかなるサードパーティー規約をも遵守する必要があります。
MongoDB Atlas でのベクトルストアの設定に関する詳細なドキュメントについては、「MongoDB Atlas と Amazon Bedrock を使用して完全マネージド型 RAG ワークフローを起動する
」を参照してください。 ベクトルストアを設定する際は、次の情報をメモしておきます。この情報は、ナレッジベースを作成するときに入力することになります。
-
エンドポイント URL – MongoDB Atlas クラスターのエンドポイント URL。
-
データベース名 – MongoDB Atlas クラスター内のデータベースの名前。
-
コレクション名 – データベース内のコレクションの名前。
-
認証情報シークレット ARN – MongoDB Atlas クラスター内のデータベースユーザーのユーザー名とパスワードを含む、AWS Secrets Manager で作成したシークレットの Amazon リソースネーム (ARN)。シークレットには、
usernameおよびpasswordという名前のキーが含まれている必要があります。 -
(オプション) 認証情報シークレット ARN のカスタマーマネージド KMS キー – 認証情報シークレット ARN を暗号化した場合は、Amazon Bedrock が復号できるように KMS キーを指定します。
MongoDB Atlas インデックスを作成するときに提供する必要があるフィールドマッピングの追加の設定は以下のとおりです。
-
ベクトルインデックス名 – コレクション上の MongoDB Atlas ベクトル検索インデックスの名前。
-
ベクトルフィールド名 – Amazon Bedrock がベクトル埋め込みを保存するフィールドの名前。
-
テキストフィールド名 – Amazon Bedrock が未加工チャンクテキストを保存するフィールドの名前。
-
メタデータフィールド名 – Amazon Bedrock がソース属性メタデータを保存するフィールドの名前。
-
(オプション) ベクトル検索インデックス名 – コレクションの MongoDB Atlas ベクトル検索インデックスの名前。
重要
MongoDB Atlas ナレッジベースでメタデータフィルタリングを使用する予定の場合は、ベクトルインデックスでフィルタを手動設定する必要があります。メタデータフィルタリングはデフォルトでは機能しないため、MongoDB Atlas ベクトルインデックス設定で追加のセットアップが必要です。
(オプション) Amazon Bedrock を AWS PrivateLink 経由で MongoDB Atlas クラスターに接続するには、「Amazon Bedrock を使用した RAG ワークフローと MongoDB Atlas
」を参照してください。 -