Installa AlloyDB AI in AlloyDB Omni

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

AlloyDB AI è una suite di funzionalità incluse in AlloyDB Omni che ti consente di creare applicazioni aziendali di IA generativa. Per ulteriori informazioni sulle funzionalità di AI/ML di AlloyDB, consulta Creare applicazioni di AI generativa.

AlloyDB Omni con AlloyDB AI ti consente di eseguire query sui modelli ML remoti per lavorare con le previsioni online e gli incorporamenti di testo generati dai modelli ML. AlloyDB Omni con AlloyDB AI può anche elaborare gli embedding vettoriali da altri contenuti, ad esempio un'immagine, se utilizzi l'interfaccia google_ml.predict_row e esegui la traduzione autonomamente nella query.

A seconda di dove vuoi installare AlloyDB Omni con AlloyDB AI, seleziona una delle seguenti opzioni:

Configurare l'istanza AlloyDB Omni per eseguire query sui modelli remoti

AlloyDB Omni può eseguire query sui modelli di ML remoti utilizzando l'estensionegoogle_ml_integration.

Se vuoi eseguire query sui modelli Vertex AI, puoi configurare l'account di servizio AlloyDB Omni con Vertex AI prima di installare AlloyDB Omni.

Per configurare AlloyDB Omni in modo che esegua query sui modelli remoti, segui questi passaggi:

  1. Crea un account di servizio 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 in un secondo momento 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 sull'host accessibile e di proprietà dell'utente che eseguirà il contenitore AlloyDB Omni.

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

    gcloud services enable aiplatform.googleapis.com
    
  5. Aggiungi le autorizzazioni IAM (Identity and Access Management) di Vertex AI all'account di servizio e al progetto 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 dell'account di servizio che hai creato nel passaggio 1. È incluso il suffisso @PROJECT_ID.iam.gserviceaccount.com completo. Ad esempio, my-service@my-project.iam.gserviceaccount.com.

Configurare l'AI di AlloyDB per AlloyDB Omni

Per installare AlloyDB Omni e integrare AlloyDB AI, compila i seguenti passaggi come utente root:

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

  2. Se esiste già un contenitore con lo stesso nome, interrompilo 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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.
  3. Avvia un nuovo contenitore AlloyDB Omni montando la chiave al suo interno.

    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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.
    • NEW_PASSWORD: password assegnata all'utente postgres del nuovo contenitore dopo la sua creazione. Tieni presente che NEW_PASSWORD imposterà una nuova password solo quando DATA_DIR è una nuova posizione.
    • DATA_DIR: percorso della directory host in cui sono memorizzati i dati.
    • KEY_PATH: percorso del file della chiave dell'account di servizio.
    • HOST_PORT: porta TCP sulla macchina host su 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 della chiave 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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.
    • KEY_PATH: percorso dell'host per il file della chiave dell'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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.
  6. Riavviare il contenitore 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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.

Connettiti utilizzando psql in container

Per connetterti al server del database AlloyDB Omni utilizzando la sua copia con contenitore di psql, esegui il seguente 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: nome da assegnare al contenitore AlloyDB Omni nel registry dei contenitori della macchina host. Ad esempio, my-omni-1.

Verificare AlloyDB Omni con l'installazione di AlloyDB AI

Per verificare che l'installazione sia andata a buon fine e che 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