Nesta página, mostramos como instalar o AlloyDB Omni e integrar o AlloyDB AI.
O AlloyDB AI é um pacote de recursos incluídos no AlloyDB Omni que permitem criar aplicativos empresariais de IA generativa. Para mais informações sobre a funcionalidade de IA/ML do AlloyDB, consulte Criar aplicativos de IA generativa.
Com o AlloyDB Omni e o AlloyDB AI, é possível consultar modelos remotos de ML para trabalhar com previsões on-line e embeddings de texto gerados por modelos de ML. O AlloyDB Omni com o AlloyDB AI 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 por conta própria na consulta.
Com base em onde você quer instalar o AlloyDB Omni com a IA do AlloyDB, selecione uma das seguintes opções:
Configurar a instância do AlloyDB Omni para consultar modelos remotos
É possível consultar modelos remotos usando o gerenciamento de endpoints de modelo ao ativar googleMLExtension
no manifesto do cluster de banco de dados.
Se quiser consultar modelos da Vertex AI, configure a conta de serviço do AlloyDB com a Vertex AI, crie um secret do Kubernetes usando a chave e defina o secret do Kubernetes no manifesto do cluster de banco de dados.
Adicionar as permissões da Vertex AI à conta de serviço do AlloyDB
Para configurar o AlloyDB Omni para consultar modelos remotos da Vertex AI, siga estas etapas:
Crie uma conta de serviço com Google Cloud.
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.Armazene a chave em um local permanente no seu sistema de arquivos. Ele fica nesse local durante todo o ciclo de vida do servidor do AlloyDB Omni.
Anote o local no sistema de arquivos, porque você vai precisar dele nas próximas etapas.
Adicione permissões do Identity and Access Management (IAM) da 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:
PROJECT_ID
: o ID do seu projeto do Google Cloud .SERVICE_ACCOUNT_ID
: o ID da conta de serviço que você criou na etapa anterior. Isso inclui o sufixo@PROJECT_ID.iam.gserviceaccount.com
completo, 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 manifestoDBCluster
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 onde você baixou a chave da conta de serviço doprivate-key.json
.NAMESPACE
: o namespace do cluster de banco de dados.
Instalar o operador do AlloyDB Omni
Instale o operador do AlloyDB Omni seguindo 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
enabled
comotrue
no campogoogleMLExtension
, é possível consultar modelos remotos. Defina overtexAIKeyRef
como o segredo 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: "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:
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. Você precisa definir essa opção se quiser chamar modelos da Vertex AI.VERTEX_AI_REGION
(opcional): o endpoint regional da Vertex AI para onde 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 de 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ê definircpu
como2
anteriormente neste manifesto, recomendamos definirmemory
como16Gi
.DISK_SIZE
: o tamanho do disco por instância de banco de dados, por exemplo,10Gi
.
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 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 ao criá-lo.
Depois de inserir o comando, o servidor de banco de dados vai pedir 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 do modelo, digite 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 se conectar ao AlloyDB Omni
- Gerenciar o AlloyDB Omni
- Criar aplicativos de IA generativa usando a IA do AlloyDB
- Registrar e chamar modelos remotos de IA