Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Configurar embedding automatizado para pesquisa vetorial

Observação

Automated Embedding is in Preview for mongot in Kubernetes cluster. The feature and corresponding documentation might change at any time during the Preview period. To learn more, see Preview Features.

Esta página descreve como configurar o embedding automatizado na sua implantação Kubernetes da pesquisa vetorial. A funcionalidade de embedding automatizado na pesquisa vetorial gera embedding vetorial para os seus dados de texto no momento do índice e para o texto da query no momento da query. Portanto, você não precisa manter um pipeline de embedding separado no seu aplicativo.

Este tutorial é para desenvolvedores que estão criando recursos de pesquisa semântica ou RAG e desejam mongot para gerenciar embedding.

Sem o embedding automatizado, seu aplicativo deve:

  1. Gere um embedding para cada documento que você inserir ou atualizar.

  2. Armazene esse embedding junto com o documento em sua coleção.

  3. Gere um embedding para cada query, usando o mesmo modelo, no momento da query.

  4. Envie o embedding de query para $vectorSearch.

Com o embedding automatizado, o processo mongot lida com as etapas 1, 2 e 3. Seu aplicativo:

  1. Configura um índice de pesquisa vetorial com o tipo de campo autoEmbed para o campo de texto.

  2. Insere e atualiza documentos normalmente. Em seguida, mongot lê o campo de texto, gera o embedding por meio do modelo de embedding configurado e o armazena.

  3. Emite $vectorSearch query com o texto da query, não um embedding pré-calculado. Em seguida, mongot gera o embedding para o texto da query.

O embedding automatizado do mongot autogerenciado se integra aos modelos de embedding do Voyage AI.

Modelo
Descrição

voyage-4-lite

Aplicativos de alto volume e sensíveis ao custo.

voyage-4

Recomendado. Desempenho balanceado para pesquisa geral de texto.

voyage-4-large

Máxima precisão para relacionamentos semânticos complexos.

voyage-code-3

Especificamente para pesquisa de código e documentação técnica.

You incur costs for embedding generation. To learn more, see Manage Billing for Automated Embedding.

  • mongot 1.70.1 ou posterior em sua implantação do Kubernetes.

  • MongoDB 8.2 ou posterior.

  • Duas chaves de API do Voyage AI.

    Use two separate keys, one for index-time embedding generation and one for query-time. Separate keys isolate query workload from indexing workload and allow independent rate-limit accounting. To learn more, see Rate Limits.

  • Acesso de rede de saída de mongot para o ponto de extremidade de embedding.

    O ponto de extremidade padrão é https://ai.mongodb.com/v1/embeddings, que faz proxy do Voyage AI com faturamento gerenciado pelo MongoDB, para chaves geradas usando a IU do Atlas. Você também pode usar https://api.voyageai.com/v1/embeddings para acesso direto ao Voyage AI se você gerou a chave de API diretamente do Voyage AI.

Você pode gerar chaves de API do Voyage AI por meio de um dos seguintes caminhos:

  • (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.

  • Através do Voyage AI diretamente em 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.

Crie um secret do Kubernetes com ambas as chaves:

kubectl create secret generic voyage-api-keys \
--from-literal=indexing-key=<your-index-key> \
--from-literal=query-key=<your-query-key> \
--namespace=<your-namespace>

Referencie-o a partir do recurso personalizado do MongoDBSearch:

apiVersion: mongodb.com/v1
kind: MongoDBSearch
metadata:
name: mdbs
spec:
# ...
autoEmbedding:
embeddingModelAPIKeySecret:
name: voyage-api-keys

Opcionalmente, defina spec.autoEmbedding.providerEndpoint para substituir o ponto de extremidade de embedding que mongot usa. Quando você omite este campo, mongot usa seu ponto de extremidade padrão integrado, https://ai.mongodb.com/v1/embeddings. Para saber mais, consulte Especificação de recurso do MongoDBSearch.

After you configure mongot with your Voyage AI API keys, define a Vector Search index that uses the autoEmbed field type. The index definition specifies which text field mongot embeds, which model it uses, the indexing method, quantization, and other parameters. To learn more about the autoEmbed index definition, see MongoDB Vector Search Index Fields.

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
}
} ] });'

A tabela a seguir descreve os campos de definição de índice autoEmbed:

Campo
Propósito

type: "autoEmbed"

Marca o campo para embedding automático.

modality: "text"

A modalidade de dados. text é a única modalidade suportada.

path

O campo em sua coleção para embedding.

model

O nome do modelo da Voyage AI. O modelo deve ser aquele ao qual sua chave de API tem acesso.

numDimensions

O número de dimensões para o vetor de embedding. O modelo determina as dimensões suportadas.

similarity

A função de similaridade a ser usada para pesquisa vetorial. As funções compatíveis são cosine, dotProduct e euclidean.

indexingMethod

O método de indexação a ser usado. Os métodos suportados são flat e hnsw.

hnswOptions

(Opcional) As opções de índice HNSW. Obrigatório se indexingMethod for hnsw.

quantization

(Opcional) O tipo de quantização a ser usado. Os tipos suportados são float, scalar, binary e binaryNoRescore.

Você pode misturar campos autoEmbed com campos filter no mesmo índice. Você não pode misturar autoEmbed com campos vetoriais brutos no mesmo caminho.

Envie texto de query, não um embedding pré-computado. mongot gera o embedding de query para você.

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

To learn more, see Run Vector Search ANN and ENN Queries.

mongot persiste embedding em um banco de dados interno dedicado no cluster do Kubernetes. 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.

Changes to the embedding model, output dimensions, or quantization trigger a full re-embedding of the affected index. You incur charges for the regeneration. To learn more, see When mongot Regenerates Embeddings.

To learn more, see Generated Embeddings Collection.

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. mongot detecta 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.

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.

Problema
Provável Causa

O índice permanece no status PENDING por alguns minutos.

mongot não é possível acessar o ponto de extremidade de embedding, ou a chave da API é inválida. Verificar os logs mongot para erros HTTP no ponto de extremidade de embedding.

Atrasos na indexação aparecem intermitentemente.

Limitação de taxa do lado da IA da Voyage. Aumente o 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.

A chave da API de query é inválida ou expirou. Verifique o conteúdo de queryKeyFile.

Todas as query em relação ao índice retornam resultados vazios.

O índice pode ter sido reconstruído e ainda está re-embedding o corpus. Verifique o status do índice com db.collection.getSearchIndexes().

  • **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.