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:
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.
Crie uma chave de conta de serviço e salve-a no formato JSON no arquivo
private-key.jsone faça o download dela.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.
Ative a API Vertex AI no seu Google Cloud projeto.
gcloud services enable aiplatform.googleapis.com
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 manifestoDBClusterpara 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çoprivate-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
Crie um cluster de banco de dados com a IA do AlloyDB.
Quando você define
enabledcomotrueno campogoogleMLExtension, é possível consultar modelos remotos. DefinavertexAIKeyRefcomo 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: standardSubstitua:
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ãopostgres, codificada como uma string base64. Por exemplo,Q2hhbmdlTWUxMjM=paraChangeMe123.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ê definiucpucomo2anteriormente neste manifesto, recomendamos definirmemorycomo16Gi.DISK_SIZE: o tamanho do disco por instância de banco de dados, por exemplo,10Gi.
Aplique o manifesto.
kubectl apply -f DB_CLUSTER_YAMLSubstitua:
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
- Executar e conectar ao AlloyDB Omni
- Gerenciar o AlloyDB Omni
- Criar aplicativos de IA generativa usando a IA do AlloyDB
- Registrar e chamar modelos de IA remotos