Nota
La incrustación automatizada está en versión preliminar para mongot en el clúster de Kubernetes. 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.
Esta página describe cómo configurar la incrustación automatizada en la implementación de Kubernetes de la búsqueda vectorial. La funcionalidad de incrustación automatizada en la búsqueda vectorial genera incrustación vectorial para los datos de texto en el momento del índice y para el texto de la query en el momento de la query. Por lo tanto, no es necesario mantener un pipeline de incrustación independiente en la aplicación.
Este tutorial es para desarrolladores que están creando funcionalidades de búsqueda semántica o RAG y desean mongot gestionar incrustaciones.
Qué hace la incrustación automatizada
Sin incrustación automatizada, tu aplicación debe:
Generar una incrustación para cada documento que inserte o actualice.
Almacene esa incrustación junto con el documento en su colección.
Genere una incrustación para cada query, utilizando el mismo modelo, en el momento de la query.
Envía la query incrustación a
$vectorSearch.
Con la incrustación automatizada, el proceso mongot gestiona los pasos 1, 2 y 3. Su aplicación:
Configura un índice de búsqueda vectorial con el tipo de campo
autoEmbedpara el campo de texto.Inserta y actualiza documentos normalmente. Luego,
mongotlee el campo de texto, genera la incrustación a través del modelo de incrustación configurado y la almacena.Emite
$vectorSearchquery con el texto de la query, no una incrustación precalculada. Luego,mongotgenera la incrustación para el texto de la query.
Proveedores de incrustación compatibles
La incrustación automatizada de mongot autogestionada se integra con los modelos de incrustación de Voyage AI.
Modelo | Descripción |
|---|---|
| Aplicaciones de alto volumen y sensibles al costo. |
| Recomendado. Rendimiento equilibrado para la 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. |
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.
Requisitos previos
mongot1.70.1 o posterior en su implementación de Kubernetes.MongoDB 8.2 o posterior.
Dos claves de Voyage AI API.
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
mongotal punto final de incrustación.El endpoint por defecto es
https://ai.mongodb.com/v1/embeddings, que utiliza Voyage AI con facturación gestionada por MongoDB para las claves generadas con la interfaz de usuario de Atlas. También puede utilizarhttps://api.voyageai.com/v1/embeddingspara el acceso directo a Voyage AI si generó la clave API directamente desde Voyage AI.
Generar Voyage AI API Keys
Puede generar claves de API de Voyage AI a través de cualquiera de las siguientes rutas:
(Recomendado) A través de tu cuenta de Atlas. Atlas ofrece gestión de claves de API con configuración de límites de velocidad mediante funcionalidad incorporada. Las claves no están vinculadas a un clúster de Atlas. Para obtener más información, consulta Gestionar claves de API.
A través de Voyage AI directamente en voyageai.com.
Genere dos claves y nómbrelas claramente, por ejemplo, mongot-prod-index y mongot-prod-query. Almacene las claves en almacenamiento secreto seguro.
Configure mongot para la incrustación automatizada
Cree un secreto de Kubernetes con ambas claves:
kubectl create secret generic voyage-api-keys \ --from-literal=indexing-key=<your-index-key> \ --from-literal=query-key=<your-query-key> \ --namespace=<your-namespace>
Haga referencia a él desde el recurso personalizado MongoDBSearch:
apiVersion: mongodb.com/v1 kind: MongoDBSearch metadata: name: mdbs spec: # ... autoEmbedding: embeddingModelAPIKeySecret: name: voyage-api-keys
Opcionalmente, establezca spec.autoEmbedding.providerEndpoint para anular el punto final de incrustación que utiliza mongot. Cuando omite este campo, mongot utiliza su punto final por defecto incorporada, https://ai.mongodb.com/v1/embeddings. Para obtener más información, consulte Especificación de recursos de MongoDBSearch.
Crear un índice de incrustación automatizado
Después de configurar mongot con sus claves de API de Voyage AI, defina un índice de búsqueda vectorial que utilice el tipo de campo autoEmbed. La definición del índice especifica qué campo de texto mongot incrusta, qué modelo utiliza, el método de indexación, la cuantificación y otros parámetros. Para obtener más información sobre la definición del índice autoEmbed, consulte Campos de índice de búsqueda vectorial de MongoDB.
kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" mongodb-tools-pod -- \ mongosh --quiet "${MDB_CONNECTION_STRING}" \ --eval "use sample_mflix" \ --eval 'db.movies.createSearchIndex("vector_auto_embed_index", "vectorSearch", { "fields": [ { "type": "autoEmbed", "modality": "text", "path": "plot", "model": "'"${EMBEDDING_MODEL}"'", "numDimensions": 1024, "similarity": "cosine", "quantization": "scalar", "indexingMethod": "hnsw", "hnswOptions": { "maxEdges": 16, "numEdgeCandidates": 200 } } ] });'
La siguiente tabla describe los campos de definición de índice autoEmbed:
Campo | Propósito |
|---|---|
| Marca el campo para la incrustación automática. |
| La modalidad de datos. |
| El campo de su colección para incrustar. |
| El nombre del modelo de Voyage AI. El modelo debe ser uno al que su clave API tenga acceso. |
| El número de dimensiones para el vector de incrustación. El modelo determina las dimensiones admitidas. |
| La función de similitud que se utilizará para la búsqueda vectorial. Las funciones admitidas son |
| El método de indexación que se utilizará. Los métodos admitidos son |
| (Opcional) Las opciones de índice HNSW. Obligatorio si |
| (Opcional) El tipo de cuantificación que se debe usar. Los tipos admitidos son |
Puede mezclar campos autoEmbed con campos filter en el mismo índice. No puede mezclar autoEmbed con campos vectoriales sin procesar en la misma ruta.
Ejecutar una query de incrustación automatizada
Envíe texto de query, no una incrustación precalculada. mongot genera la incrustación de la query por usted.
kubectl exec --context "${K8S_CTX}" -n "${MDB_NS}" mongodb-tools-pod -- \ mongosh --quiet "${MDB_CONNECTION_STRING}" \ --eval "use sample_mflix" \ --eval 'db.movies.aggregate([ { $vectorSearch: { index: "vector_auto_embed_index", path: "plot", query: "spy thriller", numCandidates: 150, limit: 10 } }, { $project: { _id: 0, plot: 1, title: 1, score: { $meta: "vectorSearchScore" } } }]);'
Para obtener más información, consulta Ejecutar query de búsqueda vectorial ANN y ENN.
Almacenamiento de incrustaciones
mongot persiste las incrustaciones en una base de datos interna dedicada en el clúster de Kubernetes. 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. Usted incurre en cargos por la regeneración. Para obtener más información, consulte Cuándo mongot regenera las incrustaciones.
Para obtener más información, consulte colección de incrustaciones generadas.
Cuando mongot regenera incrustaciones
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.
mongotdetecta 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.
Costo y limitación de tasa
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.
Si utiliza la clave API de Voyage AI que creó con su cuenta Atlas, puede ver el uso de la clave API y los límites de velocidad en la interfaz de usuario de Atlas. Para obtener más información, consulte Gestionar la facturación de la Embedding and Reranking API. Si utiliza claves creadas directamente desde Voyage AI, debe supervisar su uso y los límites de velocidad en el tablero de Voyage AI.
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.
Modos de error
Síntoma | Causa probable |
|---|---|
El índice permanece en estado |
|
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. | La clave de la API de query no es válida o ha caducado. Verifique el contenido de |
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. Verifique el estado del índice con |
Limitaciones
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.