MongoDB をLgflow と統合すると、ビジュアル インターフェースからAIエージェントにMongoDBベースの検索を追加できます。このチュートリアルでは、 MongoDBを使用するようにエージェントを構成するフローを構築します。このチュートリアルでは、次のタスクを実行します。
MongoDB をベクトルストアとして構成し、 MongoDBブログ記事をそれに取り込みます。
MongoDBコレクションを取得ツールとして使用するエージェントを構築します。
フローを実行し、ブログ投稿の内容について質問します。
バックグラウンド
Lgflow は、 AIパイプラインとエージェントを構築するためのオープンソースのビジュアルフレームワークです。コードを記述する代わりに、カンファレンス上のコンポーネントをドラッグして接続することでフローを構築します。各コンポーネントは、テキストの分割や言語モデルのクエリなど、 個別のタスクを実行します。
Lingflow は、 MongoDB ベクトル検索 をベクトルストアとして使用する MongoDB Atlas コンポーネントを提供します。このコンポーネントをフロー内の他のコンポーネントに接続して、データを取り込んだり、類似性検索を実行したり、コレクションをクエリするためのツールをエージェントに提供したりできます 。コンポーネントは、一致するインデックスがまだ存在しない場合、最初に検索を実行するときにコレクションにMongoDB ベクトル検索インデックスを作成します。
フローについて
このチュートリアルでは、次のフローを構築します。
URL → Split Text → ┐ ├── MongoDB Atlas → ┐ Embeddings → ┘ ├── Agent → Chat Output Chat Input → ┘
フローは、次のタスクを実行します。
URL コンポーネントは、 MongoDB 9.0 リリースを説明するMongoDBブログ記事の内容を取得します。
Split Text コンポーネントはそのコンテンツをチャンクに分割します。
MongoDB Atlas コンポーネントは各チャンクを埋め込み、それをコレクションに書込みます。
MongoDB 9.0 ブログ記事に関連するメッセージを送信すると、Agent コンポーネントは MongoDB Atlas コンポーネントを呼び出し、コレクション内で関連するチャンクを検索します。
エージェントは検索されたすべての チャンク を使用して応答を生成し、 Chat Output コンポーネントが返します。
前提条件
このチュートリアルを完了するには、次のリソースが必要です。
マシンにインストールされた Llang。詳細については、L Shell ドキュメントの「 Lgflow のインストール 」を参照してください。
次のいずれかのMongoDBクラスター タイプ
MongoDB バージョン 6.0.11 を実行している Atlas クラスター、7.0.2以降。IP アドレスが Atlas プロジェクトのアクセスリストに含まれていることを確認します。
Python と Docker を使用して作成されたローカル Atlas 配置。
atlas-local-lib-py(pip install atlas-local-lib-py) をインストールして、ローカル配置をプログラムで作成および管理します。詳細については、atlas-local-lib-py リポジトリを参照してください。A MongoDB Community cluster with Search and Vector Search installed.
埋め込みモデルと言語モデルプロバイダー(OpenAI など)のAPIキー。サポートされているモデルの詳細については、Llang ドキュメントの「 埋め込みモデル 」と「 言語モデル 」を参照してください。
Considerations
Lgflow とMongoDBを操作する場合は、次の点を考慮してください。
MongoDB Atlasユーザーの場合は、必ずプロジェクトのIP アクセス リストに、L Shell ホストのIPアドレスを追加してください。詳細については、 「 IPアクセス リスト エントリの設定 」を参照してください。
Embeddingコンポーネントは必須であり、MongoDB Atlas コンポーネントのEmbedding 入力に接続する必要があります。コンポーネントを接続しない場合、ドキュメントまたはクエリを埋め込みしようとしたときにフローは失敗します。詳しくは、 「 MongoDBと Lgflow を統合する 」を参照してください。
MongoDB AtlasQuantizationコンポーネントは、新しいMongoDB ベクトル検索インデックスを作成する前に、 フィールドに値が必要です。詳しくは、「 検索インデックス 」を参照してください。
MongoDBでのデータの保存
このセクションでは、ブログ投稿データをMongoDBコレクションに追加し、そのデータをベクトル検索用にインデックスを作成するフローを作成します。
MongoDB Atlasコンポーネントをインストールします。
Tip
Lgflow Desktop を使用する場合は、この手順をスキップできます。
Pythonバージョンでは、MongoDB Atlas コンポーネントはデフォルトでは利用できません。このコンポーネントをインストールするには、次のコマンドを実行します。
uv pip install "lfx-bundles[mongodb]"
Dockerを使用して Lgflowlangflowai/langflow-all langflowai/langflowを実行する場合は、 ではなく イメージを使用します。詳しくは、 「 MongoDBと Lgflow を統合する 」を参照してください。
MongoDB Atlasコンポーネントを追加します。
MongoDB カテゴリから MongoDB Atlas コンポーネントをスキャンに追加し、Split Text コンポーネントの Chunks 出力を MongoDB Atlas コンポーネントの Ingest Data 入力に接続します。
MongoDB Atlas コンポーネントで次のパラメータを構成します。
Parameter | 値 |
|---|---|
MongoDB Atlas Cluster URI | MongoDB接続文字列。接続文字列を取得する方法については、「 接続文字列 」を参照してください。 |
Database Name | データベース名(例: |
Collection Name | コレクション名(例: |
Index Name | インデックス名(例: |
Quantization | インデックスがベクトル値を保存するために使用するデータ型。 |
Tip
量子化パラメータを設定するには、 MongoDB Atlasコンポーネントの上にある [ Parameters ] ボタンをクリックします。次に、[ 量子化 ] リスト項目の横にある [ 追加 ] ボタンを選択します。
取り込みパスを構築します。
MongoDB Atlas コンポーネントを選択し、プレイ アイコンをクリックして URL → Split Text → MongoDB Atlas パスを構築します。これにより、ページのコンテンツが埋め込まれ、そのコンテンツがコレクションに書き込まれ、 MongoDB ベクトル検索インデックスがまだ存在しない場合は作成されます。
The index should take about one minute to build. While it builds, the index is in an initial sync state. When it finishes building, you can start querying the data in your collection.
エージェントをビルドする
このセクションでは、取り込んだページに関する質問に答えるためのツールとしてMongoDBコレクションを使用するエージェントを追加します。
フローを実行します。
カンストの右上隅にある [Playground] をクリックします。次に、"Which new queryable encryption features does MongoDB 9.0 introduce?" などのブログ記事に関する質問をします。エージェントは、MongoDB Atlas ツールを呼び出してコレクションを検索するかどうかを決定し、検索されたチャンクを使用してその応答を生成します。
重要
データの再取り込みを避ける
MongoDB Atlasコンポーネントを Agent コンポーネントに接続すると、メッセージが送信されるたびに Lingflow は取り込みパス全体を再実行します。
本番環境のフローでは、取り込みパスを構築した後、 MongoDB Atlasコンポーネントをフリーズして、再実行を防ぎます。詳細については、Llang ドキュメントの「 コンポーネントの固定 」を参照してください。
次のステップ
MongoDB Atlasコンポーネントのパラメーターとそれが作成するMongoDB ベクトル検索インデックスの詳細については、 「 MongoDBと Lgflow の統合 」を参照してください。
