Cómo generar automáticamente incrustaciones vectoriales para datos de texto en su colección y consultas
Puedes implementar MongoDB Vector Search y habilitar una búsqueda semántica inteligente potenciada por IA en tus datos de texto mediante la incrustación automatizada en los índices de MongoDB Vector Search. Las capacidades automatizadas de Embedded de MongoDB transforman el proceso tradicionalmente complejo de implementación de búsqueda vectorial en una solución de un solo paso. En lugar de gestionar infraestructura de embedding por separado, elección de modelos y código de integración, ahora puedes implementar una búsqueda semántica mediante la simple configuración de campos.
Cuando configuras los índices de MongoDB Vector Search, este genera automáticamente incrustaciones vectoriales para los datos de texto de tu colección, utilizando tu selección de un modelo de incrustación de vanguardia de Voyage AI, mantiene las incrustaciones sincronizadas a medida que cambian tus datos y también soporta el uso de consultas de texto en lenguaje natural. Estos embeddings vectoriales capturan relaciones significativas en tus datos y permiten búsquedas basadas en la intención en lugar de palabras clave.
Overview
Con un simple cambio de configuración, puedes habilitar la búsqueda semántica, RAG, y memoria para agentes de IA, sin escribir código de integración, sin gestionar la infraestructura de modelos ni manipular pipelines de vectores. Es decir, cuando se implementa la Edición Comunitaria de MongoDB con el proceso MongoDB Search y búsqueda vectorial, mongot, puede proporcionar las claves API de Voyage AI para usarlas para generar incrustaciones, idealmente una para operaciones de indexación y otra para operaciones de consulta de diferentes proyectos.
Después de la implementación:
Desde tu colección, elige el campo de texto para el que deseas habilitar la búsqueda semántica.
De la lista de modelos de inserción disponibles, elija un modelo de inserción.
En tu definición de índice de MongoDB Vector Search, configura Embedding Automatizado usando el tipo
autoEmbed.
Para obtener más información sobre cómo configurar el índice de búsqueda vectorial de MongoDB para la incrustación automatizada, consulte Indexar un campo de texto.
MongoDB Vector Search genera automáticamente incrustaciones para documentos existentes y nuevos que inserte o actualice mediante el uso de Las claves API que especificó al inicializar MongoDB Community Edition.
Nota
Las incrustaciones generadas se almacenan en una colección de sistema separada en el mismo clúster.
Para consultar, utiliza la opción query.text en la etapa de pipeline $vectorSearch. MongoDB Vector Search genera incrustaciones para la text query utilizando el mismo modelo de incrustación en la definición del índice. Puedes especificar un modelo de embedding diferente utilizando la opción model en la etapa de pipeline $vectorSearch, pero el modelo de embedding especificado debe ser compatible con el modelo de embedding utilizado en el momento del índice. MongoDB Vector Search utiliza la API key de query que has proporcionado durante la inicialización de MongoDB Community para generar las embeddings en tiempo de query. Para obtener más información, consulta Ejecute una Text query.
Usted incurrirá en cargos por generar incrustaciones utilizando las claves de la API. Para obtener más información, consulte Costos.
Para automatizar incorporaciones y ejecutar una consulta de muestra,consulte Comenzar.
Voyage IA API Claves
Si bien puede usar una única clave de API para generar embeddings tanto en el momento de indexación como en el momento de query, le recomendamos que use claves de API separadas para evitar que las operaciones de query afecten negativamente las operaciones de indexación.
Puedes generar claves API de las siguientes formas:
(Recomendado) Utilizar tu cuenta de Atlas, lo que te permite gestionar tu clave API del modelo de embeddings Voyage IA desde la Interfaz de Usuario de Atlas.
Para obtener más información sobre cómo generar y administrar claves API, incluida la configuración de los límites de velocidad (que es una combinación de TPM y RPM) y el monitoreo del uso de claves API, consulte Claves API de modelo.
Para obtener más información sobre la gestión de las claves API creadas en Voyage IA, consulta Clave API.
Después de crear las claves, debes especificar las claves que deseas utilizar para la incrustación automatizada al configurar mongot durante la implementación con MongoDB Community Edition. MongoDB Vector Search utiliza la clave de la API de Voyage IA que proporcionaste durante la implementación de mongot para generar automáticamente incrustaciones para tus datos en el índice y para tu texto de query en tiempo de query.
Modelos de integración compatibles
MongoDB Vector Search se integra con los modelos de integración de última generación de Voyage AI, cada uno optimizado para un caso de uso específico:
Modelo de incrustación | Descripción |
|---|---|
| Optimizados para aplicaciones de alto volumen y sensibles al costo. |
| (Recomendado) Rendimiento equilibrado para búsqueda de texto general. |
| Máxima precisión para relaciones semánticas complejas. |
| Especializado en búsqueda de código y documentación técnica. |
costo
El precio del modelo de incrustación se basa en el uso, y los cargos se facturan a la cuenta vinculada a la clave API utilizada para el acceso. El precio se basa en la cantidad de tokens en el campo de texto y las consultas.
Nota
En el contexto de los modelos de embebido y los LLM, los tokens son las unidades fundamentales de texto, como palabras, subpalabras o caracteres, que el modelo procesa para crear embebidos o generar texto. Los tokens son la forma en que se le factura por el uso de modelos de incrustación y LLMs.
Si usa la clave API que creó con su cuenta de Atlas, puede supervisar su uso desde la interfaz de usuario de Atlas. Para obtener más información, consulte Facturación.
Si generaste la clave API directamente desde Voyage IA, consulta Precios para aprender más sobre el cobro por solicitudes al endpoint del servicio de embedding.
Limitaciones
Mientras esté en vista previa, la funcionalidad de Integración Automática aún no está disponible para los siguientes tipos de implementación:
Cúmulos del Atlas
implementaciones locales de Atlas utilizando Atlas CLI
Edición de MongoDB Enterprise
La funcionalidad solo está disponible para MongoDB Search y MongoDB Vector Search implementaciones usando Docker, tarball o un gestor de paquetes y para implementaciones que utilizan los controladores de MongoDB para el operador de Kubernetes con MongoDB Community Edition 8.2 o posterior.
Empezar
Utilizar el siguiente tutorial para aprender a configurar MongoDB Vector Search para generar automáticamente incrustaciones vectoriales. En concreto, llevas a cabo las siguientes acciones:
Indexe el campo o los campos de su colección que contienen datos de texto para los que desea generar incrustaciones automáticamente en el momento de la indexación.
Ejecuta una consulta de texto en los campos indexados usando embeddings generados automáticamente en el momento de la query.
Este tutorial utiliza la muestra_airbnb.listingsAndReviews namespace para demostrar cómo índice un campo de texto, summary, en la colección para generar automáticamente embeddings en el momento del índice y ejecutar una query de texto en el campo indexado, summary, utilizando los embeddings generados en el momento de la query.
Requisitos previos
Para completar este tutorial, debes tener lo siguiente:
Implementación autogestionada de MongoDB v8.2 o posterior Community Edition con MongoDB Search y MongoDB Vector Search
Para obtener más información, consulte la Guía de inicio rápido para la implementación autogestionada.
Clave o claves válidas de Voyage IA API
Para obtener más información, consulta Claves de API de Voyage IA.
Indexar un campo de texto
La definición de índice que creas en este tutorial indexa los siguientes campos en la colección sample_airbnb.listingsAndReviews:
summarycampo como el tipoautoEmbedpara generar automáticamente incrustaciones para los datos de texto en el campo utilizando el modelo de incrustaciónvoyage-4.address.countrycampo como tipofilterpara prefiltrar los datos para la búsqueda semántica utilizando el valor de cadena en el campo.bedroomcampo como el tipofilterpara prefiltrar los datos en la búsqueda semántica utilizando el valor numérico en el campo.
Para crear este índice:
Ejecutar una consulta de texto
La query en este tutorial realiza lo siguiente:
Se ejecuta contra el campo indexado
summaryen la colecciónsample_airbnb.listingsAndReviews.Filtra previamente las propiedades utilizando los siguientes criterios:
Propiedades que tengan
3o másbedrooms.Propiedades en el
countryllamadoUnited States.
Realiza una búsqueda semántica de propiedades
close to amusement parksutilizando las incrustaciones generadas automáticamente con el modelo de incrustaciónvoyage-4. La consulta:Considera hasta
100vecinos más cercanos.Limita los resultados a
10documentos.
Para ejecutar esta consulta:
Solucionar problemas
Comprobar el estado del índice
Para comprobar el estado de su índice de MongoDB Vector Search, ejecute el siguiente comando después de reemplazar los siguientes marcadores de posición:
| Su cadena de conexión al clúster. |
| El nombre de la base de datos de la colección. |
| El nombre de la colección para la que creó el índice. |
mongosh <connection-string>/<database-name> --eval ' db.<collection-name>.getSearchIndexes().forEach(printjson); '
El comando anterior se conecta a su clúster y, para la colección especificada en la base de datos especificada, itera a través de cada índice de la colección y devuelve la definición del índice en formato JSON.
Ejemplo
Ejemplo de comando para recuperar índices en la colección de películas
mongosh "mongodb://localhost:27017/sample_mflix" --eval ' db.movies.getSearchIndexes().forEach(printjson); '
{ id: '698d005f8bf34e5e6624d086', name: 'vector_index', type: 'vectorSearch', status: 'READY', numDocs: 21349, latestDefinition: { type: 'vectorSearch', indexID: ObjectId('698d005f8bf34e5e6624d086'), name: 'vector_index', database: 'sample_mflix', lastObservedCollectionName: 'movies', collectionUUID: UUID('3920f806-ec08-46ae-a73e-8e1e191e85f5'), numPartitions: 1, fields: [ { type: 'autoEmbed', path: 'fullplot', model: 'voyage-4', modality: 'text' } ], definitionVersion: 0, definitionVersionCreatedAt: '2026-02-11T22:19:11Z', indexFeatureVersion: 4 } }
Verificar que se generaron las incrustaciones
Para verificar que MongoDB Vector Search haya generado incrustaciones para sus datos de texto indexados, ejecute el siguiente comando después de reemplazar el marcador de posición <connection-string> con su cadena de conexión del clúster:
mongosh <connection-string> --eval ' print("Embeddings: " + db.getSiblingDB("__mdb_internal_search") .getCollectionNames() .filter(c => c.match(/^[0-9a-f]{24}$/)) .map(c => db.getSiblingDB("__mdb_internal_search").getCollection(c).countDocuments()) .reduce((a,b) => a+b, 0) ); '
El comando anterior se conecta a su clúster y devuelve el número total de incrustaciones vectoriales almacenadas en todas las colecciones de su implementación.
Ejemplo
Ejemplo de comando para recuperar el recuento de incrustaciones
mongosh "mongodb://localhost:27017/" --eval ' print("Embeddings: " + db.getSiblingDB("__mdb_internal_search") .getCollectionNames() .filter(c => c.match(/^[0-9a-f]{24}$/)) .map(c => db.getSiblingDB("__mdb_internal_search").getCollection(c).countDocuments()) .reduce((a,b) => a+b, 0) ); '
Embeddings: 21349