Auf dieser Seite wird beschrieben, wie Sie Cloud SQL in Vertex AI einbinden. Mit dieser Einbindung können Sie Large Language Models (LLMs), die in Vertex AI gehostet werden, auf eine Cloud SQL for PostgreSQL-Datenbank Version 12 und höher anwenden.
Durch die Einbindung von Cloud SQL in Vertex AI können Sie die semantischen und prädiktiven ML-Modelle (maschinelles Lernen) auf Ihre Daten anwenden. Diese Einbindung erweitert die PostgreSQL-Syntax um zwei Funktionen zum Abfragen von Modellen:
- Vorhersagen aufrufen, um ein Modell mithilfe von SQL innerhalb einer Transaktion aufzurufen.
- Einbettungen generieren, damit ein Einbettungsmodell Text-Prompts in numerische Vektoren übersetzt. Anschließend können Sie diese Vektoreinbettungen als Eingaben auf
pgvector
-Funktionen anwenden. Dazu gehören Methoden zum Vergleichen und Sortieren von Textbeispielen anhand ihrer relativen semantischen Entfernung.
Dadurch können Sie Echtzeitvorhersagen treffen und wertvolle Informationen direkt in der Datenbank gewinnen, wodurch Sie Ihre Workflows optimieren und Ihre Entscheidungsfähigkeiten verbessern können.
Weitere Informationen zu Vertex AI finden Sie unter Einführung in Vertex AI.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Aktivieren Sie die erforderlichen Google Cloud APIs.
Console
- Rufen Sie die Seite APIs & Dienste auf.
- Wählen Sie Ihr Projekt aus der Projektliste aus.
- Wenn die API-Bibliothek nicht geöffnet ist, wählen Sie im Navigationsmenü die Option Bibliothek aus.
Klicken Sie auf die APIs, die Sie aktivieren möchten. Aktivieren Sie für dieses Verfahren die Cloud SQL Admin API und die Vertex AI API.
- Nachdem Sie die einzelnen APIs ausgewählt haben, klicken Sie auf Aktivieren.
gcloud
- Öffnen Sie Cloud Shell, um direkt über den Browser über die Befehlszeile auf Ihre Google Cloud-Ressourcen zuzugreifen.
- Aktivieren Sie die erforderlichen APIs mit dem Befehl
gcloud services enable
:gcloud services enable sqladmin.googleapis.com \ enable aiplatform.googleapis.com
Mit diesem Befehl werden die folgenden APIs aktiviert:
- Cloud SQL Admin API
- Vertex AI API
- Gewähren Sie dem Cloud SQL-Dienstkonto IAM-Berechtigungen (Identity and Access Management) für den Zugriff auf Vertex AI.
gcloud
Verwenden Sie den Befehlgcloud projects add-iam-policy-binding
, um dem Cloud SQL-Dienstkonto für das Projekt, in dem sich die Cloud SQL-Instanz befindet, Vertex AI-Berechtigungen hinzuzufügen: Ersetzen Sie die folgenden Werte:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/aiplatform.user"
- PROJECT_ID: ID des Projekts mit dem Vertex AI-Endpunkt. Cloud SQL verwendet diesen Endpunkt, um das in Vertex AI gehostete LLM zuzugreifen.
SERVICE_ACCOUNT_EMAIL: die E-Mail-Adresse des Cloud SQL-Dienstkontos.
Verwenden Sie zum Ermitteln dieser E-Mail-Adresse den Befehl
gcloud sql instances describe INSTANCE_NAME
und ersetzen Sie INSTANCE_NAME durch den Namen der Cloud SQL-Instanz. Der Wert neben dem ParameterserviceAccountEmailAddress
ist die E-Mail-Adresse.
Datenbankeinbindung mit Vertex AI aktivieren
Führen Sie folgende Schritte aus, um die Datenbankeinbindung in Vertex AI zu aktivieren:
- Erstellen oder aktualisieren Sie eine Cloud SQL-Instanz, damit die Instanz in Vertex AI eingebunden werden kann.
gcloud
Die Instanz erstellen
Verwenden Sie den Befehl
gcloud sql instances create
, um die Cloud SQL-Instanz zu erstellen.gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --region=REGION_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
Ersetzen Sie die folgenden Werte:
- INSTANCE_NAME: Name der Instanz
- DATABASE_VERSION: Datenbankversion für die Instanz (z. B.
POSTGRES_13
) - MACHINE_TYPE: der gewünschte Maschinentyp für die Instanz
- REGION_NAME: Name der Region für die Instanz
Instanz aktualisieren
Verwenden Sie zum Aktualisieren der Instanz den Befehl
gcloud sql instances patch
.gcloud sql instances patch INSTANCE_NAME \ --enable-google-ml-integration \ --database-flags cloudsql.enable_google_ml_integration=on
Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.
.REST Version 1
Die Instanz erstellen
Verwenden Sie dieses Beispiel, um die Instanz zu erstellen. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, finden Sie unter Instanzeinstellungen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: Name der Instanz
- REGION_NAME: Name der Region für die Instanz
- DATABASE_VERSION: Enum-String der Datenbankversion (z. B.
POSTGRES_13
) - PASSWORD: Passwort für den
root
-Nutzer - MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
- EDITION_TYPE: Ihre Cloud SQL-Version.
Darüber hinaus müssen Sie in die Anfrage das Objekt enableGoogleMlIntegration aufnehmen. Legen Sie nach Bedarf die folgenden Parameter fest:
enableGoogleMlIntegration
: Wenn dieser Parameter auftrue
gesetzt ist, können Cloud SQL-Instanzen eine Verbindung zu Vertex AI herstellen, um Anfragen für Echtzeitvorhersagen und Statistiken an die KI zu übergeben.cloudsql.enable_google_ml_integration
: Wenn dieser Parameter aufon
gesetzt ist, kann Cloud SQL in Vertex AI eingebunden werden.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Instanz aktualisieren
Verwenden Sie dieses Beispiel, um die Instanz zu aktualisieren. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances.patch.
Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: Name der Instanz
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Die Instanz erstellen
Verwenden Sie dieses Beispiel, um die Instanz zu erstellen. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite Instanzen: insert. Informationen zu den Instanzeinstellungen, einschließlich der gültigen Werte für die Region, finden Sie unter Instanzeinstellungen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: Name der Instanz
- REGION_NAME: Name der Region für die Instanz
- DATABASE_VERSION: Enum-String der Datenbankversion (z. B.
POSTGRES_13
) - PASSWORD: Passwort für den
root
-Nutzer - MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
- EDITION_TYPE: Ihre Cloud SQL-Version.
Darüber hinaus müssen Sie in die Anfrage das Objekt enableGoogleMlIntegration aufnehmen. Legen Sie nach Bedarf die folgenden Parameter fest:
enableGoogleMlIntegration
: Wenn dieser Parameter auftrue
gesetzt ist, können Cloud SQL-Instanzen eine Verbindung zu Vertex AI herstellen, um Anfragen für Echtzeitvorhersagen und Statistiken an die KI zu übergeben.cloudsql.enable_google_ml_integration
: Wenn dieser Parameter aufon
gesetzt ist, kann Cloud SQL in Vertex AI eingebunden werden.
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_NAME", "region": "REGION_NAME", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "enableGoogleMlIntegration": "true" | "false" "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" | "off" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2019-09-25T22:19:33.735Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Instanz aktualisieren
Verwenden Sie dieses Beispiel, um die Instanz zu aktualisieren. Eine vollständige Liste der Parameter für diesen Aufruf finden Sie auf der Seite instances.patch.
Wenn diese Aktualisierung einen Wert ändert, der einen Neustart notwendig macht, werden Sie aufgefordert, mit der Änderung fortzufahren oder sie abzubrechen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die ID oder Projektnummer des Google Cloud-Projekts, das die Instanz enthält
- INSTANCE_NAME: Name der Instanz
HTTP-Methode und URL:
PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
JSON-Text anfordern:
{ "settings": { "enableGoogleMlIntegration": true, "databaseFlags": { "name": "cloudsql.enable_google_ml_integration", "value": "on" } } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "operationType": "UPDATE", "name": "OPERATION_ID", "targetId": "INSTANCE_NAME", "selfLink": "https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
- Installieren Sie die Erweiterung
google_ml_integration
in einer Datenbank der primären Cloud SQL-Instanz. Diese Datenbank enthält Daten, für die Sie Vorhersagen erhalten möchten.- Stellen Sie eine Verbindung von einem
psql
-Client zur primären Instanz her, wie unter Verbindung über einen psql-Client herstellen beschrieben. - Stellen Sie über die Eingabeaufforderung
psql
eine Verbindung zur Datenbank her:\c DB_NAME
Ersetzen Sie
DB_NAME
durch den Namen der Datenbank, in der Sie die Erweiterung installieren möchten. - Installieren Sie die Erweiterung:
CREATE EXTENSION IF NOT EXISTS google_ml_integration CASCADE;
- Stellen Sie eine Verbindung von einem
Fehlerbehebung
Dieser Abschnitt enthält Informationen zu Problemen bei der Einbindung von Cloud SQL in Vertex AI sowie Schritte zur Fehlerbehebung.
Problem | Fehlerbehebung |
---|---|
Fehlermeldung: Google ML integration API is supported only on Postgres version 12 or above. |
Zum Aktivieren der Vertex AI-Einbindung in Cloud SQL benötigen Sie die Cloud SQL for PostgreSQL-Datenbank Version 12 oder höher. Informationen zum Upgrade der Datenbank auf diese Version finden Sie unter Direktes Upgrade der Datenbank-Hauptversion durchführen. |
Fehlermeldung: Google ML Integration API is not supported on shared core instance. Please upsize your machine type. |
Wenn Sie für den Maschinentyp Ihrer Instanz einen freigegebenen Kern ausgewählt haben, können Sie die Vertex AI-Einbindung nicht in Cloud SQL aktivieren. Führen Sie ein Upgrade Ihres Maschinentyps auf einen dedizierten Kern durch. Weitere Informationen finden Sie unter Maschinentyp. |
Fehlermeldung: Google ML Integration is unsupported for this maintenance version. Please follow https://cloud.google.com/sql/docs/postgres/self-service-maintenance to update the maintenance version of the instance. |
Zum Aktivieren der Vertex AI-Einbindung in Cloud SQL muss die Wartungsversion Ihrer Instanz R20240130 oder höher sein. Informationen zum Upgrade Ihrer Instanz auf diese Version finden Sie unter Selfservice-Wartung. |
Fehlermeldung: Cannot invoke ml_predict_row if 'cloudsql.enable_google_ml_integration' is off. |
Das Datenbank-Flag cloudsql.enable_google_ml_integration ist deaktiviert. Cloud SQL kann nicht in Vertex AI eingebunden werden.Verwenden Sie den Befehl gcloud sql instances patch , um dieses Flag zu aktivieren:gcloud sql instances patch INSTANCE_NAME --database-flags cloudsql.enable_google_ml_integration=on Ersetzen Sie INSTANCE_NAME durch den Namen der primären Cloud SQL-Instanz. |
Fehlermeldung: Failed to connect to remote host: Connection refused. |
Die Einbindung zwischen Cloud SQL und Vertex AI ist nicht aktiviert. Verwenden Sie zum Aktivieren dieser Einbindung den gcloud sql instances patch -Befehl:gcloud sql instances patch INSTANCE_NAME Ersetzen Sie INSTANCE_NAME durch den Namen der primären Cloud SQL-Instanz. |
Fehlermeldung: Vertex AI API has not been used in project PROJECT_ID before or it is disabled. Enable it by visiting /apis/api/aiplatform.googleapis.com/overview?project=PROJECT_ID then retry. |
Die Vertex AI-API ist nicht aktiviert. Weitere Informationen zum Aktivieren dieser API finden Sie unter Datenbankeinbindung mit Vertex AI aktivieren. |
Fehlermeldung: Permission 'aiplatform.endpoints.predict' denied on resource. |
Vertex AI-Berechtigungen werden dem Cloud SQL-Dienstkonto für das Projekt, in dem sich die Cloud SQL-Instanz befindet, nicht hinzugefügt. Weitere Informationen zum Hinzufügen dieser Berechtigungen zum Dienstkonto finden Sie unter Datenbankeinbindung mit Vertex AI aktivieren. |
Fehlermeldung: Publisher Model `projects/PROJECT_ID/locations/REGION_NAME/publishers/google/models/MODEL_NAME` not found. |
Das ML-Modell oder das LLM sind in Vertex AI nicht vorhanden. |
Fehlermeldung: Resource exhausted: grpc: received message larger than max. |
Die Größe der Anfrage, die Cloud SQL an Vertex AI übergibt, überschreitet das gRPC-Limit von 4 MB pro Anfrage. |
Fehlermeldung: Cloud SQL attempts to send a request to Vertex AI. However, the instance is in the %s region, but the Vertex AI endpoint is in the %s region. Make sure the instance and endpoint are in the same region. |
Cloud SQL versucht, eine Anfrage an Vertex AI zu senden. Die Instanz befindet sich jedoch in einer, der Vertex AI-Endpunkt in einer anderen Region. Um dieses Problem zu beheben, müssen sich die Instanz und der Endpunkt in derselben Region befinden. |
Fehlermeldung: The Vertex AI endpoint isn't formatted properly. |
Der Vertex AI-Endpunkt ist nicht richtig formatiert. Weitere Informationen finden Sie unter Private Endpunkte für Onlinevorhersagen verwenden. |
Fehlermeldung: Quota exceeded for aiplatform.googleapis.com/online_prediction_requests_per_base_model with base model: textembedding-gecko. |
Die Anzahl der Anfragen, die Cloud SQL an Vertex AI übergibt, überschreitet das Limit von 1.500 Anfragen pro Minute, Region, Modell und Projekt. |