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:
Crie uma conta de serviço com Google Cloud.
Crie uma chave de conta de serviço, guarde-a no formato JSON no ficheiro
private-key.jsone transfira-a.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.
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.comcompleto, 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 manifestoDBClusterpara 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 doprivate-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
Crie um cluster de base de dados com o AlloyDB AI.
Quando define
enabledcomotrueno campogoogleMLExtension, pode consultar modelos remotos. Defina overtexAIKeyRefpara 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: "15.7.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: standardSubstitua 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 utilizadorpostgrespredefinida, codificada como uma string base64, por exemplo,Q2hhbmdlTWUxMjM=paraChangeMe123.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 definircpucomo2anteriormente neste manifesto, recomendamos que definamemorycomo16Gi.DISK_SIZE: o tamanho do disco por instância da base de dados, por exemplo,10Gi.
Aplique o manifesto.
kubectl apply -f DB_CLUSTER_YAMLSubstitua 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?
- Execute e ligue-se ao AlloyDB Omni
- Faça a gestão do AlloyDB Omni
- Crie aplicações de IA generativa com o AlloyDB AI
- Registe e chame modelos de IA remotos