Auf dieser Seite wird beschrieben, wie Sie Vorhersagen aufrufen oder Einbettungen mit einem Modell generieren und den Modellendpunkt dann bei der Modellendpunktverwaltung registrieren.
Weitere Informationen zur Funktion google_ml.create_model()
finden Sie in der Referenz zur Verwaltung von Modellendpunkten.
Hinweise
- Wenn für Ihren Modellendpunkt eine Authentifizierung erforderlich ist, aktivieren Sie die Erweiterung
google_ml_integration
.
- Richten Sie die Authentifizierung entsprechend dem Modellanbieter ein.
- Achten Sie darauf, dass Sie den
postgres
-Standardnutzernamen verwenden, um auf Ihre Datenbank zuzugreifen.
Erweiterung aktivieren
Legen Sie das Datenbank-Flag
google_ml_integration.enable_model_support
für Ihre Instanz aufon
fest. Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flags konfigurieren.Verbindung zur primären Instanz herstellen, entweder über einen
psql
-Client oder über Cloud SQL Studio.Führen Sie den folgenden Befehl aus, um sicherzustellen, dass die
google_ml_integration
-Erweiterung auf Version 1.4.2 aktualisiert wird:ALTER EXTENSION google_ml_integration UPDATE TO '1.4.2'
Fügen Sie die Erweiterung
google_ml_integration
Version 1.4.2 mitpsql
hinzu:CREATE EXTENSION google_ml_integration VERSION '1.4.2';
Optional: Gewähren Sie einem PostgreSQL-Nutzer, der kein Super Admin ist, die Berechtigung zum Verwalten von Modellmetadaten:
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA google_ml TO NON_SUPER_USER;
Ersetzen Sie
NON_SUPER_USER
durch den PostgreSQL-Nutzernamen, der kein Superuser ist.
Authentifizierung einrichten
In den folgenden Abschnitten wird beschrieben, wie Sie die Authentifizierung einrichten, bevor Sie einen Vertex AI-Modellendpunkt oder Modellendpunkte hinzufügen, die in Trusted Cloud by S3NSgehostet werden.
Authentifizierung für Vertex AI einrichten
Wenn Sie die Google Vertex AI-Modellendpunkte verwenden möchten, müssen Sie dem IAM-basierten Cloud SQL-Dienstkonto, das Sie zum Herstellen einer Verbindung zur Datenbank verwenden, Vertex AI-Berechtigungen hinzufügen. Weitere Informationen zur Einbindung in Vertex AI finden Sie unter Cloud SQL in Vertex AI einbinden.
Authentifizierung für benutzerdefinierte gehostete Modelle einrichten
In diesem Abschnitt wird beschrieben, wie Sie die Authentifizierung einrichten, wenn Sie Secret Manager verwenden. Für alle Modelle mit Ausnahme von Vertex AI-Modellendpunkten können Sie Ihre API-Schlüssel oder Bearer-Tokens in Secret Manager speichern.
Wenn Ihr Modellendpunkt die Authentifizierung über Secret Manager nicht verarbeitet, ist dieser Abschnitt optional. Wenn Ihr Modellendpunkt beispielsweise HTTP-Header verwendet, um Authentifizierungsinformationen zu übergeben, oder überhaupt keine Authentifizierung verwendet, müssen Sie die Schritte in diesem Abschnitt nicht ausführen.
So erstellen und verwenden Sie einen API-Schlüssel oder ein Bearer-Token:
Erstellen Sie ein Secret in Secret Manager. Weitere Informationen finden Sie unter Secret erstellen und auf die Secret-Version zugreifen.
Der Secret-Name und der Secret-Pfad werden in der SQL-Funktion
google_ml.create_sm_secret()
verwendet.Gewähren Sie der Cloud SQL-Instanz Berechtigungen für den Zugriff auf das Secret.
gcloud secrets add-iam-policy-binding SECRET_ID \ --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role="roles/secretmanager.secretAccessor"
Ersetzen Sie Folgendes:
SECRET_ID
: die Secret-ID im Secret Manager.SERVICE_ACCOUNT_EMAIL
: die E-Mail-Adresse des IAM-basierten Cloud SQL-Dienstkontos. Verwenden Sie zum Ermitteln dieser E-Mail-Adresse den Befehlgcloud sql instances describe INSTANCE_NAME
und ersetzen Sie INSTANCE_NAME durch den Namen der Instanz. Der Wert neben dem ParameterserviceAccountEmailAddress
ist die E-Mail-Adresse.
Texteinbettungsmodelle mit integrierter Unterstützung
In diesem Abschnitt wird beschrieben, wie Sie Modellendpunkte für die Modellendpunktverwaltung registrieren.
Vertex AI-Modelle für Einbettungen
Die Verwaltung von Modellendpunkten bietet integrierte Unterstützung für alle Versionen der Modelle text-embedding-gecko
, text-embedding
und gemini-embedding
von Vertex AI. Verwenden Sie den qualifizierten Namen, um die Modellversion auf textembedding-gecko@001
oder textembedding-gecko@002
festzulegen.
Da Vertex AI-Einbettungsmodell-Endpunkt-IDs standardmäßig von der Modellendpunktverwaltung unterstützt werden, können Sie sie direkt als Modell-ID verwenden. Für diese Modelle richtet die Erweiterung automatisch Standardtransformationsfunktionen ein.
Die Cloud SQL-Instanz und das Vertex AI-Modell, das Sie abfragen, müssen sich in derselben Region befinden.
Rufen Sie die Funktion create_model
auf, um den Modellendpunkt textembedding-gecko@002
zu registrieren:
CALL
google_ml.create_model(
model_id => 'textembedding-gecko@002',
model_provider => 'google',
model_qualified_name => 'textembedding-gecko@002',
model_type => 'text_embedding',
model_auth_type => 'cloudsql_service_agent_iam');
Benutzerdefiniert gehostete Texteinbettungsmodelle
In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Modellendpunkte registrieren, die in Netzwerken innerhalb von Trusted Cloud by S3NSgehostet werden.
Wenn Sie benutzerdefinierte Endpunkte für selbst gehostete Modelle für Texteinbettungen hinzufügen, müssen Sie Transformationsfunktionen und optional benutzerdefinierte HTTP-Header erstellen. Wenn Sie hingegen benutzerdefinierte, selbst gehostete generische Modellendpunkte hinzufügen, müssen Sie optional benutzerdefinierte HTTP-Header generieren und die Modellanfrage-URL festlegen.
Im folgenden Beispiel wird der von Cymbal gehostete Endpunkt des custom-embedding-model
-Modells für Texteinbettung hinzugefügt, der in Trusted Cloud by S3NSgehostet wird. Mit den Transformationsfunktionen cymbal_text_input_transform
und cymbal_text_output_transform
wird das Ein- und Ausgabeformat des Modells in das Ein- und Ausgabeformat der Vorhersagefunktion transformiert.
So registrieren Sie benutzerdefinierte Endpunkte für selbst gehostete Modelle für Texteinbettungen:
Rufen Sie das im Secret Manager gespeicherte Secret auf:
CALL google_ml.create_sm_secret( secret_id => 'SECRET_ID', secret_path => 'projects/project-id/secrets/SECRET_MANAGER_SECRET_ID/versions/VERSION_NUMBER');
Ersetzen Sie Folgendes:
SECRET_ID
: Die Secret-ID, die Sie festgelegt haben und die später bei der Registrierung eines Modellendpunkts verwendet wird, z. B.key1
.SECRET_MANAGER_SECRET_ID
: Die Secret-ID, die beim Erstellen des Secrets im Secret Manager festgelegt wurde.PROJECT_ID
: die ID Ihres Trusted Cloud by S3NS Projekts.VERSION_NUMBER
: Die Versionsnummer der Secret-ID.
Erstellen Sie die Transformationsfunktionen für Ein- und Ausgabe basierend auf der folgenden Signatur für die Vorhersagefunktion für Endpunkte von Modelle für Texteinbettungen. Weitere Informationen zum Erstellen von Transformationsfunktionen finden Sie unter Beispiel für Transformationsfunktionen.
Im Folgenden finden Sie Beispieltransformationsfunktionen, die speziell für den Endpunkt des Texteinbettungsmodells
custom-embedding-model
gelten:-- Input Transform Function corresponding to the custom model endpoint CREATE OR REPLACE FUNCTION cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT) RETURNS JSON LANGUAGE plpgsql AS $$ DECLARE transformed_input JSON; model_qualified_name TEXT; BEGIN SELECT json_build_object('prompt', json_build_array(input_text))::JSON INTO transformed_input; RETURN transformed_input; END; $$; -- Output Transform Function corresponding to the custom model endpoint CREATE OR REPLACE FUNCTION cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON) RETURNS REAL[] LANGUAGE plpgsql AS $$ DECLARE transformed_output REAL[]; BEGIN SELECT ARRAY(SELECT json_array_elements_text(response_json->0)) INTO transformed_output; RETURN transformed_output; END; $$;
Rufen Sie die Funktion zum Erstellen von Modellen auf, um den benutzerdefinierten Endpunkt für das Einbettungsmodell zu registrieren:
CALL
google_ml.create_model(
model_id => 'MODEL_ID',
model_request_url => 'REQUEST_URL',
model_provider => 'custom',
model_type => 'text_embedding',
model_auth_type => 'secret_manager',
model_auth_id => 'SECRET_ID',
model_qualified_name => 'MODEL_QUALIFIED_NAME',
model_in_transform_fn => 'cymbal_text_input_transform',
model_out_transform_fn => 'cymbal_text_output_transform');
Ersetzen Sie Folgendes:
MODEL_ID
: erforderlich. Eine eindeutige ID für den von Ihnen definierten Modellendpunkt, z. B.custom-embedding-model
. Auf diese Modell-ID wird für Metadaten verwiesen, die der Modellendpunkt zum Generieren von Einbettungen oder zum Aufrufen von Vorhersagen benötigt.REQUEST_URL
: erforderlich. Der modellspezifische Endpunkt beim Hinzufügen von benutzerdefinierten Texteinbettungs- und generischen Modellendpunkten, z. B.https://cymbal.com/models/text/embeddings/v1
. Achten Sie darauf, dass der Modellendpunkt über eine interne IP-Adresse zugänglich ist. Die Verwaltung von Modellendpunkten unterstützt keine externen IP-Adressen.MODEL_QUALIFIED_NAME
: Erforderlich, wenn für Ihren Modellendpunkt ein qualifizierter Name verwendet wird. Der vollständig qualifizierte Name, falls der Modellendpunkt mehrere Versionen hat.SECRET_ID
: Die Secret-ID, die Sie zuvor im Verfahrengoogle_ml.create_sm_secret()
verwendet haben.
Generische Modelle
In diesem Abschnitt wird gezeigt, wie Sie einen generischengemini-pro
-Modellendpunkt aus Vertex AI Model Garden registrieren, der keine integrierte Unterstützung bietet.
Sie können jeden generischen Modellendpunkt registrieren, der in Trusted Cloud by S3NSgehostet wird.
Cloud SQL unterstützt nur Modellendpunkte, die über Vertex AI Model Garden verfügbar sind, und Modellendpunkte, die in Netzwerken innerhalb von Trusted Cloud by S3NSgehostet werden.
Gemini-Modell
Im folgenden Beispiel wird der gemini-1.0-pro
-Modellendpunkt aus dem Vertex AI Model Garden hinzugefügt.
Rufen Sie die Funktion create model
auf, um den Modellendpunkt gemini-1.0-pro
zu registrieren:
CALL
google_ml.create_model(
model_id => 'MODEL_ID',
model_request_url => 'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-1.0-pro:streamGenerateContent',
model_provider => 'google',
model_auth_type => 'cloudsql_service_agent_iam');
Ersetzen Sie Folgendes:
MODEL_ID
: Eine eindeutige ID für den Modellendpunkt, die Sie definieren (z. B.
gemini-1
). Auf diese Modell-ID wird für Metadaten verwiesen, die der Modellendpunkt zum Generieren von Einbettungen oder zum Aufrufen von Vorhersagen benötigt.PROJECT_ID
: die ID Ihres Trusted Cloud by S3NS Projekts.
Weitere Informationen finden Sie unter Vorhersagen für generische Modellendpunkte aufrufen.