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

Configure mongot for MongoDB Vector Search Automated Embedding

重要

自動埋め込みは自己管理型 mongot のプレビューです。機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。詳細については、「プレビュー機能」を参照してください。

このチュートリアルでは、自己管理型 mongot 配置で自動型埋め込みを構成する方法を説明します。自動型埋め込みを使用すると、mongot はインデックス時にテキストデータのベクトル埋め込みを生成し、クエリ時にクエリテキストのベクトル埋め込みを生成します。アプリケーションで別の埋め込みパイプラインを維持する必要はありません。

This tutorial is for developers who are building semantic search or RAG features and want mongot to manage embeddings. For MongoDB Controllers for Kubernetes Operator deployments, see Automated Embedding.

自動埋め込みを使用しない場合、アプリケーションは次のことを行います。

  1. 挿入または更新する各ドキュメントの埋め込みを生成します。

  2. この埋め込みをコレクション内のドキュメントと一緒に保存します。

  3. クエリ時に同じモデルを使用して、すべてのクエリの埋め込みを生成します。

  4. クエリ埋め込みを $vectorSearch に提出します。

自動型埋め込みでは、mongot がステップ 1、2、3 を取り扱います。アプリケーション:

  1. テキスト フィールドの autoEmbed フィールド タイプを使用して MongoDB ベクトル検索インデックスを構成します。

  2. ドキュメントを通常に挿入および更新します。

    mongot テキスト フィールドを読み取り、構成された埋め込みモデルを介して埋め込みを生成して保存します。

  3. 事前計算された埋め込みではなく、クエリ テキストで $vectorSearch クエリを発行します。

    mongot クエリテキストの埋め込みを生成します。

自己管理型 mongot 自動埋め込みは、Voyage AI 埋め込みモデルと統合されています。

モデル
説明

voyage-4

推奨。一般的なテキスト検索のバランスの取れたパフォーマンス。

voyage-4-lite

大規模でコストに敏感なアプリケーション。

voyage-4-large

複雑なセマンティック関係の最大精度。

voyage-code-3

コード検索と技術ドキュメントに特殊化されています。

埋め込み生成にはコストが発生します。詳しくは、自動埋め込みの請求を管理する を参照してください。

Automated 埋め込みを使用するには、以下の前提条件を満たしている必要があります:

  • mongot 自己管理型配置(Community tarballまたはコンテナ、ローカル開発、およびKubernetes Operatorを通じたエンタープライズ版)における1.70.1以降。

  • MongoDB 8.3 or later for standalone and Kubernetes Operator-managed deployments. To learn more, see Compatibility and Requirements for mongot.

  • Two Voyage AI API keys.

    インデックス時の埋め込み生成用とクエリ時間用の 2 つの別々のキーを使用します。別々のキーにより、クエリワークロードがインデックスワークロードから分離され、独立したレート制限の計算が可能になります。詳細については、「レート制限」を参照してください。

  • mongot から埋め込みエンドポイントとなる接続されたデバイスへのアウトバウンド ネットワーク アクセス。

    The default endpoint is https://ai.mongodb.com/v1/embeddings. This endpoint proxies Voyage AI with MongoDB-managed billing, for keys generated using the Atlas UI. You can also use https://api.voyageai.com/v1/embeddings for direct Voyage AI access if you generated the API key directly from Voyage AI.

1

You can generate Voyage AI API keys through either of the following methods:

  • (Recommended) Through your Atlas account. Atlas provides API key management with built-in rate-limit configuration. The keys are not tied to an Atlas cluster. To learn more, see Manage API Keys.

  • Through Voyage AI directly at voyageai.com.

例えば mongot-prod-index と mongot-prod-query のように、2 つのキーを生成し、分かりやすい名前を付けます。キーを安全な秘密ストレージに保存します。

2

構成は配置パスによって異なります。配置のタブを選択します。

自動埋め込みには preview ローカル開発イメージ (mongodb/mongodb-atlas-local:preview) が必要です。preview イメージには、自動型埋め込み統合を含む mongot の Community ビルドがバンドルされています。

If you launch the container directly with docker run, pass the Voyage AI API key with the VOYAGE_API_KEY environment variable and use the :preview tag:

docker run \
-e VOYAGE_API_KEY=<your-voyage-api-key> \
-p 27017:27017 \
mongodb/mongodb-atlas-local:preview

Atlas を介さずに Voyage AI を通じて Voyage AI キーを直接発行した場合は、デフォルトのエンドポイントを上書きします。

docker run \
-e VOYAGE_API_KEY=<your-voyage-api-key> \
-e EMBEDDING_PROVIDER_ENDPOINT=https://api.voyageai.com/v1/embeddings \
-p 27017:27017 \
mongodb/mongodb-atlas-local:preview

注意

Local Development accepts only a single Voyage AI API key and uses it for both index-time and query-time embedding generation. A single key is acceptable for development. For production deployments that need separate index-time and query-time keys, use the Community Edition or Kubernetes Operator deployment path.

embedding ブロックをmongot 構成ファイルに追加します。

embedding:
queryKeyFile: /etc/mongot/secrets/voyage-api-query-key
indexingKeyFile: /etc/mongot/secrets/voyage-api-indexing-key
providerEndpoint: https://ai.mongodb.com/v1/embeddings

Each key file contains the API key as its only content. Set the file permissions to 0600 and set the file owner to the user that runs the mongot process.

3

After you configure mongot with your Voyage AI API keys, define a MongoDB Vector Search index that uses the autoEmbed field type. The index definition specifies which text field mongot embeds and which model it uses. It also specifies the indexing method, quantization, and other parameters.

db.movies.createSearchIndex(
"movie-semantic-index",
"vectorSearch",
{
"fields": [
{
"type": "autoEmbed",
"modality": "text",
"path": "plot",
"model": "voyage-4",
"numDimensions": 1024,
"similarity": "cosine",
"indexingMethod": "hnsw",
"hnswOptions": {
"maxEdges": 16,
"numEdgeCandidates": 50
},
"quantization": "scalar"
},
{
"type": "filter",
"path": "genre"
}
]
}
)

次の表では、autoEmbed インデックス定義フィールドを説明しています。

フィールド
目的

type: "autoEmbed"

フィールドを自動埋め込みの対象としてマークします。

modality: "text"

データ モダリティ。text は、サポートされている唯一のモダリティです。

path

埋め込むコレクションのフィールド。

model

The Voyage AI model name. The model must be one that your API key has access to.

numDimensions

埋め込みベクトルの次元数。モデルによって、サポートされる次元が決定されます。

similarity

ベクトル検索に使用する類似度関数。サポートされている関数は cosine、dotProduct、euclidean です。

indexingMethod

使用するインデックスの作成方法。サポートされている方法は flat と hnsw です。

hnswOptions

(Optional) The HNSW index options. Required if indexingMethod is hnsw.

quantization

(任意)使用する量子化の種類。サポートされているタイプはfloat、scalar、binary、binaryNoRescoreです。

同じインデックスで autoEmbed フィールドと filter フィールドを混合することができます。同じパス上の生のベクトルフィールドとautoEmbedを混合することはできません。フィールドごとに1つのアプローチを選択します。

4

事前計算された埋め込みではなく、クエリテキストを提出します。mongotがクエリ埋め込みを生成します。

db.movies.aggregate([
{
"$vectorSearch": {
"index": "movie-semantic-index",
"path": "plot",
"query": "a heist gone wrong in a rainy city",
"model": "voyage-4",
"numCandidates": 100,
"limit": 10
}
},
{
"$project": {
"_id": 0,
"title": 1,
"score": { $meta: "vectorSearchScore" }
}
}
])

詳しくは、 「ベクトル検索 近似最近傍探索および厳密最近傍探索クエリを実行する」を参照してください。

mongot クラスター上の専用の内部データベースに埋め込みを持続します。mongot は、ソース コレクションに埋め込みを保存しません。mongot は、ソース テキストから埋め込みを再生成できますが、埋め込み生成には料金が発生します。

埋め込みモデル、出力ディメンション、または量子化の変更は、影響を受けるインデックスの完全な再埋め込みをtriggerします。この場合、埋め込み生成に対する課金が発生します。「mongotが埋め込みを再生成するとき。」を参照してください。

詳細については、「生成された埋め込みコレクション」を参照してください。

mongot 次のいずれかが発生した場合、autoEmbed フィールドの埋め込みを再生成します。

  • ドキュメントを挿入します。

  • ドキュメントの埋め込みフィールドを変更します。mongot は、変更ストリームを介して変更を検出します。

  • インデックス定義で埋め込みモデルを変更します。

  • 埋め込み出力の次元またはデータ型を変更します。

  • テキストフィールドパスを変更します。

最後の3つの項目のいずれかを変更すると、mongotはインデックス全体をゼロから再構築します。再構築は大規模なコレクションにとっては高コストになる可能性があります。モデルの変更は慎重に計画します。

MongoDB では、モデル固有の料金で 100 万トークンごとに課金されます。インデックスの作成コストは、コレクション全体のインデックスフィールドの合計テキスト量に比例します。クエリコストは、クエリテキストの量に比例します。

If you use the Voyage AI API key that you created using your Atlas account, you can view API key usage and rate limits in the Atlas UI. To learn more, see Manage Billing for the Embedding and Reranking API. If you use keys created directly from Voyage AI, you must monitor your usage and rate limits in the Voyage AI dashboard.

Voyage AI 側のレート制限エラーは、mongot ログと、影響を受けたインデックスの失敗したドキュメント指示子として表示されます。これらのエラーによってインデックスが無効になることはありませんが、新しいドキュメントのインデックスの作成が遅延する可能性があります。

シンボリック
考えられる原因
アクション

インデックスは数分間を過ぎても PENDING ステータスのままです。

mongot cannot reach the embedding endpoint, or the API key is invalid.

埋め込みエンドポイントに対する HTTP エラーについては、mongot ログを確認してください。

インデックスの遅延が断続的に発生します。

Voyage AI 側のレート制限。

レート制限を引き上げるか、インデックスの作成時の埋め込みの負荷を軽減します。

インデックスに対するクエリは、埋め込みに関するエラーを返します。

The query API key is invalid or expired.

queryKeyFile の内容を確認します。

インデックスに対するすべてのクエリは空の結果を返します。

インデックスが再構築され、コーパスの再埋め込みが続行している可能性があります。

db.collection.getSearchIndexes() を使用してインデックスのステータスを確認します。

自動埋め込みには次の制限が適用されます。

  • プレビューステータス。自動埋め込みが一般提供される前に、構成の形状、サポートされるモデル、およびデフォルトのエンドポイントが変更される可能性があります。

  • フィールドごとに 1 つの埋め込みモデル。混合モデル インデックスはサポートされていません。

  • 埋め込みモデルのフェイルオーバーはありません。Voyage AI エンドポイントに接続できない場合、新しいドキュメントのインデックスの作成が停滞します。

  • クロスプラットフォームの概念的な概要については、自動埋め込みの概要を参照してください。

  • 完全な mongot 構成の参照については、mongot の構成を参照してください。