Esta página mostra como instalar o AlloyDB Omni e integrar o AlloyDB AI.
A AlloyDB AI é um pacote de recursos incluídos no AlloyDB Omni que permite criar aplicativos corporativos de IA generativa. 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 para trabalhar com previsões on-line e embeddings de texto gerados a partir de modelos de ML. O AlloyDB Omni com o AlloyDB AI também pode processar embeddings de vetores de outro conteúdo, como uma imagem, por exemplo, se você usar a interface google_ml.predict_row
e fizer a tradução na consulta.
Com base no local em que 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
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 da conta de serviço no formato JSON e faça o download dela. Anote a chave da conta de serviço, porque você vai usá-la mais adiante 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 seu 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 Google Cloud projeto.
gcloud services enable aiplatform.googleapis.com
Adicione as permissões de gerenciamento de identidade e acesso (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 projeto Google Cloud .SERVICE_ACCOUNT_ID
: ID da conta de serviço que você criou na etapa 1. Isso inclui o sufixo@PROJECT_ID.iam.gserviceaccount.com
completo. Por exemplo,my-service@my-project.iam.gserviceaccount.com
.
Configurar o AlloyDB AI para o AlloyDB Omni
Para instalar o AlloyDB Omni e integrar a IA do AlloyDB, conclua as etapas a seguir como usuário raiz:
Conclua todas as etapas listadas em Configurar o AlloyDB Omni para consultar modelos baseados em nuvem.
Se houver um contêiner com o mesmo nome, interrompa 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 para atribuir o 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 para atribuir o 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 usuáriopostgres
do novo contêiner após a criação.NEW_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 precisa publicar a própria porta5432
. Para usar a porta padrão do PostgreSQL na máquina host, 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 para atribuir o 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 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 para atribuir o 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 para atribuir o contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Conectar usando o psql
contêinerizado
Para se conectar ao servidor de banco de dados do AlloyDB Omni usando a própria
cópia contêinerizada 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 para atribuir o contêiner do AlloyDB Omni no registro de contêineres da máquina host. Por exemplo,my-omni-1
.
Verificar o AlloyDB Omni com a instalação do AlloyDB AI
Para verificar se a instalação foi concluída e usa a previsão de 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 AlloyDB AI
- Registrar e chamar modelos de IA remotos