MongoDB ベクトル検索 を LlamaIndex と統合すると、 LMアプリケーションに検索拡張生成 (RAG)(RAG)を実装できます。このチュートリアルでは、 LlamaIndex とMongoDB ベクトル検索を使用してデータのセマンティック検索を実行し、RAG実装を構築する方法を説明します。具体的には、次のアクションを実行します。
環境を設定します。
カスタム データをMongoDBに保存します。
データにMongoDB ベクトル検索インデックスを作成します。
次のベクトル検索クエリを実行します。
セマンティック検索。
メタデータの事前フィルタリングによるセマンティック検索。
MongoDB ベクトル検索を使用してデータの質問に答え、RAG を実装します。
このチュートリアルの実行可能なバージョンをPythonノートとして操作します。
バックグラウンド
LLMは、カスタム データソースを LM に接続する方法を簡素化するために設計されたオープンソース フレームワークです。 データ コネクター、インデックス、クエリ エンジンなどのいくつかのツールを提供し、 RAGアプリケーションのベクトル埋め込みをロードして準備するのに役立ちます。
MongoDB ベクトル検索 をLlamaIndex と統合することで、 MongoDB をベクトルデータベースとして使用し、 MongoDB ベクトル検索を使用してセマンティックで類似したドキュメントを検索して RG を実装することができます。RG の詳細については、「 MongoDBを使用した検索拡張生成(RAG) 」を参照してください。
手順
前提条件
Atlas の サンプル データ セット からの映画データを含むコレクションを使用します。
次のいずれかのMongoDBクラスター タイプ
MongoDB バージョン 6.0.11、7.0.2、またはそれ以降を実行している Atlas クラスター。IP アドレスが Atlas プロジェクトのアクセスリストに含まれていることを確認する。
Atlas CLI を使用して作成されたローカル Atlas 配置。詳細については、「Atlas 配置のローカル配置の作成」を参照してください。
Search とベクトル検索がインストールされたMongoDB Community または Enterprise クラスター。
OpenAI APIキー。APIリクエストに使用できるクレジットを持つ OpenAI アカウントが必要です。OpenAI アカウントの登録の詳細については、OpenAI APIウェブサイト を参照してください。
投票AI APIキー。アカウントとAPIキーを作成するには、Vyage AI のウェブサイト を参照してください。
Colab などのインタラクティブPythonノートを実行するための環境。
環境を設定する
このチュートリアルの環境を設定します。 .ipynb 拡張子を持つファイルを保存して、インタラクティブPythonノートを作成します。 このノートはPythonコード スニペットを個別に実行でき、このチュートリアルのコードを実行するために使用します。
ノートク環境を設定するには、次の手順に従います。
依存関係をインストールしてインポートします。
次のコマンドを実行します:
pip install --quiet --upgrade llama-index llama-index-vector-stores-mongodb llama-index-llms-openai llama-index-embeddings-voyageai pymongo
次に、次のコードを実行して必要なパッケージをインポートします。
import os, pymongo, pprint from pymongo.operations import SearchIndexModel from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, StorageContext from llama_index.core.settings import Settings from llama_index.core.retrievers import VectorIndexRetriever from llama_index.core.vector_stores import MetadataFilter, MetadataFilters, ExactMatchFilter, FilterOperator from llama_index.core.query_engine import RetrieverQueryEngine from llama_index.embeddings.voyageai import VoyageEmbedding from llama_index.llms.openai import OpenAI from llama_index.vector_stores.mongodb import MongoDBAtlasVectorSearch
環境変数を定義してください。
次のコードを実行し、プレースホルダーを次の値に置き換えます。
OpenAI API キー。
あなたの 投票AI APIキー
MongoDBクラスターの SRV 接続文字列。
os.environ["OPENAI_API_KEY"] = "<openai-api-key>" os.environ["VOYAGEAI_API_KEY"] = "<voyageai-api-key>" MONGODB_URI = "<connection-string>"
注意
<connection-string> を Atlas クラスターまたはローカル Atlas 配置の接続文字列に置き換えます。
接続stringには、次の形式を使用する必要があります。
mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
詳しくは、ドライバーを使用してクラスターに接続する を参照してください。
接続stringには、次の形式を使用する必要があります。
mongodb://localhost:<port-number>/?directConnection=true
詳細については、「接続文字列 」を参照してください。
LlamaIndex 設定を構成します。
次のコードを実行して、LlamaIndex に固有の設定を構成します。 これらの設定では、次の項目を指定します。
voyage-3-largeアプリケーションがデータからベクトル埋め込みを生成するために使用する埋め込みモデルとして、 。OpenAI は、データに対する質問に答えるためにアプリケーションによって使用される LM として、 となります。
チャンク サイズとオーバーラップ は、LlamaIndex がストレージ用にデータを分割する方法をカスタマイズします。
from llama_index.embeddings.voyageai import VoyageEmbedding embed_model= VoyageEmbedding( voyage_api_key = os.environ["VOYAGEAI_API_KEY"], model_name = "voyage-3-large", ) Settings.llm = OpenAI() Settings.embed_model = embed_model Settings.chunk_size = 100 Settings.chunk_overlap = 10
MongoDB をベクトル ストアとして使用
次に、カスタム データをMongoDBにロードし、 MongoDBクラスターをベクトルデータベースとしてインスタンス化します。これはベクトルストアとも呼ばれます。次のコード スニペットをコピーして、ノートに貼り付けます。
サンプル データをロードします。
このチュートリアルでは、ベクトルストアのデータソースとして、最新のMongoDB収益レポートを含む一般にアクセス可能な PDFドキュメントを使用します。このドキュメントでは、MongoDB の会計年度 4 四半期および 1 年間の MongoDB2025 の財務結果を説明します。
サンプル データをロードするには、次のコード スニペットを実行します。 この処理では、次の処理が行われます。
dataという新しいディレクトリを作成します。指定された URL から PDF を検索し、 ディレクトリに ファイルとして保存します。
SimpleDirectoryReaderデータコネクタ を使用して、ファイルから未加工のテキストとメタデータを抽出します。また、データをドキュメントにフォーマットします。
# Load the sample data from urllib.request import urlretrieve urlretrieve("https://investors.mongodb.com/node/13176/pdf", "mongodb-earnings-report.pdf") sample_data = SimpleDirectoryReader(input_files=["mongodb-earnings-report.pdf"]).load_data() # Print the first document sample_data[0]
Document(id_='62b7cace-30c0-4687-9d87-e178547ae357', embedding=None, metadata={'page_label': '1', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\n', text_resource=MediaResource(embeddings=None, data=None, text='MongoDB, Inc. Announces Fourth Quarter and Full Year Fiscal 2025 Financial Results\nMarch 5, 2025\nFourth Quarter Fiscal 2025 Total Revenue of $548.4 million, up 20% Year-over-Year\nFull Year Fiscal 2025 Total Revenue of $2.01 billion, up 19% Year-over-Year\nContinued Strong Customer Growth with Over 54,500 Customers as of January 31, 2025\nMongoDB Atlas Revenue up 24% Year-over-Year; 71% of Total Q4 Revenue\nNEW YORK , March 5, 2025 /PRNewswire/ -- MongoDB, Inc. (NASDAQ: MDB) today announced its financial results for the fourth quarter and fiscal\nyear ended January 31, 2025.\n\xa0\n \xa0\n"MongoDB delivered a strong end to fiscal 2025 with 24% Atlas revenue growth and significant margin expansion. Atlas consumption in the quarter\nwas better than expected and we continue to see good performance in new workload wins due to the flexibility, scalability and performance of the\nMongoDB platform. In fiscal year 2026 we expect to see stable consumption growth in Atlas, our main growth driver," said Dev Ittycheria, President\nand Chief Executive Officer of MongoDB .\n"Looking ahead, we remain incredibly excited about our long-term growth opportunity. MongoDB removes the constraints of legacy databases,\nenabling businesses to innovate at AI speed with our flexible document model and seamless scalability. Following the Voyage AI acquisition, we\ncombine real-time data, sophisticated embedding and retrieval models and semantic search directly in the database, simplifying the development of\ntrustworthy AI-powered apps."\nFourth Quarter Fiscal 2025 Financial Highlights\nRevenue: Total revenue was $548.4 million for the fourth quarter of fiscal 2025, an increase of 20% year-over-year.\nSubscription revenue was $531.0 million, an increase of 19% year-over-year, and services revenue was $17.4 million, an\nincrease of 34% year-over-year.\nGross Profit: Gross profit was $399.4 million for the fourth quarter of fiscal 2025, representing a 73% gross margin\ncompared to 75% in the year-ago period. Non-GAAP gross profit was $411.7 million, representing a 75% non-GAAP gross\nmargin, compared to a non-GAAP gross margin of 77% in the year-ago period.\nLoss from Operations: Loss from operations was $18.6 million for the fourth quarter of fiscal 2025, compared to a loss\nfrom operations of $71.0 million in the year-ago period. Non-GAAP income from operations was $112.5 million, compared\nto non-GAAP income from operations of $69.2 million in the year-ago period.\nNet Income (Loss): Net income was $15.8 million, or $0.20 per share, based on 77.6 million weighted-average shares\noutstanding, for the fourth quarter of fiscal 2025. This compares to a net loss of $55.5 million, or $0.77 per share, in the\nyear-ago period. Non-GAAP net income was $108.4 million, or $1.28 per share, based on 84.6 million fully diluted\nweighted-average shares outstanding. This compares to a non-GAAP net income of $71.1 million, or $0.86 per share, in\nthe year-ago period.\nCash Flow: As of January 31, 2025, MongoDB had $2.3 billion in cash, cash equivalents, short-term investments and\nrestricted cash. During the three months ended January 31, 2025, MongoDB generated $50.5 million of cash from\noperations, compared to $54.6 million of cash from operations in the year-ago period. MongoDB used $26.0 million of cash\nin capital expenditures and used $1.6 million of cash in principal payments of finance leases, leading to free cash flow of\n$22.9 million, compared to free cash flow of $50.5 million in the year-ago period.\nFull Year Fiscal 2025 Financial Highlights\nRevenue: Total revenue was $2.01 billion for the full year fiscal 2025, an increase of 19% year-over-year. Subscription\nrevenue was $1.94 billion, an increase of 19% year-over-year, and services revenue was $62.6 million, an increase of 12%\nyear-over-year.\nGross Profit: Gross profit was $1.47 billion for the full year fiscal 2025, representing a 73% gross margin compared to', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\n\n{content}')
ベクトル ストアをインスタンス化します。
次のコードを実行し、次の を指定する MongoDBAtlasVectorSearch メソッドを使用してベクトルストアを作成します。
MongoDBクラスターへの接続。
llamaindex_db.testドキュメントを保存するために使用されるMongoDBデータベースとコレクション。vector_indexベクトル ストアをクエリするために使用するインデックスとして 。
次に、ベクトルストアをストレージコンテキストに保存します。これは、ストレージのデータを準備するために使用される LlamaIndexコンテナオブジェクトです。
# Connect to your MongoDB cluster mongo_client = pymongo.MongoClient(MONGODB_URI) # Instantiate the vector store vector_store = MongoDBAtlasVectorSearch( mongo_client, db_name = "llamaindex_db", collection_name = "test", vector_index_name = "vector_index" ) vector_store_context = StorageContext.from_defaults(vector_store=vector_store)
データをベクトル埋め込みとして保存します。
データをロードし、Atlas をベクトルストアとしてインスタンス化したら、データからベクトル埋め込みを生成し、Atlas に保存します。これを行うには、ベクトルストアインデックスを構築する必要があります。このタイプのインデックスは、データを分割、埋め込み、ベクトルストアに保存する LlamaIndex データ構造です。
次のコードでは、VectorStoreIndex.from_documents メソッドを使用して、サンプルデータにベクトルストアインデックスを構築します。サンプルデータをベクトル埋め込みに変換し、ベクトルのストレージ コンテキストで指定されるように、これらの埋め込みをMongoDBクラスターの llamaindex_db.testコレクションにドキュメントとしてストレージします。
注意
このメソッドでは、環境を設定するときに構成した埋め込みモデルとチャンクの設定を使用します。
vector_store_index = VectorStoreIndex.from_documents( sample_data, storage_context=vector_store_context, show_progress=True )
Tip
Atlasllamaindex_db.test を使用している場合は、サンプルコードの実行中後、Atlas UIの 名前空間に移動することでベクトル埋め込みを検証できます。
MongoDB ベクトル検索インデックスの作成
ベクトルストアでベクトル検索クエリを有効にするには、llamaindex_db.testコレクションにMongoDB ベクトル検索インデックスを作成します。
エディタで次のコードを実行して、以下のフィールドをインデックスする vectorSearch タイプのインデックスを作成します。
embeddingベクトル型としてのフィールド。embeddingフィールドには、VyageAI のvoyage-3-large埋め込みモデルを使用して作成された埋め込みが含まれます。インデックス定義では、1024ベクトル次元を指定し、cosineを使用して類似性を測定します。metadata.page_labelPDF 内のページ番号でデータを事前にフィルタリングするためのフィルタータイプとしての フィールド。
# Specify the collection for which to create the index collection = mongo_client["llamaindex_db"]["test"] # Create your index model, then create the search index search_index_model = SearchIndexModel( definition={ "fields": [ { "type": "vector", "path": "embedding", "numDimensions": 1024, "similarity": "cosine" }, { "type": "filter", "path": "metadata.page_label" } ] }, name="vector_index", type="vectorSearch" ) collection.create_search_index(model=search_index_model)
インデックスの構築には約 1 分かかります。 構築中、インデックスは最初の同期状態になります。 構築が完了したら、コレクション内のデータのクエリを開始できます。
前提条件
Atlas の サンプル データ セット からの映画データを含むコレクションを使用します。
次のいずれかのMongoDBクラスター タイプ
MongoDB バージョン 6.0.11、7.0.2、またはそれ以降を実行している Atlas クラスター。IP アドレスが Atlas プロジェクトのアクセスリストに含まれていることを確認する。
Atlas CLI を使用して作成されたローカル Atlas 配置。詳細については、「Atlas 配置のローカル配置の作成」を参照してください。
Search とベクトル検索がインストールされたMongoDB Community または Enterprise クラスター。
OpenAI APIキー。APIリクエストに使用できるクレジットを持つ OpenAI アカウントが必要です。OpenAI アカウントの登録の詳細については、OpenAI APIウェブサイト を参照してください。
Colab などのインタラクティブPythonノートを実行するための環境。
環境を設定する
このチュートリアルの環境を設定します。 .ipynb 拡張機能のファイルを保存して、インタラクティブPythonノートを作成します。 このノートはPythonコード スニペットを個別に実行でき、このチュートリアルのコードを実行するために使用します。
ノートク環境を設定するには、次の手順に従います。
依存関係をインストールしてインポートします。
次のコマンドを実行します:
pip install --quiet --upgrade llama-index llama-index-vector-stores-mongodb llama-index-embeddings-openai pymongo
次に、次のコードを実行して必要なパッケージをインポートします。
import os, pymongo, pprint from pymongo.operations import SearchIndexModel from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, StorageContext from llama_index.core.settings import Settings from llama_index.core.retrievers import VectorIndexRetriever from llama_index.core.vector_stores import MetadataFilter, MetadataFilters, ExactMatchFilter, FilterOperator from llama_index.core.query_engine import RetrieverQueryEngine from llama_index.embeddings.openai import OpenAIEmbedding from llama_index.llms.openai import OpenAI from llama_index.vector_stores.mongodb import MongoDBAtlasVectorSearch
環境変数を定義してください。
次のコードを実行し、プレースホルダーを次の値に置き換えます。
OpenAI API キー。
MongoDBクラスターの接続文字列。
os.environ["OPENAI_API_KEY"] = "<api-key>" MONGODB_URI = "<connection-string>"
注意
<connection-string> を Atlas クラスターまたはローカル Atlas 配置の接続文字列に置き換えます。
接続stringには、次の形式を使用する必要があります。
mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
詳しくは、ドライバーを使用してクラスターに接続する を参照してください。
接続stringには、次の形式を使用する必要があります。
mongodb://localhost:<port-number>/?directConnection=true
詳細については、「接続文字列 」を参照してください。
LlamaIndex 設定を構成します。
次のコードを実行して、LlamaIndex に固有の設定を構成します。 これらの設定では、次の項目を指定します。
OpenAI は、データに対する質問に答えるためにアプリケーションによって使用される LM として、 となります。
text-embedding-ada-002アプリケーションがデータからベクトル埋め込みを生成するために使用する埋め込みモデルとして、 。チャンク サイズとオーバーラップ は、LlamaIndex がストレージ用にデータを分割する方法をカスタマイズします。
Settings.llm = OpenAI() Settings.embed_model = OpenAIEmbedding(model="text-embedding-ada-002") Settings.chunk_size = 100 Settings.chunk_overlap = 10
MongoDB をベクトル ストアとして使用
次に、カスタム データをMongoDBにロードし、 MongoDBクラスターをベクトルデータベースとしてインスタンス化します。これはベクトルストアとも呼ばれます。次のコード スニペットをコピーして、ノートに貼り付けます。
サンプル データをロードします。
このチュートリアルでは、ベクトルストアのデータソースとして、最新のMongoDB収益レポートを含む一般にアクセス可能な PDFドキュメントを使用します。このドキュメントでは、MongoDB の会計年度 4 四半期および 1 年間の MongoDB2025 の財務結果を説明します。
サンプル データをロードするには、次のコード スニペットを実行します。 この処理では、次の処理が行われます。
dataという新しいディレクトリを作成します。指定された URL から PDF を検索し、 ディレクトリに ファイルとして保存します。
SimpleDirectoryReaderデータコネクタ を使用して、ファイルから未加工のテキストとメタデータを抽出します。また、データをドキュメントにフォーマットします。
# Load the sample data from urllib.request import urlretrieve urlretrieve("https://investors.mongodb.com/node/13176/pdf", "mongodb-earnings-report.pdf") sample_data = SimpleDirectoryReader(input_files=["./data/mongodb-earnings-report.pdf"]).load_data() # Print the first document sample_data[0]
Document(id_='62b7cace-30c0-4687-9d87-e178547ae357', embedding=None, metadata={'page_label': '1', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, metadata_template='{key}: {value}', metadata_separator='\n', text_resource=MediaResource(embeddings=None, data=None, text='MongoDB, Inc. Announces Fourth Quarter and Full Year Fiscal 2025 Financial Results\nMarch 5, 2025\nFourth Quarter Fiscal 2025 Total Revenue of $548.4 million, up 20% Year-over-Year\nFull Year Fiscal 2025 Total Revenue of $2.01 billion, up 19% Year-over-Year\nContinued Strong Customer Growth with Over 54,500 Customers as of January 31, 2025\nMongoDB Atlas Revenue up 24% Year-over-Year; 71% of Total Q4 Revenue\nNEW YORK , March 5, 2025 /PRNewswire/ -- MongoDB, Inc. (NASDAQ: MDB) today announced its financial results for the fourth quarter and fiscal\nyear ended January 31, 2025.\n\xa0\n \xa0\n"MongoDB delivered a strong end to fiscal 2025 with 24% Atlas revenue growth and significant margin expansion. Atlas consumption in the quarter\nwas better than expected and we continue to see good performance in new workload wins due to the flexibility, scalability and performance of the\nMongoDB platform. In fiscal year 2026 we expect to see stable consumption growth in Atlas, our main growth driver," said Dev Ittycheria, President\nand Chief Executive Officer of MongoDB .\n"Looking ahead, we remain incredibly excited about our long-term growth opportunity. MongoDB removes the constraints of legacy databases,\nenabling businesses to innovate at AI speed with our flexible document model and seamless scalability. Following the Voyage AI acquisition, we\ncombine real-time data, sophisticated embedding and retrieval models and semantic search directly in the database, simplifying the development of\ntrustworthy AI-powered apps."\nFourth Quarter Fiscal 2025 Financial Highlights\nRevenue: Total revenue was $548.4 million for the fourth quarter of fiscal 2025, an increase of 20% year-over-year.\nSubscription revenue was $531.0 million, an increase of 19% year-over-year, and services revenue was $17.4 million, an\nincrease of 34% year-over-year.\nGross Profit: Gross profit was $399.4 million for the fourth quarter of fiscal 2025, representing a 73% gross margin\ncompared to 75% in the year-ago period. Non-GAAP gross profit was $411.7 million, representing a 75% non-GAAP gross\nmargin, compared to a non-GAAP gross margin of 77% in the year-ago period.\nLoss from Operations: Loss from operations was $18.6 million for the fourth quarter of fiscal 2025, compared to a loss\nfrom operations of $71.0 million in the year-ago period. Non-GAAP income from operations was $112.5 million, compared\nto non-GAAP income from operations of $69.2 million in the year-ago period.\nNet Income (Loss): Net income was $15.8 million, or $0.20 per share, based on 77.6 million weighted-average shares\noutstanding, for the fourth quarter of fiscal 2025. This compares to a net loss of $55.5 million, or $0.77 per share, in the\nyear-ago period. Non-GAAP net income was $108.4 million, or $1.28 per share, based on 84.6 million fully diluted\nweighted-average shares outstanding. This compares to a non-GAAP net income of $71.1 million, or $0.86 per share, in\nthe year-ago period.\nCash Flow: As of January 31, 2025, MongoDB had $2.3 billion in cash, cash equivalents, short-term investments and\nrestricted cash. During the three months ended January 31, 2025, MongoDB generated $50.5 million of cash from\noperations, compared to $54.6 million of cash from operations in the year-ago period. MongoDB used $26.0 million of cash\nin capital expenditures and used $1.6 million of cash in principal payments of finance leases, leading to free cash flow of\n$22.9 million, compared to free cash flow of $50.5 million in the year-ago period.\nFull Year Fiscal 2025 Financial Highlights\nRevenue: Total revenue was $2.01 billion for the full year fiscal 2025, an increase of 19% year-over-year. Subscription\nrevenue was $1.94 billion, an increase of 19% year-over-year, and services revenue was $62.6 million, an increase of 12%\nyear-over-year.\nGross Profit: Gross profit was $1.47 billion for the full year fiscal 2025, representing a 73% gross margin compared to', path=None, url=None, mimetype=None), image_resource=None, audio_resource=None, video_resource=None, text_template='{metadata_str}\n\n{content}')
ベクトル ストアをインスタンス化します。
次のコードを実行し、次の を指定する MongoDBAtlasVectorSearch メソッドを使用してベクトルストアを作成します。
MongoDBクラスターへの接続。
llamaindex_db.testドキュメントを保存するために使用されるMongoDBデータベースとコレクション。vector_indexベクトル ストアをクエリするために使用するインデックスとして 。
次に、ベクトルストアをストレージコンテキストに保存します。これは、ストレージのデータを準備するために使用される LlamaIndexコンテナオブジェクトです。
# Connect to your MongoDB cluster mongo_client = pymongo.MongoClient(MONGODB_URI) # Instantiate the vector store vector_store = MongoDBAtlasVectorSearch( mongo_client, db_name = "llamaindex_db", collection_name = "test", vector_index_name = "vector_index" ) vector_store_context = StorageContext.from_defaults(vector_store=vector_store)
データをベクトル埋め込みとして保存します。
データをロードし、 MongoDB をベクトルストアとしてインスタンス化したら、データからベクトル埋め込みを生成し、 MongoDBに保存します。これを行うには、ベクトルストアインデックスを構築する必要があります。このタイプのインデックスは、データを分割、埋め込み、ベクトルストアに保存する LlamaIndex データ構造です。
次のコードでは、VectorStoreIndex.from_documents メソッドを使用して、サンプルデータにベクトルストアインデックスを構築します。サンプルデータをベクトル埋め込みに変換し、ベクトルのストレージ コンテキストで指定されるように、これらの埋め込みをMongoDBクラスターの llamaindex_db.testコレクションにドキュメントとしてストレージします。
注意
このメソッドでは、環境を設定するときに構成した埋め込みモデルとチャンクの設定を使用します。
vector_store_index = VectorStoreIndex.from_documents( sample_data, storage_context=vector_store_context, show_progress=True )
Tip
Atlasllamaindex_db.test を使用している場合は、サンプルコードの実行中後、Atlas UIの 名前空間に移動することでベクトル埋め込みを検証できます。
MongoDB ベクトル検索インデックスの作成
ベクトルストアでベクトル検索クエリを有効にするには、llamaindex_db.testコレクションにMongoDB ベクトル検索インデックスを作成します。
エディタで次のコードを実行して、以下のフィールドをインデックスする vectorSearch タイプのインデックスを作成します。
embeddingベクトル型としての フィールド。embeddingフィールドには、OpenAI のtext-embedding-ada-002埋め込みモデルを使用して作成された埋め込みが含まれます。 インデックス定義では、1536ベクトル次元を指定し、cosineを使用して類似性を測定します。metadata.page_labelPDF 内のページ番号でデータを事前にフィルタリングするためのフィルタータイプとしての フィールド。
# Specify the collection for which to create the index collection = mongo_client["llamaindex_db"]["test"] # Create your index model, then create the search index search_index_model = SearchIndexModel( definition={ "fields": [ { "type": "vector", "path": "embedding", "numDimensions": 1536, "similarity": "cosine" }, { "type": "filter", "path": "metadata.page_label" } ] }, name="vector_index", type="vectorSearch" ) collection.create_search_index(model=search_index_model)
インデックスの構築には約 1 分かかります。 構築中、インデックスは最初の同期状態になります。 構築が完了したら、コレクション内のデータのクエリを開始できます。
ベクトル検索クエリの実行
MongoDB がインデックスを構築 したら、 ノート PC に戻り、データに対してベクトル検索クエリを実行します。次の例は、ベクトル化されたデータに対して実行できるさまざまなクエリを示しています。
この例では、 string MongoDB Atlas security の基本的なセマンティック検索を実行し、関連性スコアで順位付けされたドキュメントのリストを返します。 また、次の項目も指定します。
最も関連性の高いドキュメントを 3 つのドキュメントのみを返すには、
similarity_top_kパラメーターを使用します。
retriever = vector_store_index.as_retriever(similarity_top_k=3) nodes = retriever.retrieve("MongoDB acquisition") for node in nodes: print(node)
Node ID: 479446ef-8a32-410d-a5e0-8650bd10d78d Text: MongoDB completed the redemption of 2026 Convertible Notes, eliminating all debt from the balance sheet. Additionally, in conjunction with the acquisition of Voyage, MongoDB is announcing a stock buyback program of $200 million, to offset the dilutive impact of the acquisition consideration. Score: 0.914 Node ID: 453137d9-8902-4fae-8d81-5f5d9b0836eb Text: "Looking ahead, we remain incredibly excited about our long-term growth opportunity. MongoDB removes the constraints of legacy databases, enabling businesses to innovate at AI speed with our flexible document model and seamless scalability. Following the Voyage AI acquisition, we combine real-time data, sophisticated embedding and retrieval mod... Score: 0.914 Node ID: f3c35db6-43e5-4da7-a297-d9b009b9d300 Text: Lombard Odier, a Swiss private bank, partnered with MongoDB to migrate and modernize its legacy banking technology systems on MongoDB with generative AI. The initiative enabled the bank to migrate code 50-60 times quicker and move applications from a legacy relational database to MongoDB 20 times faster than previous migrations. Score: 0.912
コレクション内の別の値とインデックス付きフィールドを比較する MQL 一致式を使用して、データを事前にフィルタリングできます。フィルタリングするメタデータフィールドはすべて、filter タイプとしてインデックスを作成する必要があります。詳細については、「ベクトル検索のフィールドにインデックスを付ける方法」を参照してください。
注意
このチュートリアルのインデックスを作成したときに、metadata.page_labelフィールドをフィルターとして指定しました。
この例では、string MongoDB Atlas securityのセマンティック検索を実行し、関連性スコアで順位付けされたドキュメントのリストを返します。 また、次の項目も指定します。
最も関連性の高いドキュメントを 3 つのドキュメントのみを返すには、
similarity_top_kパラメーターを使用します。MongoDB ベクトル検索 が2 ページにのみ表示されるドキュメントを検索するための
metadata.page_labelフィールドのフィルター。
# Specify metadata filters metadata_filters = MetadataFilters( filters=[ExactMatchFilter(key="metadata.page_label", value="2")] ) retriever = vector_store_index.as_retriever(similarity_top_k=3, filters=metadata_filters) nodes = retriever.retrieve("MongoDB acquisition") for node in nodes: print(node)
Node ID: 479446ef-8a32-410d-a5e0-8650bd10d78d Text: MongoDB completed the redemption of 2026 Convertible Notes, eliminating all debt from the balance sheet. Additionally, in conjunction with the acquisition of Voyage, MongoDB is announcing a stock buyback program of $200 million, to offset the dilutive impact of the acquisition consideration. Score: 0.914 Node ID: f3c35db6-43e5-4da7-a297-d9b009b9d300 Text: Lombard Odier, a Swiss private bank, partnered with MongoDB to migrate and modernize its legacy banking technology systems on MongoDB with generative AI. The initiative enabled the bank to migrate code 50-60 times quicker and move applications from a legacy relational database to MongoDB 20 times faster than previous migrations. Score: 0.912 Node ID: 82a2a0c0-80b9-4a9e-a848-529b4ff8f301 Text: Fourth Quarter Fiscal 2025 and Recent Business Highlights MongoDB acquired Voyage AI, a pioneer in state-of-the-art embedding and reranking models that power next-generation AI applications. Integrating Voyage AI's technology with MongoDB will enable organizations to easily build trustworthy, AI-powered applications by offering highly accurate... Score: 0.911
データに関する質問に答えます
このセクションでは、 MongoDB ベクトル検索と LlamaIndex を使用してアプリケーションに RAG を実装する方法を説明します。ベクトル検索クエリを実行してセマンティックに類似したドキュメントを検索する方法を学習したので、次のコードを実行してMongoDB ベクトル検索を使用してドキュメントを検索し、LlamaIndex クエリエンジンを使用してそれらのドキュメントに基づいて質問に答えます。
この例では、次の処理を行います。
MongoDB ベクトル検索 をベクトルインデックスレプリカ(ベクトルストアの特定のタイプのリゾルバ)としてインスタンス化します。これには
similarity_top_kパラメーターが含まれているため、 MongoDB ベクトル検索 は 5 最も関連性の高いドキュメントのみを検索します。
データに関する質問に答えるために、
RetrieverQueryEngineクエリ エンジンをインスタンス化します。 プロンプトが表示されると、クエリ エンジンは次のアクションを実行します。MongoDB ベクトル検索ドライバーとして使用して、 プロンプトに基づいてセマンティック類似ドキュメントを検索します。
環境を設定するときに指定した LM を呼び出し、検索されたドキュメントに基づいてコンテキストを認識する応答を生成します。
Atlas のセキュリティ推奨事項に関するサンプルクエリを使用して LM をプロンプトします。
LLMの応答とコンテキストとして使用されたドキュメントを返します。 生成される応答は異なる場合があります。
# Instantiate MongoDB Vector Search as a retriever vector_store_retriever = VectorIndexRetriever(index=vector_store_index, similarity_top_k=5) # Pass the retriever into the query engine query_engine = RetrieverQueryEngine(retriever=vector_store_retriever) # Prompt the LLM response = query_engine.query("What was MongoDB's latest acquisition?") print(response) print("\nSource documents: ") pprint.pprint(response.source_nodes)
MongoDB's latest acquisition was Voyage AI, a pioneer in embedding and reranking models for next-generation AI applications. Source documents: [NodeWithScore(node=TextNode(id_='82a2a0c0-80b9-4a9e-a848-529b4ff8f301', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='8cfe6680-8dec-486e-92c5-89ac1733b6c8', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='b6c412af868c29d67a6b030f266cd0e680f4a578a34c209c1818ff9a366c9d44'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='479446ef-8a32-410d-a5e0-8650bd10d78d', node_type='1', metadata={}, hash='b805543bf0ef0efc25492098daa9bd9c037043fb7228fb0c3270de235e668341')}, metadata_template='{key}: {value}', metadata_separator='\n', text="Fourth Quarter Fiscal 2025 and Recent Business Highlights\nMongoDB acquired Voyage AI, a pioneer in state-of-the-art embedding and reranking models that power next-generation\nAI applications. Integrating Voyage AI's technology with MongoDB will enable organizations to easily build trustworthy,\nAI-powered applications by offering highly accurate and relevant information retrieval deeply integrated with operational\ndata.", mimetype='text/plain', start_char_idx=1678, end_char_idx=2101, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9279670119285583), NodeWithScore(node=TextNode(id_='453137d9-8902-4fae-8d81-5f5d9b0836eb', embedding=None, metadata={'page_label': '1', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='62b7cace-30c0-4687-9d87-e178547ae357', node_type='4', metadata={'page_label': '1', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='cb1dbd172c17e53682296ccc966ebdbb5605acb4fbf3872286e3a202c1d3650d'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='b6ae7c13-5bec-47f5-887f-835fc7bae374', node_type='1', metadata={'page_label': '1', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='a4835102686cdf03d1106946237d50031d00a0861eea892e38b928dd5e44e295'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='3d4034d3-bac5-4985-8926-9213f8a87318', node_type='1', metadata={}, hash='f103b351f2bda28ec3d2f1bb4f40d93ac1698ea5f7630a5297688a4caa419389')}, metadata_template='{key}: {value}', metadata_separator='\n', text='"Looking ahead, we remain incredibly excited about our long-term growth opportunity. MongoDB removes the constraints of legacy databases,\nenabling businesses to innovate at AI speed with our flexible document model and seamless scalability. Following the Voyage AI acquisition, we\ncombine real-time data, sophisticated embedding and retrieval models and semantic search directly in the database, simplifying the development of\ntrustworthy AI-powered apps."', mimetype='text/plain', start_char_idx=1062, end_char_idx=1519, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.921961784362793), NodeWithScore(node=TextNode(id_='85dd431c-2d4c-4336-ab39-e87a97b30c59', embedding=None, metadata={'page_label': '4', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='311532cc-f526-4fc3-adb6-49e76afdd580', node_type='4', metadata={'page_label': '4', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='37f0ad7fcb7f204226ea7c6c475360e2db55bb77447f1742a164efb9c1da5dc0'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='6175bcb6-9e2a-4196-85f7-0585bcbbdd3b', node_type='1', metadata={}, hash='0e92e55a50f8b6dbfe7bcaedb0ccc42345a185048efcd440e3ee1935875e7cbf')}, metadata_template='{key}: {value}', metadata_separator='\n', text="Headquartered in New York, MongoDB's mission is to empower innovators to create, transform, and disrupt industries with software and data.\nMongoDB's unified, intelligent data platform was built to power the next generation of applications, and MongoDB is the most widely available, globally\ndistributed database on the market.", mimetype='text/plain', start_char_idx=0, end_char_idx=327, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9217028021812439), NodeWithScore(node=TextNode(id_='f3c35db6-43e5-4da7-a297-d9b009b9d300', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='3008736c-29f0-4b41-ac0f-efdb469319b9', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='cd3647350e6d7fcd89e2303fe1995b8f91b633c5f33e14b3b4c18a16738ea86f'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='c9bef874-77ee-40bc-a1fe-ca42d1477cb3', node_type='1', metadata={}, hash='c7d7af8a1b43b587a9c47b27f57e7cb8bc35bd90390a078db21e3f5253ee7cc1')}, metadata_template='{key}: {value}', metadata_separator='\n', text='Lombard Odier, a Swiss private bank, partnered with MongoDB to migrate and modernize its legacy banking technology\nsystems on MongoDB with generative AI. The initiative enabled the bank to migrate code 50-60 times quicker and move\napplications from a legacy relational database to MongoDB 20 times faster than previous migrations.', mimetype='text/plain', start_char_idx=2618, end_char_idx=2951, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9197831153869629), NodeWithScore(node=TextNode(id_='479446ef-8a32-410d-a5e0-8650bd10d78d', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='82a2a0c0-80b9-4a9e-a848-529b4ff8f301', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='688872b911c388c239669970f562d4014aaec4753903e75f4bdfcf1eb1daf5ab'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='3008736c-29f0-4b41-ac0f-efdb469319b9', node_type='1', metadata={}, hash='a854a9bf103e429ce78b45603df9e2341e5d0692aa95e544e6c82616be29b28e')}, metadata_template='{key}: {value}', metadata_separator='\n', text='MongoDB completed the redemption of 2026 Convertible Notes, eliminating all debt from the balance sheet. Additionally, in\nconjunction with the acquisition of Voyage, MongoDB is announcing a stock buyback program of $200 million, to offset the\ndilutive impact of the acquisition consideration.', mimetype='text/plain', start_char_idx=2102, end_char_idx=2396, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9183852672576904)]
この例では、次の処理を行います。
MongoDB ベクトル検索 が2 ページに表示されるドキュメントのみを検索するように、
metadata.page_labelフィールドにメタデータフィルターを定義します。MongoDB ベクトル検索 をベクトルインデックスレプリカ(ベクトルストアの特定のタイプのリゾルバ)としてインスタンス化します。定義したメタデータフィルターと
similarity_top_kパラメーターが含まれているため、 MongoDB ベクトル検索 はページ 2 から最も関連性の高い 5 ドキュメントのみを検索します。
データに関する質問に答えるために、
RetrieverQueryEngineクエリ エンジンをインスタンス化します。 プロンプトが表示されると、クエリ エンジンは次のアクションを実行します。MongoDB ベクトル検索ドライバーとして使用して、 プロンプトに基づいてセマンティック類似ドキュメントを検索します。
環境を設定するときに指定した LM を呼び出し、検索されたドキュメントに基づいてコンテキストを認識する応答を生成します。
Atlas のセキュリティ推奨事項に関するサンプルクエリを使用して LM をプロンプトします。
LLMの応答とコンテキストとして使用されたドキュメントを返します。 生成される応答は異なる場合があります。
# Specify metadata filters metadata_filters = MetadataFilters( filters=[ExactMatchFilter(key="metadata.page_label", value="2")] ) # Instantiate MongoDB Vector Search as a retriever vector_store_retriever = VectorIndexRetriever(index=vector_store_index, filters=metadata_filters, similarity_top_k=5) # Pass the retriever into the query engine query_engine = RetrieverQueryEngine(retriever=vector_store_retriever) # Prompt the LLM response = query_engine.query("What was MongoDB's latest acquisition?") print(response) print("\nSource documents: ") pprint.pprint(response.source_nodes)
MongoDB's latest acquisition was Voyage AI, a pioneer in embedding and reranking models that power next-generation AI applications. Source documents: [NodeWithScore(node=TextNode(id_='82a2a0c0-80b9-4a9e-a848-529b4ff8f301', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='8cfe6680-8dec-486e-92c5-89ac1733b6c8', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='b6c412af868c29d67a6b030f266cd0e680f4a578a34c209c1818ff9a366c9d44'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='479446ef-8a32-410d-a5e0-8650bd10d78d', node_type='1', metadata={}, hash='b805543bf0ef0efc25492098daa9bd9c037043fb7228fb0c3270de235e668341')}, metadata_template='{key}: {value}', metadata_separator='\n', text="Fourth Quarter Fiscal 2025 and Recent Business Highlights\nMongoDB acquired Voyage AI, a pioneer in state-of-the-art embedding and reranking models that power next-generation\nAI applications. Integrating Voyage AI's technology with MongoDB will enable organizations to easily build trustworthy,\nAI-powered applications by offering highly accurate and relevant information retrieval deeply integrated with operational\ndata.", mimetype='text/plain', start_char_idx=1678, end_char_idx=2101, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9280173778533936), NodeWithScore(node=TextNode(id_='f3c35db6-43e5-4da7-a297-d9b009b9d300', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='3008736c-29f0-4b41-ac0f-efdb469319b9', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='cd3647350e6d7fcd89e2303fe1995b8f91b633c5f33e14b3b4c18a16738ea86f'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='c9bef874-77ee-40bc-a1fe-ca42d1477cb3', node_type='1', metadata={}, hash='c7d7af8a1b43b587a9c47b27f57e7cb8bc35bd90390a078db21e3f5253ee7cc1')}, metadata_template='{key}: {value}', metadata_separator='\n', text='Lombard Odier, a Swiss private bank, partnered with MongoDB to migrate and modernize its legacy banking technology\nsystems on MongoDB with generative AI. The initiative enabled the bank to migrate code 50-60 times quicker and move\napplications from a legacy relational database to MongoDB 20 times faster than previous migrations.', mimetype='text/plain', start_char_idx=2618, end_char_idx=2951, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9198455214500427), NodeWithScore(node=TextNode(id_='479446ef-8a32-410d-a5e0-8650bd10d78d', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='82a2a0c0-80b9-4a9e-a848-529b4ff8f301', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='688872b911c388c239669970f562d4014aaec4753903e75f4bdfcf1eb1daf5ab'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='3008736c-29f0-4b41-ac0f-efdb469319b9', node_type='1', metadata={}, hash='a854a9bf103e429ce78b45603df9e2341e5d0692aa95e544e6c82616be29b28e')}, metadata_template='{key}: {value}', metadata_separator='\n', text='MongoDB completed the redemption of 2026 Convertible Notes, eliminating all debt from the balance sheet. Additionally, in\nconjunction with the acquisition of Voyage, MongoDB is announcing a stock buyback program of $200 million, to offset the\ndilutive impact of the acquisition consideration.', mimetype='text/plain', start_char_idx=2102, end_char_idx=2396, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.918432891368866), NodeWithScore(node=TextNode(id_='3008736c-29f0-4b41-ac0f-efdb469319b9', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='479446ef-8a32-410d-a5e0-8650bd10d78d', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='833c2af73d617c1fef7d04111e010bfe06eeeb36c71225c0fb72987cd164526b'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='f3c35db6-43e5-4da7-a297-d9b009b9d300', node_type='1', metadata={}, hash='c39c6258ff9fe34b650dd2782ae20e1ed57ed20465176cbf455ee9857e57dba0')}, metadata_template='{key}: {value}', metadata_separator='\n', text='For the third consecutive year, MongoDB was named a Leader in the 2024 Gartner® Magic Quadrant™ for Cloud\nDatabase Management Systems. Gartner evaluated 20 vendors based on Ability to Execute and Completeness of Vision.', mimetype='text/plain', start_char_idx=2397, end_char_idx=2617, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.917201817035675), NodeWithScore(node=TextNode(id_='d50a3746-84ac-4928-a252-4eda3515f9fc', embedding=None, metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={<NodeRelationship.SOURCE: '1'>: RelatedNodeInfo(node_id='2171a7d3-482c-4f83-beee-8c37e0ebc747', node_type='4', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='ef623ef7400aa6e120f821b455b2ddce99b94c57365e7552b676abaa3eb23640'), <NodeRelationship.PREVIOUS: '2'>: RelatedNodeInfo(node_id='25e4f1c9-41ba-4344-b775-842a0a15c207', node_type='1', metadata={'page_label': '2', 'file_name': 'mongodb-earnings-report.pdf', 'file_path': 'data/mongodb-earnings-report.pdf', 'file_type': 'application/pdf', 'file_size': 150863, 'creation_date': '2025-05-28', 'last_modified_date': '2025-05-28'}, hash='28af4302a69924722e2ccd2015b8d64fa83790b4f0d4759898ede48e40668fa1'), <NodeRelationship.NEXT: '3'>: RelatedNodeInfo(node_id='13da6584-75b4-4eb8-a071-8297087ce12c', node_type='1', metadata={}, hash='e316923acbe01dede55287258f9649bb9865ef2357f2316e190b97aef84f22ec')}, metadata_template='{key}: {value}', metadata_separator='\n', text="as amended, including statements concerning MongoDB's financial guidance\nfor the first fiscal quarter and full year fiscal 2026 and underlying assumptions, our expectations regarding Atlas consumption growth and the benefits\nof the Voyage AI acquisition.", mimetype='text/plain', start_char_idx=5174, end_char_idx=5428, metadata_seperator='\n', text_template='{metadata_str}\n\n{content}'), score=0.9084539413452148)]
次のステップ
データ コネクタ、インデックス、クエリ エンジンを含む RAG アプリケーション用の LlamaIndex のツールライブラリは、 LlamaHub を参照してください。
このチュートリアルのアプリケーションを拡張して、双方向のやり取りを行うには、チャット エンジンを参照してください。
MongoDBは、次の開発者リソースも提供しています。