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.json
e 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.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 manifestoDBCluster
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 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
enabled
comotrue
no campogoogleMLExtension
, pode consultar modelos remotos. Defina overtexAIKeyRef
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 utilizadorpostgres
predefinida, 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 definircpu
como2
anteriormente neste manifesto, recomendamos que definamemory
como16Gi
.DISK_SIZE
: o tamanho do disco por instância da base de dados, por exemplo,10Gi
.
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?
- 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