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 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 por conta própria na consulta.
Configurar a instância do AlloyDB Omni para consultar modelos remotos
O AlloyDB Omni pode consultar modelos de ML remotos usando a extensão
google_ml_integration
.
Se quiser consultar modelos da Vertex AI, configure 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 estas etapas:
Crie uma conta de serviço com Google Cloud.
Crie uma chave de conta de serviço, em formato JSON, e faça o download dela. Anote a chave da conta de serviço, porque ela será usada mais tarde neste procedimento.
Copie a chave da conta de serviço que você criou para
KEY_PATH
. O caminho da chave precisa ser um caminho no host acessível e de propriedade do usuário que vai executar o contêiner do AlloyDB Omni.Ative a API Vertex AI no seu projeto Google Cloud .
gcloud services enable aiplatform.googleapis.com
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
: ID do seu Google Cloud projeto.SERVICE_ACCOUNT_ID
: ID da conta de serviço que você criou na etapa 1. Isso inclui o sufixo completo@PROJECT_ID.iam.gserviceaccount.com
. Por exemplo,my-service@my-project.iam.gserviceaccount.com
.
Configurar o AlloyDB AI para o AlloyDB Omni
Para instalar o AlloyDB Omni e integrar o AlloyDB AI, siga estas etapas como usuário root:
Conclua todas as etapas listadas em Configurar o AlloyDB Omni para consultar modelos baseados na nuvem.
Se houver um contêiner com o mesmo nome, pare 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:
CONTAINER_NAME
: nome a ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Inicie um novo contêiner do AlloyDB Omni montando a chave no contêiner.
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 ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.NEW_PASSWORD
: senha atribuída ao novo usuáriopostgres
do contêiner após a criação. Observe queNEW_PASSWORD
só vai definir uma nova senha quandoDATA_DIR
for um novo local.DATA_DIR
: caminho do diretório do host em que seus dados são armazenados.KEY_PATH
: caminho para o arquivo de chave da conta de serviço.HOST_PORT
: porta TCP na máquina host em que o contêiner vai publicar a própria porta5432
. Para usar a porta padrão do PostgreSQL na máquina host também, especifique5432
.
Faça com que o arquivo de chave seja legível pelo usuário
postgres
no contêiner 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 ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.KEY_PATH
: caminho do host para o arquivo de chave da sua 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 ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Reinicie o contêiner 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 ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Conectar usando o psql
em contêiner
Para se conectar ao servidor de banco de dados do AlloyDB Omni usando a própria
cópia em contêiner 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 ser atribuído ao contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Verificar a instalação do AlloyDB Omni com o AlloyDB AI
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 de IA remotos