Installa AlloyDB AI in AlloyDB Omni

Questa pagina mostra come installare AlloyDB Omni e integrare AlloyDB AI al suo interno.

AlloyDB AI è una suite di funzionalità incluse in AlloyDB Omni che ti consente di creare applicazioni aziendali di IA generativa. Per ulteriori informazioni sulla funzionalità di 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

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

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

Aggiungi le autorizzazioni Vertex AI all'account di servizio AlloyDB

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

  1. Crea un account di servizio con Google Cloud.

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

  3. Memorizza la chiave in una posizione permanente sul file system. Rimane in questa posizione per tutta la durata del server AlloyDB Omni.

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

  4. 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 creato nel passaggio precedente. È incluso 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 dell'account di servizio scaricata nei passaggi precedenti, esegui il seguente 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 segreto 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 dell'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 descritti in Installare l'operatore AlloyDB Omni.

Crea un cluster di database con l'IA di AlloyDB

  1. Crea un cluster di database con l'IA di AlloyDB.

    Se imposti enabled su true nel campo googleMLExtension, puoi eseguire query sui modelli remoti. Imposta vertexAIKeyRef sul segreto 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.0"
      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 segreto 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 postgres utente 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 del file manifest del cluster di database, ad esempio alloydb-omni-db-cluster.yaml.

Eseguire la connessione utilizzando il client psql preinstallato

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

Per farlo, esegui i seguenti 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 tuo cluster di database. Si tratta dello stesso nome del cluster di database che hai dichiarato quando lo 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 quando hai creato il cluster di database. Ad esempio, se hai creato il cluster di database con un segreto Q2hhbmdlTWUxMjM=, la password di accesso da utilizzare qui è ChangeMe123.

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