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
O AlloyDB Omni pode consultar modelos de AA remotos através da extensão google_ml_integration
.
Opcionalmente, se quiser consultar modelos da Vertex AI, tem de configurar a conta de serviço do AlloyDB Omni com a Vertex AI antes de instalar o AlloyDB Omni.
Para configurar o AlloyDB Omni para consultar modelos remotos, siga estes passos:
Crie uma conta de serviço com Google Cloud.
Crie uma chave de conta de serviço no formato JSON e transfira-a. Anote a chave da conta de serviço, uma vez que a vai usar mais tarde neste procedimento.
Copie a chave da conta de serviço que criou para
KEY_PATH
. O caminho da chave deve ser um caminho no seu anfitrião acessível e pertencente ao utilizador que vai executar o seu contentor do AlloyDB Omni.Ative a API Vertex AI no seu Google Cloud projeto.
gcloud services enable aiplatform.googleapis.com
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
: ID do seu projeto Google Cloud .SERVICE_ACCOUNT_ID
: ID da conta de serviço que criou no passo 1. Isto inclui o sufixo@PROJECT_ID.iam.gserviceaccount.com
completo. Por exemplo,my-service@my-project.iam.gserviceaccount.com
.
Configure o AlloyDB AI para o AlloyDB Omni
Para instalar o AlloyDB Omni e integrar o AlloyDB AI, conclua os seguintes passos como utilizador root:
Conclua todos os passos indicados no artigo Configure o AlloyDB Omni para consultar modelos baseados na nuvem.
Se existir um contentor com o mesmo nome, pare-o e remova-o.
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Docker
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
Podman
podman stop CONTAINER_NAME
podman rm CONTAINER_NAME
Substitua o seguinte:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.
Inicie um novo contentor do AlloyDB Omni montando a chave no contentor.
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Docker
docker run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Podman
podman run -d --name CONTAINER_NAME \ -e POSTGRES_PASSWORD=NEW_PASSWORD \ -v DATA_DIR:/var/lib/postgresql/data \ -v "KEY_PATH":/etc/postgresql/private-key.json \ -p HOST_PORT:5432 \ --restart=always \ docker.io/google/alloydbomni:latest
Substitua as seguintes variáveis:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.NEW_PASSWORD
: palavra-passe atribuída ao utilizadorpostgres
do novo contentor após a respetiva criação. Tenha em atenção queNEW_PASSWORD
só define uma nova palavra-passe quandoDATA_DIR
é uma nova localização.DATA_DIR
: caminho do diretório do anfitrião onde os seus dados estão armazenados.KEY_PATH
: caminho para o ficheiro de chave da conta de serviço.HOST_PORT
: porta TCP na máquina anfitriã para a qual o contentor deve publicar a sua própria porta5432
. Para usar a porta predefinida do PostgreSQL também na máquina anfitriã, especifique5432
.
Torne o ficheiro de chaves legível pelo utilizador
postgres
no contentor do AlloyDB Omni.Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
docker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Podman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Podman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.json
podman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.json
Substitua as seguintes variáveis:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.KEY_PATH
: caminho do anfitrião para o ficheiro da chave da conta de serviço.
Atualize o AlloyDB Omni adicionando as seguintes opções de configuração.
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Docker
docker exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Podman
podman exec CONTAINER_NAME sh -c "cat << EOF >> /var/lib/postgresql/data/postgresql.conf omni_enable_ml_agent_process = 'on' omni_google_cloud_private_key_file_path = '/etc/postgresql/private-key.json' EOF"
Substitua as seguintes variáveis:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.
Reinicie o contentor do AlloyDB Omni.
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Substitua a seguinte variável:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.
Faça a associação através do psql
em contentor
Para se ligar ao servidor de base de dados do AlloyDB Omni através da respetiva cópia em contentor de psql
, execute o seguinte comando:
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Docker
docker exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Podman
podman exec -it CONTAINER_NAME psql -U postgres
Substitua a seguinte variável:
CONTAINER_NAME
: nome a atribuir ao contentor do AlloyDB Omni no registo de contentores da máquina anfitriã. Por exemplo,my-omni-1
.
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