Importante
O embedding automatizado está em pré-visualização para mongot autogerenciado. O recurso e a documentação correspondente podem mudar a qualquer momento durante o período de pré-visualização. Para **aprender** mais, consulte Recursos de pré-visualização.
Este tutorial descreve como configurar o embedding automatizado em uma implantação mongot autogerenciada. Com o embedding automatizado, o mongot gera embedding de vetor para seus dados de texto no momento do índice e para texto de query no momento da query. Você não precisa manter um pipeline de embedding separado em seu aplicativo.
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.
O que o embedding automatizado faz
Sem o embedding automatizado, seu aplicativo deve:
Gere um embedding para cada documento que você inserir ou atualizar.
Armazene esse embedding junto com o documento em sua coleção.
Gere um embedding para cada query, usando o mesmo modelo, no momento da query.
Envie o embedding de query para
$vectorSearch.
Com o embedding automatizado, mongot lida com as etapas 1, 2 e 3. Seu aplicativo:
Configura um índice de pesquisa vetorial do MongoDB com o tipo de campo
autoEmbedpara o campo de texto.Insere e atualiza documentos normalmente.
mongotlê o campo de texto, gera o embedding por meio do modelo de embedding configurado e o armazena.Emite query
$vectorSearchcom o texto da query, não um embedding pré-computado.mongotgera o embedding para o texto da query.
Provedores de embedding suportados
O embedding automatizado do mongot autogerenciado se integra aos modelos de embedding do Voyage AI.
Modelo | Descrição |
|---|---|
| Recomendado. Desempenho balanceado para pesquisa geral de texto. |
| Aplicativos de alto volume e sensíveis ao custo. |
| Máxima precisão para relacionamentos semânticos complexos. |
| Especificamente para pesquisa de código e documentação técnica. |
Você incorre em custos para geração de embedding. Para aprender mais, consulte Gerenciar Faturamento para embedding automatizado.
Pré-requisitos
Você deve ter os seguintes pré-requisitos para usar o embedding automatizado:
mongot1.70.1 ou posterior em uma implantação autogerenciada (tarball ou contêiner da Community, Desenvolvimento local e Enterprise Edition por meio do Kubernetes operador).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.
Use duas chaves separadas, uma para geração de embedding em tempo de índice e outra para tempo de query. Chaves separadas isolam a carga de trabalho de query da carga de trabalho de indexação e permitem a contabilidade independente do limite de taxa. Para aprender mais, consulte Limites de taxa.
Acesso de rede de saída de
mongotpara o ponto de extremidade de embedding.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 usehttps://api.voyageai.com/v1/embeddingsfor direct Voyage AI access if you generated the API key directly from Voyage AI.
Procedimento
Generate Voyage AI API Keys.
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.
Gere duas chaves e nomeie-as claramente, por exemplo, mongot-prod-index e mongot-prod-query. Armazene as chaves em armazenamento secreto seguro.
Configure mongot for Automated Embedding.
A configuração depende do seu caminho de implantação. Selecione a aba para sua implantação.
O embedding automatizado requer a imagem de Desenvolvimento local preview (mongodb/mongodb-atlas-local:preview). A imagem preview agrupa a criação da Community de mongot, que inclui a integração de embedding automatizado.
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
Se você emitiu sua chave Voyage AI diretamente por meio do Voyage AI em vez do Atlas, substitua o ponto de extremidade padrão:
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
Observação
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.
Adicione o bloco embedding ao seu arquivo de configuração 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.
Crie um índice de embedding automatizado.
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" } ] } )
A tabela a seguir descreve os campos de definição de índice autoEmbed:
Campo | Propósito |
|---|---|
| Marca o campo para embedding automático. |
| A modalidade de dados. |
| O campo em sua coleção para embedding. |
| The Voyage AI model name. The model must be one that your API key has access to. |
| O número de dimensões para o vetor de embedding. O modelo determina as dimensões suportadas. |
| A função de similaridade a ser usada para pesquisa vetorial. As funções compatíveis são |
| O método de indexação a ser usado. Os métodos suportados são |
| (Optional) The HNSW index options. Required if |
| (Opcional) O tipo de quantização a ser usado. Os tipos suportados são |
Você pode misturar campos autoEmbed com campos filter no mesmo índice. Você não pode misturar autoEmbed com campos vetoriais brutos no mesmo caminho. Escolha uma abordagem por campo.
Executar uma query de embedding automatizada.
Envie texto de query, não um embedding pré-computado. mongot gera o embedding de query para você.
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 aprender mais, consulte Executar queries de pesquisa vetorial ANN e ENN.
Armazenamento de embedding
mongot persiste embedding em um banco de dados interno dedicado no cluster. mongot não armazena embedding em sua coleção de origem. mongot pode regenerar embedding do texto de origem, e você incorre em cobranças pela geração de embedding.
Alterações no modelo de embedding, dimensões de saída ou quantização trigger um re-embedding completo do índice afetado, para o qual você incorre em cobranças pela geração de embedding. Consulte Quando mongot regenera embeddings.
Para aprender mais, consulte Coleção de embedding gerado.
When mongot Regenerates Embeddings
mongot regenera embedding para um campo autoEmbed quando ocorre qualquer um dos seguintes:
Você insere um documento.
Você altera o campo incorporado em um documento.
mongotdetecta a alteração por meio de fluxos de alteração.Você altera o modelo de embedding na definição do índice.
Você altera a dimensão de saída do embedding ou o tipo de dados.
Você altera o caminho do campo de texto.
Se você alterar qualquer um dos três últimos itens, mongot reconstrói todo o índice do zero. A reconstrução pode ser cara para grandes coleções. Planeje as alterações do modelo deliberadamente.
Custo e limitação de taxa
O MongoDB cobra por milhão de tokens em taxas específicas do modelo. O custo de indexação é proporcional ao volume total de texto do campo indexado em toda a coleção. O custo da query é proporcional ao volume de texto da 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.
Os erros de limite de taxa do lado do Voyage AI aparecem nos logs do mongot e como indicadores de documento com falha no índice afetado. Esses erros não desativam o índice, mas podem atrasar a indexação de novos documentos.
Modos de falha
Problema | Provável Causa | em ação |
|---|---|---|
O índice permanece no status |
| Verifique os logs |
Atrasos na indexação aparecem intermitentemente. | Limitação de taxa do lado da Voyage IA. | Aumente seu limite de taxa ou reduza a carga de embedding no tempo de indexação. |
As query contra o índice retornam um erro que menciona embedding. | The query API key is invalid or expired. | Verifique o conteúdo de |
Todas as query em relação ao índice retornam resultados vazios. | O índice pode ter sido recriado e ainda está re-embedding o corpus. | Verifique o status do índice com |
Limitações
As seguintes limitações se aplicam ao embedding automatizado:
**Status de pré-visualização.** O formato da configuração, os modelos compatíveis e os pontos de extremidade padrão podem mudar antes que o Automated Embedding esteja geralmente disponível.
Um modelo de embedding por campo. Índices de modelo misto não são suportados.
Sem failover de modelo de embedding. Se o ponto de extremidade do Voyage AI estiver inacessível, a indexação de novos documentos será interrompida.
Próximos passos
Visão geral do embedding automatizado para a visão geral conceitual entre plataformas.
Configure o mongot para a referência de configuração
mongotcompleta.