AlloyDB AI è una suite di funzionalità incluse in AlloyDB Omni che ti consentono di creare applicazioni aziendali di AI generativa. Per ulteriori informazioni sulla funzionalità AI/ML di AlloyDB, consulta Crea applicazioni di AI generativa.
AlloyDB Omni con AlloyDB AI ti consente di eseguire query sui modelli di ML remoti per lavorare con le previsioni online e gli incorporamenti di testo generati dai modelli di ML. AlloyDB Omni con AlloyDB AI può anche elaborare incorporamenti vettoriali da altri contenuti, ad esempio un'immagine, se utilizzi l'interfaccia google_ml.predict_row ed esegui la traduzione autonomamente nella query.
Configura l'istanza AlloyDB Omni per eseguire query sui modelli remoti
AlloyDB Omni può eseguire query sui modelli di ML remoti utilizzando l'estensione
google_ml_integration.
Se vuoi eseguire query sui modelli Vertex AI, devi configurare l'account di servizio AlloyDB Omni con Vertex AI prima di installare AlloyDB Omni.
Per configurare AlloyDB Omni in modo da eseguire query sui modelli remoti, segui questi passaggi:
Crea un service account con Google Cloud.
Crea una chiave dell'account di servizio in formato JSON e scaricala. Prendi nota della chiave dell'account di servizio perché la utilizzerai più avanti in questa procedura.
Copia la chiave dell'account di servizio che hai creato in
KEY_PATH. Il percorso della chiave deve essere un percorso sul tuo host accessibile e di proprietà dell'utente che eseguirà il tuo contenitore AlloyDB Omni.Abilita l'API Vertex AI nel tuo progetto Google Cloud .
gcloud services enable aiplatform.googleapis.com
Aggiungi le autorizzazioni IAM (Identity and Access Management) di Vertex AI al progetto e al account di servizio appropriati.
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_ID" \ --role="roles/aiplatform.user"Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.SERVICE_ACCOUNT_ID: l'ID del account di servizio che hai creato nel passaggio 1. Ciò include il suffisso@PROJECT_ID.iam.gserviceaccount.comcompleto. Ad esempiomy-service@my-project.iam.gserviceaccount.com.
Configura AlloyDB AI per AlloyDB Omni
Per installare AlloyDB Omni e integrare AlloyDB AI, completa i seguenti passaggi come utente root:
Completa tutti i passaggi elencati in Configura AlloyDB Omni per eseguire query sui modelli basati su cloud.
Se esiste un container esistente con lo stesso nome, arrestalo e rimuovilo.
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_NAMESostituisci quanto segue:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.
Avvia un nuovo container AlloyDB Omni montando la chiave nel container.
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
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.NEW_PASSWORD: password assegnata al nuovo utentepostgresdel contenitore dopo la sua creazione. Tieni presente cheNEW_PASSWORDimposterà una nuova password solo quandoDATA_DIRè una nuova posizione.DATA_DIR: il percorso della directory host in cui sono archiviati i dati.KEY_PATH: il percorso del file della chiave del account di servizio.HOST_PORT: la porta TCP sulla macchina host a cui il container deve pubblicare la propria porta5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica5432.
Rendi il file delle chiavi leggibile dall'utente
postgresall'interno del container 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.jsonSostituisci le seguenti variabili:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.KEY_PATH: il percorso host del file della chiave del account di servizio.
Aggiorna AlloyDB Omni aggiungendo le seguenti opzioni di configurazione.
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"
Sostituisci le seguenti variabili:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.
Riavvia il container AlloyDB Omni.
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Sostituisci la seguente variabile:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.
Connettiti utilizzando psql in container
Per connetterti al server di database AlloyDB Omni utilizzando la propria
copia containerizzata di psql, esegui questo 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
Sostituisci la seguente variabile:
CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio,my-omni-1.
Verifica l'installazione di AlloyDB Omni con AlloyDB AI
Per verificare che l'installazione sia andata a buon fine e utilizzi la previsione del modello, inserisci quanto segue:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);
L'output è simile al seguente:
array_dims
------------
[1:768]
(1 row)
Nella query precedente, la chiamata embedding() genera incorporamenti per il testo di input AlloyDB AI.
array_dims restituisce le dimensioni dell'array restituito da embedding().
Poiché il modello text-embedding-005 restituisce un output con 768 dimensioni, l'output è [768].
Passaggi successivi
- Esegui e connettiti ad AlloyDB Omni
- Gestire AlloyDB Omni
- Crea applicazioni di AI generativa utilizzando AlloyDB AI
- Registrare e chiamare modelli di AI remoti