Installa AlloyDB AI in AlloyDB Omni

Seleziona una versione della documentazione:

Questa pagina mostra come installare AlloyDB Omni e integrare AlloyDB AI.

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:

  1. Crea un service account con Google Cloud.

  2. 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.

  3. 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.

  4. Abilita l'API Vertex AI nel tuo progetto Google Cloud .

    gcloud services enable aiplatform.googleapis.com
    
  5. 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.com completo. Ad esempio my-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:

  1. Completa tutti i passaggi elencati in Configura AlloyDB Omni per eseguire query sui modelli basati su cloud.

  2. Se esiste un container esistente con lo stesso nome, arrestalo e rimuovilo.

    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

    Sostituisci quanto segue:

    • CONTAINER_NAME: il nome da assegnare al container AlloyDB Omni nel registro dei container della macchina host. Ad esempio, my-omni-1.
  3. 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 utente postgres del contenitore dopo la sua creazione. Tieni presente che NEW_PASSWORD imposterà una nuova password solo quando DATA_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 porta 5432. Per utilizzare anche la porta predefinita di PostgreSQL sulla macchina host, specifica 5432.
  4. Rendi il file delle chiavi leggibile dall'utente postgres all'interno del container 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

    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.
    • KEY_PATH: il percorso host del file della chiave del account di servizio.
  5. 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.
  6. 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