AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Lgflow 統合を使い始める

MongoDB をLgflow と統合すると、ビジュアル インターフェースからAIエージェントにMongoDBベースの検索を追加できます。このチュートリアルでは、 MongoDBを使用するようにエージェントを構成するフローを構築します。このチュートリアルでは、次のタスクを実行します。

  1. MongoDB をベクトルストアとして構成し、 MongoDBブログ記事をそれに取り込みます。

  2. MongoDBコレクションを取得ツールとして使用するエージェントを構築します。

  3. フローを実行し、ブログ投稿の内容について質問します。

Lgflow は、 AIパイプラインとエージェントを構築するためのオープンソースのビジュアルフレームワークです。コードを記述する代わりに、カンファレンス上のコンポーネントをドラッグして接続することでフローを構築します。各コンポーネントは、テキストの分割や言語モデルのクエリなど、 個別のタスクを実行します。

Lingflow は、 MongoDB ベクトル検索 をベクトルストアとして使用する MongoDB Atlas コンポーネントを提供します。このコンポーネントをフロー内の他のコンポーネントに接続して、データを取り込んだり、類似性検索を実行したり、コレクションをクエリするためのツールをエージェントに提供したりできます 。コンポーネントは、一致するインデックスがまだ存在しない場合、最初に検索を実行するときにコレクションにMongoDB ベクトル検索インデックスを作成します。

このチュートリアルでは、次のフローを構築します。

URL → Split Text → ┐
├── MongoDB Atlas → ┐
Embeddings → ┘ ├── Agent → Chat Output
Chat Input → ┘

フローは、次のタスクを実行します。

  1. URL コンポーネントは、 MongoDB 9.0 リリースを説明するMongoDBブログ記事の内容を取得します。

  2. Split Text コンポーネントはそのコンテンツをチャンクに分割します。

  3. MongoDB Atlas コンポーネントは各チャンクを埋め込み、それをコレクションに書込みます。

  4. MongoDB 9.0 ブログ記事に関連するメッセージを送信すると、Agent コンポーネントは MongoDB Atlas コンポーネントを呼び出し、コレクション内で関連するチャンクを検索します。

  5. エージェントは検索されたすべての チャンク を使用して応答を生成し、 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 ドキュメントの「 埋め込みモデル 」と「 言語モデル 」を参照してください。

Lgflow とMongoDBを操作する場合は、次の点を考慮してください。

このセクションでは、ブログ投稿データをMongoDBコレクションに追加し、そのデータをベクトル検索用にインデックスを作成するフローを作成します。

1

Tip

Lgflow Desktop を使用する場合は、この手順をスキップできます。

Pythonバージョンでは、MongoDB Atlas コンポーネントはデフォルトでは利用できません。このコンポーネントをインストールするには、次のコマンドを実行します。

uv pip install "lfx-bundles[mongodb]"

Dockerを使用して Lgflowlangflowai/langflow-all langflowai/langflowを実行する場合は、 ではなく イメージを使用します。詳しくは、 「 MongoDBと Lgflow を統合する 」を参照してください。

2

Lgflow を開き、New Flow ボタンをクリックして空白のフローを作成します。次に、左側のナビゲーション バーの [Components]タブをクリックして、フローへのコンポーネントの追加を開始します。

3

Data Source カテゴリから URL コンポーネントをコンソールに追加します。 URLs パラメータを次のURLに設定します。この URL はMongoDB 9.0 に関するブログ記事にリンクします。

https://www.mongodb.com/company/blog/product-release-announcements/mongodb-9-0-this-is-what-a-database-should-be

Depth パラメータはデフォルト値である 1.00 に設定したままにします。

4

ブログ投稿 データをチャンクに分割するには、次の手順を実行します。

  1. Processing カテゴリから Split Text コンポーネントをコンソールに追加します。

  2. URL コンポーネントの Extracted Pages 出力を Split Text コンポーネントの Input に接続します。

  3. Chunk Overlap、Chunk Size、Separator のパラメータはデフォルト値のままにします。

5

MongoDB カテゴリから MongoDB Atlas コンポーネントをスキャンに追加し、Split Text コンポーネントの Chunks 出力を MongoDB Atlas コンポーネントの Ingest Data 入力に接続します。

MongoDB Atlas コンポーネントで次のパラメータを構成します。

Parameter
値
MongoDB Atlas Cluster URI

MongoDB接続文字列。接続文字列を取得する方法については、「 接続文字列 」を参照してください。

Database Name

データベース名(例: langflow_tutorial

Collection Name

コレクション名(例: web_page_chunks

Index Name

インデックス名(例: langflow_idx

Quantization

インデックスがベクトル値を保存するために使用するデータ型。scalar または binary になります

Tip

量子化パラメータを設定するには、 MongoDB Atlasコンポーネントの上にある [ Parameters ] ボタンをクリックします。次に、[ 量子化 ] リスト項目の横にある [ 追加 ] ボタンを選択します。

6

OpenAI テキスト埋め込みを構成するには、次の手順を実行します。

  1. OpenAI カテゴリから OpenAI Embeddings コンポーネントを追加します。

  2. Model ドロップダウンから希望モデルを選択します。

  3. コンポーネントの API Key パラメーターでAPIキーを指定します。

  4. コンポーネントを MongoDB Atlas コンポーネントの Embedding 入力に接続します。

別の埋め込みプロバイダーを使用する場合は、対応するコンポーネントをフローに追加します。

7

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コレクションを使用するエージェントを追加します。

1

Models & Agents カテゴリから Agent コンポーネントをコンソールに追加します。

2

エージェントの言語モデルを設定するには、次の手順を実行します。

  1. Agent コンポーネントで、Language Model ドロップダウンから Manage Model Providers を選択します。

  2. OpenAI を使用する場合は、Model providers リストから OpenAI を選択し、OpenAI APIキーを入力します。次に、Language Model リストから OpenAI言語モデルを選択します。

  3. Agent コンポーネントに戻り、Language Model ドロップダウンから新しく構成された言語モデルを選択します。

3

Input & Output カテゴリから、Chat Input コンポーネントと Chat Output コンポーネントをコンソールに追加します。

Chat Input を Agent コンポーネントの Input に接続し、Agent コンポーネントの Response を Chat Output に接続します。

4
  1. MongoDB Atlas コンポーネントを選択し、そのヘッダー メニューで Tool Mode を有効にします。

  2. MongoDB Atlas コンポーネントの Toolset 出力を Agent コンポーネントの Tools 入力に接続します。

フローは、 フローについて説明する図 で説明されている構造を持ち、次の画像のようになります。

このチュートリアルの完了したフロー。
クリックして拡大します
5

カンストの右上隅にある [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 の統合 」を参照してください。