Instalar o AlloyDB AI no AlloyDB Omni

Selecione uma versão da documentação:

Esta página mostra como instalar o AlloyDB Omni e integrar a IA do AlloyDB.

A IA do AlloyDB é um conjunto de recursos incluídos no AlloyDB Omni que permitem criar aplicativos de IA generativa corporativa. Para mais informações sobre a funcionalidade de IA/ML do AlloyDB, consulte Criar aplicativos de IA generativa.

O AlloyDB Omni com a IA do AlloyDB permite consultar modelos de ML remotos usando a extensão google_ml_integration para trabalhar com previsões on-line e embeddings de texto gerados por modelos de ML. O AlloyDB Omni com a IA do AlloyDB também pode processar embeddings de vetores de outros conteúdos, como uma imagem, por exemplo, se você usar a interface google_ml.predict_row e fizer a tradução na consulta.

Configurar para consultar modelos remotos Google Cloud

Se você quiser consultar modelos da Vertex AI, configure uma conta de serviço do AlloyDB Omni com a Vertex AI antes de instalar o AlloyDB Omni.

Para configurar uma conta de serviço para consultar modelos remotos, siga estas etapas:

  1. Crie uma conta de serviço com Google Cloud. Você concede permissões a essa conta de serviço para acessar a Vertex AI em uma etapa posterior.

  2. Crie uma chave de conta de serviço e salve-a no formato JSON no arquivo private-key.json e faça o download dela.

  3. Armazene a chave em um local permanente no sistema de arquivos. Ela reside nesse local durante todo o ciclo de vida do servidor do AlloyDB Omni.

    Anote o local no sistema de arquivos. Ele será necessário para as próximas etapas.

  4. Ative a API Vertex AI no seu Google Cloud projeto.

    gcloud services enable aiplatform.googleapis.com
    
  5. Adicione permissões de Identity and Access Management (IAM) da Vertex AI ao projeto e à conta de serviço apropriados.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_ID" \
        --role="roles/aiplatform.user"
    

    Substitua:

    • PROJECT_ID: ID do seu Google Cloud projeto.

    • SERVICE_ACCOUNT_ID: ID da conta de serviço que você criou na etapa um. Isso inclui o sufixo completo @PROJECT_ID.iam.gserviceaccount.com. Por exemplo, my-service@my-project.iam.gserviceaccount.com.

Criar um secret do Kubernetes usando a chave da conta de serviço

Para criar um secret do Kubernetes com base na chave da conta de serviço baixada nas etapas anteriores, execute o seguinte comando:

kubectl create secret generic SECRET_NAME \
--from-file=PATH_TO_SERVICE_ACCOUNT_KEY/private-key.json \
-n NAMESPACE

Substitua:

  • SECRET_NAME: o nome do secret usado ao criar um manifesto DBCluster para permitir que o AlloyDB Omni acesse os recursos da IA do AlloyDB. Por exemplo, vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: o caminho para o local em que você baixou a chave da conta de serviço private-key.json.

  • NAMESPACE: o namespace do cluster de banco de dados.

Instalar o operador do AlloyDB Omni

Instale o operador do AlloyDB Omni usando as etapas listadas em Instalar o operador do AlloyDB Omni.

Criar um cluster de banco de dados com a IA do AlloyDB

  1. Crie um cluster de banco de dados com a IA do AlloyDB.

    Quando você define enabled como true no campo googleMLExtension, é possível consultar modelos remotos. Defina vertexAIKeyRef como o secret do Kubernetes se quiser consultar modelos da Vertex AI.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
    spec:
    databaseVersion: "18.1.0"
    primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        features:
          googleMLExtension:
            enabled: true
            config:
              vertexAIKeyRef: VERTEX_AI_SECRET_NAME
              vertexAIRegion: VERTEX_AI_REGION
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
            storageClass: standard
    

    Substitua:

    • DB_CLUSTER_NAME: o nome do cluster de banco de dados, por exemplo, my-db-cluster.

    • VERTEX_AI_SECRET_NAME (opcional): o secret da Vertex AI que você criou nas etapas anteriores. Defina essa opção se quiser chamar modelos da Vertex AI.

    • VERTEX_AI_REGION (opcional): o endpoint regional da Vertex AI para o qual você quer enviar a solicitação, por exemplo, us-west4. O valor padrão é us-central1.

    • ENCODED_PASSWORD: a senha de login do banco de dados para a função do usuário padrão postgres, codificada como uma string base64. Por exemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

    • CPU_COUNT: o número de CPUs disponíveis para cada instância de banco de dados no cluster.

    • MEMORY_SIZE: a quantidade de memória por instância de banco de dados deste cluster de banco de dados. Recomendamos definir isso como 8 gigabytes por CPU. Por exemplo, se você definiu cpu como 2 anteriormente neste manifesto, recomendamos definir memory como 16Gi.

    • DISK_SIZE: o tamanho do disco por instância de banco de dados, por exemplo, 10Gi.

  2. Aplique o manifesto.

    kubectl apply -f DB_CLUSTER_YAML

    Substitua:

    • DB_CLUSTER_YAML: o nome do arquivo de manifesto do cluster de banco de dados, por exemplo, alloydb-omni-db-cluster.yaml.

Conectar usando o psql pré-instalado

É possível fazer uma conexão de teste usando um cliente psql já instalado no pod que executa o banco de dados.

Para fazer isso, execute os seguintes comandos:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- psql -h localhost -U postgres

Substitua DB_CLUSTER_NAME pelo nome do cluster de banco de dados. É o mesmo nome de cluster de banco de dados que você declarou quando você o criou.

Depois de inserir o comando, o servidor de banco de dados vai solicitar uma senha. Insira a senha cuja versão codificada em base64 você forneceu como um secret do Kubernetes ao criar o cluster de banco de dados. Por exemplo, se você criou o cluster de banco de dados com um secret de Q2hhbmdlTWUxMjM=, a senha de login a ser usada aqui é ChangeMe123.

Verificar a instalação do AlloyDB Omni com a IA do AlloyDB

Para verificar se a instalação foi bem-sucedida e usa a previsão de modelo, insira o seguinte:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);

A saída será assim:

array_dims
------------
[1:768]
(1 row)

Na consulta anterior, a chamada embedding() gera embeddings para o texto de entrada AlloyDB AI. array_dims retorna as dimensões da matriz retornada por embedding(). Como o modelo text-embedding-005 retorna uma saída com 768 dimensões, a saída é [768].

A seguir