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.

In base a dove vuoi installare AlloyDB Omni con AlloyDB AI, seleziona una delle seguenti opzioni:

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

Puoi eseguire query sui modelli remoti utilizzando la gestione degli endpoint dei modelli abilitando googleMLExtension nel manifest del cluster di database.

Se vuoi eseguire query sui modelli Vertex AI, devi configurare l'account di servizio AlloyDB con Vertex AI, creare un secret Kubernetes utilizzando la chiave e impostare il secret Kubernetes nel manifest del cluster di database.

Aggiungi le autorizzazioni Vertex AI al account di servizio AlloyDB

Per configurare AlloyDB Omni in modo da eseguire query sui modelli Vertex AI remoti:

  1. Crea un service account con Google Cloud.

  2. Crea una chiave dell'account di servizio e salvala in formato JSON nel file private-key.json e scaricala.

  3. Archivia la chiave in una posizione permanente del file system. Si trova in questa posizione per l'intera durata del server AlloyDB Omni.

    Prendi nota della sua posizione nel file system, ti servirà per i passaggi successivi.

  4. 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 service account creato nel passaggio precedente. Ciò include il suffisso @PROJECT_ID.iam.gserviceaccount.com completo, ad esempio my-service@my-project.iam.gserviceaccount.com.

Crea un secret Kubernetes utilizzando la chiave dell'account di servizio

Per creare un secret Kubernetes basato sulla chiave del account di servizio scaricata nei passaggi precedenti, esegui questo comando:

kubectl create secret generic SECRET_NAME \
--from-file=PATH_TO_SERVICE_ACCOUNT_KEY/private-key.json \
-n NAMESPACE

Sostituisci quanto segue:

  • SECRET_NAME: il nome del secret utilizzato quando crei un manifest DBCluster per consentire ad AlloyDB Omni di accedere alle funzionalità di AlloyDB AI. Ad esempio: vertex-ai-key-alloydb.

  • PATH_TO_SERVICE_ACCOUNT_KEY: il percorso della posizione in cui hai scaricato la chiave del account di servizio private-key.json.

  • NAMESPACE: lo spazio dei nomi del cluster di database.

Installa l'operatore AlloyDB Omni

Installa l'operatore AlloyDB Omni seguendo i passaggi elencati in Installa l'operatore AlloyDB Omni.

Crea un cluster di database con AlloyDB AI

  1. Crea un cluster di database con AlloyDB AI.

    Quando imposti enabled su true nel campo googleMLExtension, puoi eseguire query sui modelli remoti. Imposta vertexAIKeyRef sul secret Kubernetes se vuoi eseguire query sui modelli Vertex AI.

    apiVersion: v1
    kind: Secret
    metadata:
      name: db-pw-DB_CLUSTER_NAME
    type: Opaque
    data:
      DB_CLUSTER_NAME: "ENCODED_PASSWORD"
    ---
    apiVersion: alloydbomni.dbadmin.goog/v1
    kind: DBCluster
    metadata:
      name: DB_CLUSTER_NAME
    spec:
    databaseVersion: "15.7.1"
    primarySpec:
        adminUser:
          passwordRef:
            name: db-pw-DB_CLUSTER_NAME
        features:
          googleMLExtension:
            enabled: true
            config:
              vertexAIKeyRef: VERTEX_AI_SECRET_NAME
              vertexAIRegion: VERTEX_AI_REGION
        resources:
          cpu: CPU_COUNT
          memory: MEMORY_SIZE
          disks:
          - name: DataDisk
            size: DISK_SIZE
            storageClass: standard
    

    Sostituisci quanto segue:

    • DB_CLUSTER_NAME: il nome di questo cluster di database, ad esempio my-db-cluster.

    • VERTEX_AI_SECRET_NAME (Facoltativo): il secret Vertex AI che hai creato nei passaggi precedenti. Devi impostare questa opzione se vuoi chiamare i modelli Vertex AI.

    • VERTEX_AI_REGION (facoltativo): l'endpoint regionale di Vertex AI a cui vuoi inviare la richiesta, ad esempio us-west4. Il valore predefinito è us-central1.

    • ENCODED_PASSWORD: la password di accesso al database per il ruolo utente postgres predefinito, codificata come stringa base64, ad esempio Q2hhbmdlTWUxMjM= per ChangeMe123.

    • CPU_COUNT: il numero di CPU disponibili per ogni istanza di database in questo cluster di database.

    • MEMORY_SIZE: la quantità di memoria per istanza di database di questo cluster di database. Ti consigliamo di impostare questo valore su 8 gigabyte per CPU. Ad esempio, se hai impostato cpu su 2 in precedenza in questo manifest, ti consigliamo di impostare memory su 16Gi.

    • DISK_SIZE: le dimensioni del disco per istanza di database, ad esempio 10Gi.

  2. Applica il manifest.

    kubectl apply -f DB_CLUSTER_YAML

    Sostituisci quanto segue:

    • DB_CLUSTER_YAML: il nome di questo file manifest del cluster di database, ad esempio alloydb-omni-db-cluster.yaml.

Connessione tramite psql preinstallato

Puoi creare una connessione di test utilizzando un client psql già installato sul pod che esegue il database.

Per farlo, esegui questi comandi:

export DBPOD=`kubectl get pod --selector=alloydbomni.internal.dbadmin.goog/dbcluster=DB_CLUSTER_NAME,alloydbomni.internal.dbadmin.goog/task-type=database -o jsonpath='{.items[0].metadata.name}'`
kubectl exec -ti $DBPOD -c database -- psql -h localhost -U postgres

Sostituisci DB_CLUSTER_NAME con il nome del cluster di database. È lo stesso nome del cluster di database che hai dichiarato quando l'hai creato.

Dopo aver inserito il comando, il server di database ti chiede una password. Inserisci la password di cui hai fornito la versione con codifica Base64 come secret Kubernetes durante la creazione del cluster di database. Ad esempio, se hai creato il cluster di database con un secret Q2hhbmdlTWUxMjM=, la password di accesso da utilizzare qui è ChangeMe123.

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