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 Anwendungen mit generativer KI erstellen.
Mit AlloyDB Omni mit AlloyDB AI können Sie Remote-ML-Modelle mit der Erweiterung google_ml_integration abfragen, um mit Onlinevorhersagen und Texteinbettungen zu arbeiten, die von ML-Modellen generiert wurden. AlloyDB Omni mit AlloyDB AI kann auch Vektoreinbettungen aus anderen Inhalten wie Bildern verarbeiten, z. B. wenn Sie die google_ml.predict_row-Schnittstelle verwenden und die Übersetzung selbst in der Abfrage vornehmen.
Google Cloud für die Abfrage von Remote-Modellen einrichten
Wenn Sie Vertex AI-Modelle abfragen möchten, müssen Sie vor der Installation von AlloyDB Omni ein AlloyDB Omni-Dienstkonto mit Vertex AI konfigurieren.
So richten Sie ein Dienstkonto zum Abfragen von Remote-Modellen ein:
Erstellen Sie ein Dienstkonto mitGoogle Cloud. In einem späteren Schritt gewähren Sie diesem Dienstkonto Berechtigungen für den Zugriff auf Vertex AI.
Erstellen Sie einen Dienstkontoschlüssel, speichern Sie ihn im JSON-Format in der Datei
private-key.jsonund laden Sie ihn herunter.Kopieren Sie den erstellten Dienstkontoschlüssel nach
KEY_PATH. Der Schlüsselpfad sollte ein Pfad auf Ihrem Host sein, auf den der Nutzer, der Ihren AlloyDB Omni-Container ausführt, zugreifen kann und der ihm gehört.Aktivieren Sie die Vertex AI API in Ihrem Google Cloud -Projekt.
gcloud services enable aiplatform.googleapis.com
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: ID Ihres Projekts in Google Cloud .SERVICE_ACCOUNT_ID: ID des Dienstkontos, das Sie im ersten Schritt erstellt haben. Dazu gehört das vollständige Suffix@PROJECT_ID.iam.gserviceaccount.com. Beispiel:my-service@my-project.iam.gserviceaccount.com.
AlloyDB AI für AlloyDB Omni konfigurieren
Führen Sie die folgenden Schritte als Root-Nutzer aus, um AlloyDB Omni zu installieren und AlloyDB AI einzubinden:
Führen Sie alle Schritte aus, die unter Google Cloud für die Abfrage von Remote-Modellen einrichten aufgeführt sind.
Wenn ein Container mit demselben Namen vorhanden ist, beenden und entfernen Sie ihn.
Docker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAMEDocker
docker stop CONTAINER_NAMEdocker rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMEPodman
podman stop CONTAINER_NAMEpodman rm CONTAINER_NAMEErsetzen Sie Folgendes:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.
Starten Sie einen neuen AlloyDB Omni-Container und binden Sie den Schlüssel in den Container ein.
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
Ersetzen Sie die folgenden Variablen:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.NEW_PASSWORD: Das Passwort, das dempostgres-Nutzer des neuen Containers nach der Erstellung zugewiesen wurde. Beachten Sie, dassNEW_PASSWORDnur dann ein neues Passwort festlegt, wennDATA_DIRein neuer Speicherort ist.DATA_DIR: Der Pfad des Hostverzeichnisses, in dem Ihre Daten gespeichert sind.KEY_PATH: Pfad für die Schlüsseldatei Ihres Dienstkontos.HOST_PORT: Der TCP-Port auf dem Hostcomputer, auf dem der Container seinen eigenen Port5432veröffentlichen soll. Wenn Sie auch den PostgreSQL-Standardport auf dem Hostcomputer verwenden möchten, geben Sie5432an.
Machen Sie die Schlüsseldatei für den Nutzer
postgresim AlloyDB Omni-Container lesbar.Docker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonDocker
docker exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsondocker exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonPodman
podman exec CONTAINER_NAME chown postgres /etc/postgresql/private-key.jsonpodman exec CONTAINER_NAME chmod 600 /etc/postgresql/private-key.jsonErsetzen Sie die folgenden Variablen:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.KEY_PATH: Hostpfad für die Schlüsseldatei Ihres Dienstkontos.
Aktualisieren Sie AlloyDB Omni, indem Sie die folgenden Konfigurationsoptionen hinzufügen.
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"
Ersetzen Sie die folgenden Variablen:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.
Starten Sie den AlloyDB Omni-Container neu.
Docker
docker restart CONTAINER_NAME
Docker
docker restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Podman
podman restart CONTAINER_NAME
Ersetzen Sie die folgende Variable:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.
Verbindung über den containerisierten psql herstellen
Führen Sie den folgenden Befehl aus, um eine Verbindung zum AlloyDB Omni-Datenbankserver mit seiner eigenen containerisierten Kopie von psql herzustellen:
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
Ersetzen Sie die folgende Variable:
CONTAINER_NAME: Der Name, der dem AlloyDB Omni-Container in der Container Registry Ihres Hostcomputers zugewiesen werden soll. Beispiel:my-omni-1.
AlloyDB Omni mit AlloyDB AI-Installation prüfen
Geben Sie Folgendes ein, um zu prüfen, ob die Installation erfolgreich war und die Modellvorhersage verwendet wird:
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 generiert der Aufruf embedding() Einbettungen für den Eingabetext AlloyDB AI.
array_dims gibt die Dimensionen des von embedding() zurückgegebenen Arrays zurück.
Da das Modell text-embedding-005 eine Ausgabe mit 768 Dimensionen zurückgibt, ist die Ausgabe [768].
Nächste Schritte
- AlloyDB Omni ausführen und eine Verbindung dazu herstellen.
- AlloyDB Omni verwalten.
- Generative KI-Anwendungen mit AlloyDB AI erstellen
- Remote-KI-Modelle registrieren und aufrufen