Instale o AlloyDB AI no AlloyDB Omni

Selecione uma versão da documentação:

Esta página mostra como instalar o AlloyDB Omni e integrar o AlloyDB AI.

O AlloyDB AI é um conjunto de funcionalidades incluídas no AlloyDB Omni que lhe permitem criar aplicações de IA generativa empresariais. Para mais informações sobre a funcionalidade de IA/AM do AlloyDB, consulte o artigo Crie aplicações de IA generativa.

O AlloyDB Omni com o AlloyDB AI permite-lhe consultar modelos de ML remotos para trabalhar com previsões online e incorporações de texto geradas a partir de modelos de ML. O AlloyDB Omni com o AlloyDB AI também pode processar incorporações de vetores de outro conteúdo, como uma imagem, por exemplo, se usar a interface google_ml.predict_row e fizer a tradução na consulta.

Configure a sua instância do AlloyDB Omni para consultar modelos remotos

Pode consultar modelos remotos através da gestão de pontos finais de modelos ativando googleMLExtension no manifesto do cluster da base de dados.

Opcionalmente, se quiser consultar modelos da Vertex AI, tem de configurar a conta de serviço do AlloyDB com a Vertex AI, criar um segredo do Kubernetes com a chave e definir o segredo do Kubernetes no manifesto do cluster da base de dados.

Adicione as autorizações da Vertex AI à conta de serviço do AlloyDB

Para configurar o AlloyDB Omni para consultar modelos remotos da Vertex AI, siga estes passos:

  1. Crie uma conta de serviço com Google Cloud.

  2. Crie uma chave de conta de serviço, guarde-a no formato JSON no ficheiro private-key.json e transfira-a.

  3. Armazene a chave numa localização permanente no seu sistema de ficheiros. Reside nesta localização durante a vida útil do seu servidor AlloyDB Omni.

    Tome nota da respetiva localização no sistema de ficheiros. Vai precisar dela para os passos seguintes.

  4. Adicione autorizações da gestão de identidade e de acesso (IAM) do Vertex AI ao projeto e à conta de serviço adequados.

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

    Substitua o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .

    • SERVICE_ACCOUNT_ID: o ID da conta de serviço que criou no passo anterior. Isto inclui o sufixo @PROJECT_ID.iam.gserviceaccount.com completo, por exemplo, my-service@my-project.iam.gserviceaccount.com.

Crie um segredo do Kubernetes com a chave da conta de serviço

Para criar um segredo do Kubernetes com base na chave da conta de serviço transferida nos passos anteriores, execute o seguinte comando:

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

Substitua o seguinte:

  • SECRET_NAME: o nome do segredo usado quando cria um manifesto DBCluster para permitir que o AlloyDB Omni aceda às funcionalidades de IA do AlloyDB. Por exemplo, vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: o caminho para a localização onde transferiu a chave da conta de serviço do private-key.json.

  • NAMESPACE: o espaço de nomes do cluster da base de dados.

Instale o operador do AlloyDB Omni

Instale o operador do AlloyDB Omni através dos passos indicados no artigo Instale o operador do AlloyDB Omni.

Crie um cluster de base de dados com o AlloyDB AI

  1. Crie um cluster de base de dados com o AlloyDB AI.

    Quando define enabled como true no campo googleMLExtension, pode consultar modelos remotos. Defina o vertexAIKeyRef para o segredo do Kubernetes se quiser consultar modelos do 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: "16.8.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 o seguinte:

    • DB_CLUSTER_NAME: o nome deste cluster de base de dados, por exemplo, my-db-cluster.

    • VERTEX_AI_SECRET_NAME (Opcional): o segredo da Vertex AI que criou nos passos anteriores. Tem de definir esta opção se quiser chamar modelos do Vertex AI.

    • VERTEX_AI_REGION (Opcional): o ponto final regional da Vertex AI para o qual quer enviar o seu pedido, por exemplo, us-west4. O valor predefinido é us-central1.

    • ENCODED_PASSWORD: a palavra-passe de início de sessão na base de dados para a função de utilizador postgres predefinida, codificada como uma string base64, por exemplo, Q2hhbmdlTWUxMjM= para ChangeMe123.

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

    • MEMORY_SIZE: a quantidade de memória por instância da base de dados deste cluster de base de dados. Recomendamos que defina esta opção para 8 gigabytes por CPU. Por exemplo, se definir cpu como 2 anteriormente neste manifesto, recomendamos que defina memory como 16Gi.

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

  2. Aplique o manifesto.

    kubectl apply -f DB_CLUSTER_YAML

    Substitua o seguinte:

    • DB_CLUSTER_YAML: o nome deste ficheiro de manifesto do cluster da base de dados, por exemplo, alloydb-omni-db-cluster.yaml.

Ligue-se através do psql pré-instalado

Pode fazer uma ligação de teste usando um cliente psql já instalado no pod que executa a base de dados.

Para o fazer, 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 da base de dados. É o mesmo nome do cluster da base de dados que declarou quando o criou.

Depois de introduzir o comando, o servidor da base de dados pede-lhe uma palavra-passe. Introduza a palavra-passe cuja versão codificada em base64 forneceu como um segredo do Kubernetes quando criou o cluster da base de dados. Por exemplo, se criou o cluster da base de dados com um segredo de Q2hhbmdlTWUxMjM=, a palavra-passe de início de sessão a usar aqui é ChangeMe123.

Valide o AlloyDB Omni com a instalação do AlloyDB AI

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

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

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

O resultado tem um aspeto semelhante ao seguinte:

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

Na consulta anterior, a chamada embedding() gera incorporações para o texto de entrada AlloyDB AI. array_dims devolve as dimensões da matriz devolvida por embedding(). Uma vez que o modelo text-embedding-005 devolve uma saída com 768 dimensões, a saída é [768].

O que se segue?