IA do vérticeCompatible with Milvus 2.6.x
O Google Cloud Vertex AI é um serviço de elevado desempenho concebido especificamente para modelos de incorporação de texto. Este guia explica como utilizar o Google Cloud Vertex AI com o Milvus para uma geração eficiente de incorporação de texto.
O Vertex AI suporta vários modelos de incorporação para diferentes casos de utilização:
gemini-embedding-001 (desempenho topo de gama em tarefas em inglês, multilingues e de código)
text-embedding-005 (Modelo de incorporação de texto mais recente)
text-multilingual-embedding-002 (Modelo de incorporação de texto multilingue mais recente)
Para obter mais informações, consulte Modelos de incorporação de texto do Vertex AI.
Pré-requisitos
Certifique-se de que cumpre estes requisitos antes de configurar o Vertex AI:
Executar o Milvus versão 2.6 ou superior - Verifique se a implantação atende ao requisito de versão mínima.
Criar uma conta de serviço do Google Cloud - No mínimo, provavelmente precisará de funções como "Usuário do Vertex AI" ou outras funções mais específicas. Para obter detalhes, consulte Criar contas de serviço.
Baixe o arquivo de chave JSON da conta de serviço - armazene com segurança esse arquivo de credenciais no servidor ou no computador local. Para obter detalhes, consulte Criar uma chave de conta de serviço.
Configurar credenciais
Antes que o Milvus possa chamar a Vertex AI, ele precisa acessar a chave JSON da sua conta de serviço do GCP. Oferecemos suporte a dois métodos - escolha um com base nas suas necessidades operacionais e de implantação.
Opção |
Prioridade |
Melhor para |
|---|---|---|
Ficheiro de configuração ( |
Alta |
Definições persistentes em todo o cluster |
Variáveis de ambiente ( |
Baixa |
Fluxos de trabalho de contentores, testes rápidos |
Opção 1: Ficheiro de configuração (recomendado e de maior prioridade)
Milvus sempre preferirá credenciais declaradas em milvus.yaml sobre quaisquer variáveis de ambiente para o mesmo provedor.
Codificação base64 da sua chave JSON
cat credentials.json | jq . | base64Declare as credenciais em
milvus.yaml# milvus.yaml credential: gcp_vertex: # arbitrary label credential_json: | <YOUR_BASE64_ENCODED_JSON>Vincular a credencial ao provedor Vertex AI
# milvus.yaml function: textEmbedding: providers: vertexai: credential: gcp_vertex # must match the label above url: <optional: custom Vertex AI endpoint>Se mais tarde precisar de rodar as chaves, basta atualizar a cadeia de caracteres Base64 em
credential_jsone reiniciar o Milvus - não são necessárias alterações ao seu ambiente ou contentores.
Opção 2: variáveis de ambiente
Use este método quando preferir injetar segredos no momento da implantação. O Milvus recorre às env-vars apenas se não existir uma entrada correspondente em milvus.yaml.
As etapas de configuração dependem do seu modo de implantação do Milvus (autônomo vs. cluster distribuído) e da plataforma de orquestração (Docker Compose vs. Kubernetes).
Para obter o ficheiro de configuração do Milvus(docker-compose.yaml), consulte Transferir um ficheiro de instalação.
Monte a sua chave no contentor
Edite o seu ficheiro
docker-compose.yamlpara incluir o mapeamento do volume de credenciais:services: standalone: volumes: # Map host credential file to container path - /path/to/your/credentials.json:/milvus/configs/google_application_credentials.json:roNa configuração anterior:
Utilizar caminhos absolutos para um acesso fiável aos ficheiros (
/home/user/credentials.jsone não~/credentials.json)O caminho do contentor tem de terminar com a extensão
.json:roO sinalizador garante acesso somente leitura para segurança
Definir variável de ambiente
No mesmo ficheiro
docker-compose.yaml, adicione a variável de ambiente que aponta para o caminho da credencial:services: standalone: environment: # Essential for Vertex AI authentication MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS: /milvus/configs/google_application_credentials.jsonAplicar alterações
Reinicie o contentor do Milvus para ativar a configuração:
docker-compose down && docker-compose up -d
Para obter seu arquivo de configuração do Milvus(values.yaml), consulte Configurar o Milvus via arquivo de configuração.
Criar um segredo do Kubernetes
Execute isto na sua máquina de controlo (onde o kubectl está configurado):
kubectl create secret generic vertex-ai-secret \ --from-file=credentials.json=/path/to/your/credentials.json \ -n <your-milvus-namespace>No comando anterior:
vertex-ai-secret: Nome para o seu segredo (personalizável)/path/to/your/credentials.json: Nome de ficheiro local do seu ficheiro de credenciais GCP<your-milvus-namespace>: Espaço de nomes Kubernetes que aloja o Milvus
Configurar os valores do Helm
Actualize o seu
values.yamlcom base no seu tipo de implementação:Para implantação autónoma
standalone: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json # Container path volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret # Must match Step 1 volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json # Must match extraEnv value subPath: credentials.json # Must match secret key name readOnly: truePara implantação distribuída (adicionar a cada componente)
proxy: extraEnv: - name: MILVUSAI_GOOGLE_APPLICATION_CREDENTIALS value: /milvus/configs/credentials.json volumes: - name: vertex-ai-credentials-vol secret: secretName: vertex-ai-secret volumeMounts: - name: vertex-ai-credentials-vol mountPath: /milvus/configs/credentials.json subPath: credentials.json readOnly: true # Repeat same configuration for dataNode, etc.
Aplicar a configuração do Helm
Implemente a configuração actualizada no seu cluster:
helm upgrade milvus milvus/milvus -f values.yaml -n <your-milvus-namespace>
Usar a função de incorporação
Depois que o Vertex AI estiver configurado, siga estas etapas para definir e usar funções de incorporação.
Etapa 1: definir campos de esquema
Para usar uma função de incorporação, crie uma coleção com um esquema específico. Esse esquema deve incluir pelo menos três campos necessários:
O campo primário que identifica de forma exclusiva cada entidade numa coleção.
Um campo escalar que armazena os dados brutos a serem incorporados.
Um campo vetorial reservado para armazenar as incorporações vectoriais que a função irá gerar para o campo escalar.
from pymilvus import MilvusClient, DataType, Function, FunctionType, CollectionSchema, FieldSchema
# Assume you have connected to Milvus
# client = MilvusClient(uri="http://localhost:19530")
# 1. Create Schema
schema = MilvusClient.create_schema()
# 2. Add fields
schema.add_field("id", DataType.INT64, is_primary=True, auto_id=False)
schema.add_field("document", DataType.VARCHAR, max_length=9000) # Store text data
# IMPORTANT: Set dim to match the output dimension of the model and parameters
schema.add_field("dense_vector", DataType.FLOAT_VECTOR, dim=768) # Store embedding vectors (example dimension)
Passo 2: Adicionar a função de incorporação ao esquema
O módulo Function do Milvus converte automaticamente os dados brutos armazenados num campo escalar em embeddings e armazena-os no campo vetorial explicitamente definido.
# 3. Define Vertex AI embedding function
text_embedding_function = Function(
name="vert_func", # Unique identifier for this embedding function
function_type=FunctionType.TEXTEMBEDDING, # Indicates a text embedding function
input_field_names=["document"], # Scalar field(s) containing text data to embed
output_field_names=["dense_vector"], # Vector field(s) for storing embeddings
params={ # Vertex AI specific parameters (function-level)
"provider": "vertexai", # Must be set to "vertexai"
"model_name": "text-embedding-005", # Required: Specifies the Vertex AI model to use
"projectid": "your-gcp-project-id", # Required: Your Google Cloud project ID
# Optional parameters (include these only if necessary):
# "location": "us-central1", # Optional: Vertex AI service region (default us-central1)
# "task": "DOC_RETRIEVAL", # Optional: Embedding task type (default DOC_RETRIEVAL)
# "dim": 768 # Optional: Output vector dimension (1-768)
}
)
# Add the configured embedding function to your existing collection schema
schema.add_function(text_embedding_function)
Parâmetro |
Descrição do parâmetro |
Necessário? |
Exemplo Valor |
|---|---|---|---|
|
O fornecedor do modelo de incorporação. Definido como "vertexai". |
Sim |
|
|
Especifica qual o modelo de incorporação Vertex AI a utilizar. |
Sim |
|
|
O ID do seu projeto Google Cloud. |
Sim |
|
|
A região para o serviço Vertex AI. Atualmente, os embeddings do Vertex AI suportam principalmente us-central1. O padrão é us-central1. |
Não |
|
|
Especifica o tipo de tarefa de incorporação, afectando os resultados da incorporação. Valores aceites: DOC_RETRIEVAL (predefinição), CODE_RETRIEVAL (apenas 005 suportado), STS (Semantic Textual Similarity). |
Não |
|
|
A dimensão dos vectores de incorporação de saída. Aceita números inteiros entre 1 e 768. Nota: Se especificado, certifique-se de que a dimensão do campo de vetor no Schema corresponde a este valor. |
Não |
|
Próximos passos
Depois de configurar a função de incorporação, consulte a Visão geral da função para obter orientações adicionais sobre a configuração do índice, exemplos de inserção de dados e operações de pesquisa semântica.