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_NAMEdocker rm CONTAINER_NAMEDocker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMESubstitua:
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áriopostgresdo contêiner após a criação. Observe queNEW_PASSWORDsó vai definir uma nova senha quandoDATA_DIRfor 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
postgresno contêiner do AlloyDB Omni.Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonDocker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonSubstitua 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