AlloyDB AI in AlloyDB Omni installieren

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite erfahren Sie, wie Sie AlloyDB Omni installieren und AlloyDB AI einbinden.

AlloyDB AI ist eine Reihe von Funktionen, die in AlloyDB Omni enthalten sind und mit denen Sie generative KI-Anwendungen für Unternehmen erstellen können. Weitere Informationen zu den KI/ML-Funktionen von AlloyDB finden Sie unter Generative KI-Anwendungen erstellen.

Mit AlloyDB Omni mit AlloyDB AI können Sie Remote-ML-Modelle abfragen, um mit Onlinevorhersagen und Texteinbettungen zu arbeiten, die von ML-Modellen generiert werden. AlloyDB Omni mit AlloyDB AI kann auch Vektoreinbettungen aus anderen Inhalten wie z. B. einem Bild verarbeiten, wenn Sie die google_ml.predict_row-Schnittstelle verwenden und die Übersetzung selbst in der Anfrage vornehmen.

Wählen Sie eine der folgenden Optionen aus, je nachdem, wo Sie AlloyDB Omni mit AlloyDB AI installieren möchten:

AlloyDB Omni-Instanz für das Abfragen von Remote-Modellen konfigurieren

Sie können Remote-Modelle mit der Modellendpunktverwaltung abfragen, indem Sie googleMLExtension im Manifest Ihres Datenbankclusters aktivieren.

Wenn Sie optional Vertex AI-Modelle abfragen möchten, müssen Sie das AlloyDB-Dienstkonto mit Vertex AI konfigurieren, ein Kubernetes-Secret mit dem Schlüssel erstellen und das Kubernetes-Secret im Datenbankclustermanifest festlegen.

Vertex AI-Berechtigungen dem AlloyDB-Dienstkonto hinzufügen

So konfigurieren Sie AlloyDB Omni für die Abfrage von Remote-Vertex AI-Modellen:

  1. Erstellen Sie ein Dienstkonto mitGoogle Cloud.

  2. Erstellen Sie einen Dienstkontoschlüssel, speichern Sie ihn im JSON-Format in der Datei private-key.json und laden Sie ihn herunter.

  3. Speichern Sie den Schlüssel an einem permanenten Speicherort in Ihrem Dateisystem. Sie befindet sich während der gesamten Lebensdauer Ihres AlloyDB Omni-Servers an diesem Speicherort.

    Notieren Sie sich den Speicherort im Dateisystem, da Sie ihn für die folgenden Schritte benötigen.

  4. Fügen Sie dem entsprechenden Projekt und Dienstkonto Vertex AI-IAM-Berechtigungen (Identity and Access Management) hinzu.

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SERVICE_ACCOUNT_ID" \
    --role="roles/aiplatform.user"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID Ihres Google Cloud Projekts.

    • SERVICE_ACCOUNT_ID: Die ID des Dienstkontos, das Sie im vorherigen Schritt erstellt haben. Dazu gehört das vollständige @PROJECT_ID.iam.gserviceaccount.com-Suffix, z. B. my-service@my-project.iam.gserviceaccount.com.

Kubernetes-Secret mit dem Dienstkontoschlüssel erstellen

Führen Sie den folgenden Befehl aus, um ein Kubernetes-Secret auf Grundlage des in den vorherigen Schritten heruntergeladenen Dienstkontoschlüssels zu erstellen:

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

Ersetzen Sie Folgendes:

  • SECRET_NAME: Der Name des Secrets, das beim Erstellen eines DBCluster-Manifests verwendet wird, damit AlloyDB Omni auf AlloyDB AI-Funktionen zugreifen kann. Beispiel: vertex-ai-key-alloydb

  • PATH_TO_SERVICE_ACCOUNT_KEY: Der Pfad zum Speicherort, an dem Sie den private-key.json-Dienstkontoschlüssel heruntergeladen haben.

  • NAMESPACE: der Namespace des Datenbankclusters.

AlloyDB Omni-Operator installieren

Installieren Sie den AlloyDB Omni-Operator anhand der Schritte unter AlloyDB Omni-Operator installieren.

Datenbankcluster mit AlloyDB AI erstellen

  1. Erstellen Sie einen Datenbankcluster mit AlloyDB AI.

    Wenn Sie enabled im Feld googleMLExtension auf true setzen, können Sie Remote-Modelle abfragen. Legen Sie vertexAIKeyRef auf das Kubernetes-Secret fest, wenn Sie Vertex AI-Modelle abfragen möchten.

    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: "16.8.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
    

    Ersetzen Sie Folgendes:

    • DB_CLUSTER_NAME: Der Name dieses Datenbankclusters, z. B. my-db-cluster.

    • VERTEX_AI_SECRET_NAME (optional): Das Vertex AI-Secret, das Sie in den vorherigen Schritten erstellt haben. Sie müssen diese Option festlegen, wenn Sie Vertex AI-Modelle aufrufen möchten.

    • VERTEX_AI_REGION (optional): Der regionale Vertex AI-Endpunkt, an den Sie Ihre Anfrage senden möchten, z. B. us-west4. Der Standardwert ist us-central1.

    • ENCODED_PASSWORD: Das Datenbankanmeldepasswort für die Standardnutzerrolle postgres, codiert als Base64-String, z. B. Q2hhbmdlTWUxMjM= für ChangeMe123.

    • CPU_COUNT: Die Anzahl der CPUs, die für jede Datenbankinstanz in diesem Datenbankcluster verfügbar sind.

    • MEMORY_SIZE: die Menge an Arbeitsspeicher pro Datenbankinstanz dieses Datenbankclusters. Wir empfehlen, diesen Wert auf 8 GB pro CPU festzulegen. Wenn Sie beispielsweise cpu weiter oben in diesem Manifest auf 2 gesetzt haben, empfehlen wir, memory auf 16Gi zu setzen.

    • DISK_SIZE: die Laufwerksgröße pro Datenbankinstanz, z. B. 10Gi.

  2. Wenden Sie das Manifest an.

    kubectl apply -f DB_CLUSTER_YAML

    Ersetzen Sie Folgendes:

    • DB_CLUSTER_YAML: Der Name dieser Manifestdatei für den Datenbankcluster, z. B. alloydb-omni-db-cluster.yaml.

Verbindung über das vorinstallierte psql herstellen

Sie können eine Testverbindung mit einem psql-Client herstellen, der bereits auf dem Pod installiert ist, auf dem die Datenbank ausgeführt wird.

Führen Sie dazu die folgenden Befehle aus:

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

Ersetzen Sie DB_CLUSTER_NAME durch den Namen Ihres Datenbankclusters. Das ist derselbe Datenbankclustername, den Sie beim Erstellen des Clusters angegeben haben.

Nachdem Sie den Befehl eingegeben haben, werden Sie vom Datenbankserver zur Eingabe eines Passworts aufgefordert. Geben Sie das Passwort ein, dessen base64-codierte Version Sie beim Erstellen des Datenbankclusters als Kubernetes-Secret angegeben haben. Wenn Sie den Datenbankcluster beispielsweise mit einem Secret von Q2hhbmdlTWUxMjM= erstellt haben, ist das hier zu verwendende Anmeldepasswort ChangeMe123.

AlloyDB Omni mit AlloyDB AI-Installation prüfen

Geben Sie Folgendes ein, um zu prüfen, ob die Installation erfolgreich war und Modellvorhersagen verwendet werden:

CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;

SELECT array_dims(embedding('text-embedding-005', 'AlloyDB AI')::real[]);

Die Ausgabe sieht dann ungefähr so aus:

array_dims
------------
[1:768]
(1 row) 

In der vorherigen Abfrage werden mit dem embedding()-Aufruf Einbettungen für den Eingabetext AlloyDB AI generiert. array_dims gibt die Dimensionen des Arrays zurück, das von embedding() zurückgegeben wird. Da das text-embedding-005-Modell eine Ausgabe mit 768 Dimensionen zurückgibt, ist die Ausgabe [768].

Nächste Schritte