Nota
La incrustación automatizada está en versión mongot preliminar para en el clúster de Kubernetes. La función y su documentación correspondiente pueden cambiar en cualquier momento durante el período de vista previa. Para obtener más información, consulte Funciones en vista previa.
Esta página describe cómo configurar la incrustación automatizada en su implementación de Vector Search en Kubernetes. La funcionalidad de incrustación automatizada en Vector Search genera incrustaciones vectoriales para sus datos de texto en el momento de la indexación y para el texto de consulta en el momento de la consulta. Por lo tanto, no es necesario mantener una canalización de incrustación independiente en su aplicación.
Este tutorial está dirigido a desarrolladores que están creando búsquedas semánticas o funciones RAG y desean mongot administrar incrustaciones.
¿Qué hace la incrustación automatizada?
Sin la integración automatizada, su aplicación debe:
Genera una incrustación para cada documento que insertes o actualices.
Guarda ese elemento incrustado junto con el documento en tu colección.
Genera una representación vectorial para cada consulta, utilizando el mismo modelo, en el momento de la consulta.
Envíe la consulta incrustada 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.$vectorSearchrealiza consultas con el texto de la consulta, no con una incrustación precalculada. Luego,mongotgenera la incrustación para el texto de la consulta.
Proveedores de integración compatibles
La incrustación automatizada autogestionada mongot se integra con los modelos de incrustación de Voyage AI.
Modelo | Descripción |
|---|---|
| Aplicaciones de alto volumen y sensibles al coste. |
| Recomendado. Rendimiento equilibrado para búsquedas de texto generales. |
| Máxima precisión para relaciones semánticas complejas. |
| Especializado en búsqueda de código y documentación técnica. |
La generación de la inserción de contenido genera costos. Para obtener más información, consulte la sección "Administrar la facturación de la inserción automatizada".
Requisitos previos
mongot1.70.1 o posterior en su implementación de Kubernetes.MongoDB 8.2 o posterior.
Dos claves API de Voyage AI.
Utilice dos claves distintas: una para la generación de incrustaciones en tiempo de indexación y otra para tiempo de consulta. Las claves independientes aíslan la carga de trabajo de las consultas de la de la indexación y permiten una contabilidad de límites de velocidad independiente. Para obtener más información, consulte Límites de velocidad.
Acceso de red saliente desde
mongotal punto final de incrustación.El punto final predeterminado
https://ai.mongodb.com/v1/embeddingses, que actúa como proxy para Voyage AI con facturación gestionada por MongoDB, para las claves generadas mediante la interfaz de usuario de Atlas. También puede usarhttps://api.voyageai.com/v1/embeddingspara acceder directamente a Voyage AI si generó la clave API directamente desde Voyage AI.
Generar claves API de Voyage AI
Puedes generar claves 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 API con configuración de límite de velocidad integrada. Las claves no están vinculadas a un clúster de Atlas. Para obtener más información, consulta Gestionar claves API.
A través de Voyage AI directamente en voyageai.com.
Genera dos claves y nómbralas claramente, por ejemplo, mongot-prod-index y.mongot-prod-query Almacena las claves en un sistema de almacenamiento seguro de secretos.
Configurar mongot para la incrustación automatizada
Crea 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>
Referencia desde el recurso personalizado MongoDBSearch:
apiVersion: mongodb.com/v1 kind: MongoDBSearch metadata: name: mdbs spec: # ... autoEmbedding: embeddingModelAPIKeySecret: name: voyage-api-keys
Opcionalmente, configure spec.autoEmbedding.providerEndpoint para anular el punto final de incrustación que mongot utiliza. Si omite este campo, mongot utilizará su punto final predeterminadohttps://ai.mongodb.com/v1/embeddings integrado,. Para obtener más información, consulte la 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 autoEmbed tipo de campo. La definición del índice especifica qué campo de texto mongot incrusta, qué modelo utiliza, el método de indexación, la cuantización y otros parámetros. Para obtener más información sobre la autoEmbed definición del índice, 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 del índice autoEmbed:
Campo | Propósito |
|---|---|
| Marca el campo para la incrustación automática. |
| La modalidad de datos. |
| El campo de tu colección que deseas insertar. |
| El nombre del modelo de Voyage AI. El modelo debe ser uno al que tenga acceso su clave API. |
| El número de dimensiones del vector de incrustación. El modelo determina las dimensiones admitidas. |
| Función de similitud que se utilizará para la búsqueda vectorial. Las funciones admitidas son |
| El método de indexación a utilizar. Los métodos admitidos son |
| (Opcional) Las opciones del índice HNSW. Obligatorio si |
| (Opcional) El tipo de cuantización a utilizar. Los tipos admitidos son |
Puedes mezclar campos autoEmbed con campos filter en el mismo índice. No puedes mezclar campos autoEmbed con campos vectoriales sin procesar en la misma ruta.
Ejecutar una consulta de incrustación automatizada
Envíe el texto de la consulta, no una incrustación precalculada. mongot genera la incrustación de la consulta 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, consulte Ejecutar consultas de búsqueda vectorial.
Almacenamiento integrado
mongot mongot guarda las incrustaciones en una base de datos interna dedicada en el clúster de Kubernetes. mongot no almacena las incrustaciones en su colección de origen. puede regenerar las 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 cuantización provocan una re-incrustación completa del índice afectado. Se le cobrará por la regeneración. Para obtener más información, consulte Cuándo mongot regenera las incrustaciones.
Para obtener más información, consulte la Colección de incrustaciones generadas.
Cuando mongot regenera las incrustaciones
mongot Regenera las incrustaciones para un campo autoEmbed cuando ocurre cualquiera de las siguientes situaciones:
Inserta un documento.
Usted modifica el campo incrustado en un documento.
mongotdetecta el cambio a través de flujos de cambios.Puedes cambiar el modelo de incrustación en la definición del índice.
Puedes cambiar la dimensión de salida de la incrustación o el tipo de datos.
Cambias la ruta del campo de texto.
Si modifica alguno de los tres últimos elementos, mongot reconstruye todo el índice desde cero. La reconstrucción puede resultar costosa para colecciones grandes. Planifique los cambios en el modelo con detenimiento.
Limitación de costos y tasas
MongoDB cobra por millón de tokens según las tarifas 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 consulta es proporcional al volumen de texto de la consulta.
Si utiliza la clave API de Voyage AI que creó con su cuenta de Atlas, puede consultar el uso de la clave API y los límites de tarifas en la interfaz de usuario de Atlas. Para obtener más información, consulte la sección «Gestionar la facturación» de la API de incrustación y reclasificación. Si utiliza claves creadas directamente desde Voyage AI, debe supervisar el uso y los límites de tarifas en el panel de control de Voyage AI.
Los errores de limitación de velocidad del lado de Voyage AI aparecen en los registros mongot y como indicadores de documentos fallidos en el índice afectado. Estos errores no desactivan el índice, pero pueden retrasar la indexación de nuevos documentos.
Modos de fallo
Síntoma | Causa probable |
|---|---|
El índice permanece en estado |
|
Los retrasos en la indexación aparecen de forma intermitente. | Limitación de velocidad en el lado de la IA de Voyage. Aumente su límite de velocidad o reduzca la carga de incrustación en tiempo de indexación. |
Las consultas realizadas al índice devuelven un error que menciona las incrustaciones. | La clave API de consulta no es válida o ha caducado. Verifique el contenido |
Todas las consultas realizadas al índice devuelven resultados vacíos. | Es posible que el índice se haya reconstruido y aún esté reinsertando el corpus. Compruebe el estado del índice con |
Limitaciones
Estado de vista previa. La configuración, los modelos compatibles y los puntos finales predeterminados podrían cambiar antes de que la función de incrustación automatizada esté disponible para el público en 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 final de Voyage AI no está disponible, la indexación de nuevos documentos se detiene.