Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

Configure mongot para la incrustación automatizada de MongoDB Búsqueda vectorial

Importante

La incrustación automatizada está en vista previa para mongot autogestionados. La funcionalidad y la documentación correspondiente pueden cambiar en cualquier momento durante el período de vista previa. Para obtener más información, consulte Funcionalidades de la vista previa.

Este tutorial describe cómo configurar la incrustación automatizada en una implementación mongot autogestionada. Con la incrustación automatizada, mongot genera incrustación de vectores para tus datos de texto en el momento del índice y para el texto de la query en el momento de la query. No tienes que mantener un pipeline de incrustación separado en tu aplicación.

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.

Sin incrustación automatizada, tu aplicación debe:

  1. Generar una incrustación para cada documento que inserte o actualice.

  2. Almacene esa incrustación junto con el documento en su colección.

  3. Genere una incrustación para cada query, utilizando el mismo modelo, en el momento de la query.

  4. Envía la query incrustación a $vectorSearch.

Con la incrustación automatizada, mongot gestiona los pasos 1, 2 y 3. Su aplicación:

  1. Configura un índice de MongoDB búsqueda vectorial con el tipo de campo autoEmbed para el campo de texto.

  2. Inserta y actualiza documentos normalmente.

    mongot lee el campo de texto, genera la incrustación a través del modelo de incrustación configurado y la almacena.

  3. Emite $vectorSearch queries con el texto de la query, no una incrustación precalculada.

    mongot genera la incrustación para el texto de la query.

La incrustación automatizada de mongot autogestionada se integra con los modelos de incrustación de Voyage AI.

Modelo
Descripción

voyage-4

Recomendado. Rendimiento equilibrado para la búsqueda de texto general.

voyage-4-lite

Aplicaciones de alto volumen y sensibles al costo.

voyage-4-large

Máxima precisión para relaciones semánticas complejas.

voyage-code-3

Especializado en búsqueda de código y documentación técnica.

Usted incurre en costos por la generación de incrustaciones. Para obtener más información, consulte Gestionar la facturación de la incrustación automatizada.

Debes cumplir con los siguientes requisitos previos para utilizar la incrustación automatizada:

  • mongot 1.70.1 o posterior en una implementación autogestionada (tarball o contenedor de la Community, desarrollo local y Enterprise Edition a través del operador de Kubernetes).

  • MongoDB 8.3 o posterior para implementaciones autónomos y gestionadas por el operador de Kubernetes. Para obtener más información, consulte Compatibilidad y requisitos mongot para.

  • Two Voyage AI API keys.

    Utilice dos claves separadas, una para la generación de incrustaciones en tiempo de índice y otra para el tiempo de query. Las claves separadas aíslan la carga de trabajo de la query de la carga de trabajo de indexación y permiten una contabilidad independiente del límite de cuota. Para obtener más información, consulte Límites de cuota.

  • Acceso a la red saliente desde mongot al punto final de incrustación.

    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.

Genere dos claves y nómbrelas claramente, por ejemplo, mongot-prod-index y mongot-prod-query. Almacene las claves en un almacenamiento secreto seguro.

2

La configuración depende de la ruta de implementación. Seleccione la pestaña de su implementación.

La incrustación automatizada requiere la imagen de desarrollo local preview (mongodb/mongodb-atlas-local:preview). La imagen preview agrupa la compilación de la Community de mongot, que incluye la integración de incrustación automatizada.

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

Si emitió su clave de Voyage AI directamente a través de Voyage AI en lugar de Atlas, anule el punto final por defecto:

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

Nota

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.

Agregue el bloque embedding a su archivo de configuración 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"
}
]
}
)

La siguiente tabla describe los campos de definición de índice autoEmbed:

Campo
Propósito

type: "autoEmbed"

Marca el campo para la incrustación automática.

modality: "text"

La modalidad de datos. text es la única modalidad compatible.

path

El campo de su colección para incrustar.

model

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

numDimensions

El número de dimensiones para el vector de incrustación. El modelo determina las dimensiones admitidas.

similarity

La función de similitud que se utilizará para la búsqueda vectorial. Las funciones admitidas son cosine, dotProduct y euclidean.

indexingMethod

El método de indexación que se utilizará. Los métodos admitidos son flat y hnsw.

hnswOptions

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

quantization

(Opcional) El tipo de cuantificación que se debe usar. Los tipos admitidos son float, scalar, binary y binaryNoRescore.

Puede mezclar campos autoEmbed con campos filter en el mismo índice. No puede mezclar autoEmbed con campos vectoriales sin procesar en la misma ruta. Elija un enfoque por campo.

4

Envíe texto de query, no una incrustación precalculada. mongot genera la incrustación de la query por usted.

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" }
}
}
])

Para obtener más información, consulta Ejecutar query de búsqueda vectorial ANN y ENN.

mongot persiste las incrustaciones en una base de datos interna dedicada en el clúster. mongot no almacena incrustaciones en su colección de origen. mongot puede regenerar incrustaciones a partir del texto de origen y se le cobrará por la generación de incrustaciones.

Los cambios en el modelo de incrustación, las dimensiones de salida o la cuantificación activan una reincrustación completa del índice afectado, por lo que se le cobrará por la generación de incrustaciones. Consulte Cuándo mongot regenera las incrustaciones.

Para obtener más información, consulte colección de incrustaciones generadas.

mongot regenera las incrustaciones para un campo autoEmbed cuando se produce cualquiera de los siguientes eventos:

  • Inserta un documento.

  • Cambia el campo incrustado en un documento. mongot detecta el cambio a través de change streams.

  • Cambia el modelo de incrustación en la definición del índice.

  • Cambia la dimensión de salida de incrustación o el tipo de dato.

  • Cambia la ruta de campo.

Si cambia alguno de los tres últimos elementos, mongot reconstruye todo el índice desde cero. La reconstrucción puede ser costosa para colecciones grandes. Planifique los cambios del modelo deliberadamente.

MongoDB cobra por millón de tokens a tarifas específicas del modelo. El costo de indexación es proporcional al volumen total de texto del campo indexado en toda la colección. El costo de la query es proporcional al volumen de texto de la query.

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.

Los errores de límite de velocidad del lado de Voyage AI aparecen en los registros de mongot y como indicadores de documentos fallidos en el índice afectado. Estos errores no deshabilitan el índice, pero pueden retrasar la indexación de nuevos documentos.

Síntoma
Causa probable
Acción

El índice permanece en estado PENDING más allá de unos pocos minutos.

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

Compruebe los registros de mongot en busca de errores HTTP en el punto final de incrustación.

Los retrasos de indexación aparecen de forma intermitente.

Limitación de velocidad del lado de Voyage IA.

Aumente su límite de velocidad o reduzca la carga de incrustación en tiempo de indexación.

Las queries contra el índice devuelven un error que menciona las incrustaciones.

The query API key is invalid or expired.

Verifique el contenido de queryKeyFile.

Todas las query contra el índice devuelven resultados vacíos.

Es posible que el índice se haya reconstruido y aún esté volviendo a incrustar el corpus.

Compruebe el estado del índice con db.collection.getSearchIndexes().

Se aplican las siguientes limitaciones a la incrustación automatizada:

  • Estado de vista previa. La forma de configuración, los modelos admitidos y los endpoints por defecto pueden cambiar antes de que la incrustación automatizada esté disponible de forma general.

  • Un modelo de incrustación por campo. No se admiten índices de modelos mixtos.

  • No hay conmutación por error del modelo de incrustación. Si el punto de conexión de Voyage AI no es accesible, la indexación de nuevos documentos se detiene.