注意
Atlas は現在、知識ベースとして利用可能なのは、米国にある AWS リージョンのみです。
MongoDB Atlas をAmazon Advisor の 知識ベース として使用して、生成系AIアプリケーションの構築、検索拡張生成 (RAG)(RAG)の実装、エージェントの構築を行えます。
Overview
Atlas と Amazon Bedrock の知識ベース統合により、以下のユースケースが可能になります。
Atlas Vector Search と基礎モデルを組み合わせて、AI アプリケーションを構築し、RAG を実装できます。始めるには、「はじめる」をご覧ください。
知識ベースで Atlas Vector Search と Atlas Search を使用してハイブリッド検索を有効にします。詳細については、「Amazon Bedrock と Atlas を使用したハイブリッド検索」を参照してください。
はじめる
このチュートリアルでは、Amazon Bedrock とともに Atlas Vector Search を使い始める方法を解説します。具体的には、以下の操作を行います。
カスタム データを Amazon S 3バケットにロードします。
オプションで、AWS PrivateLink を使用してエンドポイント サービスを構成します。
データに Atlas Vector Search インデックスを作成します。
Atlas にデータを保存するための知識ベースを作成します。
Atlas Vector Search を使用してRAGを実装するエージェントを作成します。
バックグラウンド
Amazon Advisor は、生成系 AI アプリケーションを構築するためのフルマネージド サービスです。 基礎モデル(FS) を活用できます は、単一の API としてさまざまな AI 会社から提供されます。
Atlas Vector Search を Amazon Bedrock の知識ベースとして使用することで、Atlas にカスタム データを保存し、エージェント を作成して、RAG を実装し、独自のデータに関する質問に回答できるようになります。RAG の詳細については、「Atlas Vector Search による検索拡張生成(RAG)」を参照してください。
前提条件
Atlas の サンプル データ セット からの映画データを含むコレクションを使用します。
MongoDB バージョン6.0.11を実行している Atlas M 10 + クラスター 、 7.0.2 、またはそれ以降
アクセス権 このチュートリアルで使用される次の基礎モデルに適用します。
Amazon Web ServicesCLIとnpm AWS PrivateLinkエンドポイント サービスを構成する場合は、 がインストールされます。
カスタム データのロード
テキストデータを含む Amazon S 3バケットがまだない場合は、新しいバケットを作成し、MongoDB のベストプラクティスに関する一般にアクセス可能な次の PDF をロードします。
PDF を Amazon S3 バケットにアップロードします。
S3 バケットを作成する には、手順に従います。 。記述的なBucket Nameを使用していることを確認してください。
バケットにファイルをアップロードするに は、手順に従います。 。先ほどダウンロードした PDF を含むファイルを選択します。
エンドポイント サービスの構成
デフォルトでは、Amazon Advisor はパブリック インターネット経由で知識ベースに接続します。Atlas Vector Search は、AWS PrivateLink エンドポイントサービス を使用して、仮想ネットワーク経由でナレッジベースに接続し、接続をさらに強化します。
任意。次の手順を実行して、Atlas クラスターの AWS PrivateLink プライベートエンドポイントに接続するエンドポイント サービスを有効にします。
Atlasでプライベートエンドポイントを設定します。
AWS PrivateLinkクラスター用に プライベートエンドポイントを設定する Atlasには、手順に従います。プライベートエンドポイントを識別するには、わかりやすいVPC IDを使用していることを確認します。
エンドポイント サービスを構成します。
MongoDB とその提携パートナーは、クラウド開発キット(CDK)を提供しており、トラフィックをプライベートエンドポイントに転送するネットワーク ロード バランサーを基盤としたエンドポイント サービスを構成できます。
CDKGithub リポジトリ で指定された手順に従う CDK スクリプトを準備して実行します。
Atlas Vector Search インデックスの作成
このセクションでは、コレクションに Atlas Vector Search インデックスを作成し、Atlas をベクトルデータベース(ベクトル ストアと呼ばれる)として設定します。
必要なアクセス権
Atlas Vector Search インデックスを作成するには、Atlas プロジェクトに対する Project Data Access Admin以上のアクセス権が必要です。
手順
AtlasGoClustersAtlas で、プロジェクトの ページにGoします。
警告: ナビゲーションの改善中 現在、新しく改良されたナビゲーション エクスペリエンスを導入中です。次の手順が Atlas UI の表示と一致しない場合は、プレビュー ドキュメントを参照してください。
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの [Clusters] をクリックします。
[ Clusters (クラスター) ] ページが表示されます。
Collections ページに移動します。
クラスターの [Browse Collections] ボタンをクリックします。
Data Explorerが表示されます。
インデックスの設定を開始します。
ページで次の選択を行い、Next をクリックしてください。
Search Type | Vector Search のインデックスタイプを選択します。 |
Index Name and Data Source | 以下の情報を指定してください。
|
Configuration Method | For a guided experience, select Visual Editor. To edit the raw index definition, select JSON Editor. |
注意
Atlas Search インデックスのデフォルト名は「default」です。この名前を変更しない場合、Atlas Search クエリのデフォルトの検索インデックスが使用され、その演算子では別の index オプションは指定されません。複数のインデックスを作成する場合は、インデックス全体で一貫性があり、内容がわかる命名規則を維持することをお勧めします。
Atlas Vector Search インデックスを定義します。
この vectorSearch タイプのインデックス定義は、次のフィールドをインデックス化します。
embeddingベクトル型としての フィールド。embeddingフィールドには、知識ベースを構成するときに指定した埋め込みモデルを使用して作成されたベクトル埋め込みが含まれます。 インデックス定義では、1024ベクトル次元を指定し、cosineを使用して類似性を測定します。bedrock_metadata、bedrock_text_chunk、x-amz-bedrock-kb-document-page-numberフィールドを filter 型として指定して、データを事前にフィルタリングします。知識ベースを設定する際に、Amazon Bedrock でもこれらのフィールドを指定します。
注意
以前にフィルターフィールド page_number を使用してインデックスを作成した場合は、代わりに新しいフィルターフィールド名 x-amz-bedrock-kb-document-page-number を使用するようにインデックス定義を更新する必要があります。Amazon Bedrock ではフィールド名が Amazon によって更新され、古いフィールド名を使用したインデックスは Amazon Bedrock の知識ベースで正しく機能しなくなりました。
embedding をインデックスするフィールドとして指定し、1024 次元を指定します。
インデックスを設定するには、次の操作を行う必要があります。
Similarity MethodドロップダウンからCosineを選択します。
Filter Field セクションで、
bedrock_metadata、bedrock_text_chunk、x-amz-bedrock-kb-document-page-numberの各フィールドを指定してデータをフィルタリングします。
次のインデックス定義を JSON エディターに貼り付けます。
1 { 2 "fields": [ 3 { 4 "numDimensions": 1024, 5 "path": "embedding", 6 "similarity": "cosine", 7 "type": "vector" 8 }, 9 { 10 "path": "bedrock_metadata", 11 "type": "filter" 12 }, 13 { 14 "path": "bedrock_text_chunk", 15 "type": "filter" 16 }, 17 { 18 "path": "x-amz-bedrock-kb-document-page-number", 19 "type": "filter" 20 } 21 ] 22 }
知識ベースの作成
このセクションでは、 知識ベース を作成します カスタム データをベクトル ストアにロードします。
モデル アクセスを管理します。
Amazon Advisorは FC へのアクセスを自動的に許可しません。 まだ行っていない場合は、手順に従って モデルアクセスを追加 します Tiger 埋め込み G1 の場合 - テキスト および アン スロットル 句 V2 を使用します。1モデル。
Atlas を KB に接続します。
Vector databaseセクションで、[Use an existing vector store] を選択します。
MongoDB Atlasを選択し、以下のオプションを構成します。
クリックして拡大しますHostnameURLの場合、Atlas 接続文字列 にある クラスターの を入力します。ホスト名は次の形式を使用します。
<clusterName>.mongodb.net Database name に
bedrock_dbと入力します。Collection name に
testと入力します。Credentials secret ARNには、Atlas クラスター認証情報を含むシークレットのARNを入力します。 詳細については、「Amazon Web Services Secrets Manager の概念 」を参照してください。
Metadata field mapping セクションで以下のオプションを設定し、Atlas がデータ ソースをベクトル化・保存する際に使用する Atlas Vector Search のインデックス名およびフィールド名を指定します。
クリックして拡大しますVector search index name に
vector_indexと入力します。Vector embedding field path に
embeddingと入力します。Text field path に
bedrock_text_chunkと入力します。Metadata field path に
bedrock_metadataと入力します。
注意
必要に応じて、Text search index name フィールドを指定してハイブリッド検索を設定することができます。詳細については、「Amazon Bedrock と Atlas を使用したハイブリッド検索」を参照してください。
エンドポイント サービス を構成した場合は、 PrivateLink Service Nameを入力します。
[Next] をクリックします。
データソースを同期します。
Amazon は、データを同期するように要求します。 Data sourceセクションで、データソースを選択し、 SyncをクリックしてS 3バケットのデータを同期し、Atlas に読み込みます。
同期が完了すると、クラスター内のbedrock_db.testコレクションに移動すると、Atlas UI でベクトル埋め込みを表示できます。
エージェントを構築する
このセクションでは、Atlas ベクトル検索を使用して RAG を実装し、データの質問に回答するエージェントを配置します。このエージェントをプロンプトを表示すると、次の処理が行われます。
知識ベースに接続して、Atlas に保存されているカスタム データにアクセスします。
Atlas Vector Search を使用して、 プロンプトに基づいてベクトル ストアから関連するドキュメントを検索します。
AI チャット モデルを活用して、これらのドキュメントに基づいてコンテキストを認識する応答を生成します。
RAGエージェントを作成およびテストするには、次の手順を実行します。
モデルを選択し、プロンプトを表示します。
デフォルトでは、Amazon Advisor はエージェントにアクセスするための新しいIAMロールを作成します。 Agent detailsセクションで、以下を指定します。
ドロップダウン メニューから、データの質問に答えるために使用されるプロバイダーと AI モデルとしてAnthropicとClaude V2.1を選択します。
注意
Amazon Advisorは FC へのアクセスを自動的に許可しません。 まだ行っていない場合は、手順に従って モデルアクセスを追加 します のアントラス 句 V の場合は2 になります。1モデル。
エージェントがタスクの完了方法を把握できるように、エージェントに指示を提供します。
たとえば、サンプル データを使用している場合は、次の手順を貼り付けます。
You are a friendly AI chatbot that answers questions about working with MongoDB. [Save] をクリックします。
エージェントをテストします。
Prepareボタンをクリックします。
[ Testをクリックします。 Amazon ID では、エージェントの詳細がまだ表示されていない場合、エージェントの詳細の右側にテスト ウィンドウが表示されます。
テスト ウィンドウで、プロンプトを入力します。 エージェントはモデルをプロンプト表示し、Atlas Vector Search を使用して関連するドキュメントを検索し、そのドキュメントに基づいて応答を生成します。
サンプル データを使用した場合は、次のプロンプトを入力します。 生成される応答は異なる場合があります。
What's the best practice to reduce network utilization with MongoDB? The best practice to reduce network utilization with MongoDB is to issue updates only on fields that have changed rather than retrieving the entire documents in your application, updating fields, and then saving the document back to the database. [1] Tip
Atlas Vector Search が検索したテキスト チャンクを表示するには、エージェントの応答内の注釈をクリックします。
その他のリソース
問題をトラブルシューティングするには、「Amazon Bedrock 知識ベース統合のトラブルシューティング」を参照してください。

