Auf dieser Seite wird beschrieben, wie Sie Vorhersagen aufrufen oder Einbettungen mit einem Modell generieren und dann den Modellendpunkt bei der Modellendpunktverwaltung registrieren.
Weitere Informationen zur
mysql.ml_create_model_registration()
Funktion finden Sie in der Referenz zur Modellendpunktverwaltung.
Hinweis
- Richten Sie je nach Modellanbieter die Authentifizierung ein.
Stellen Sie mit einem
mysqlClient oder Cloud SQL Studio eine Verbindung zu Ihrer primären Instanz her.Achten Sie darauf, dass Sie als MySQL-Datenbanknutzer mit den in Erforderliche Datenbanknutzerberechtigungen beschriebenen Datenbankberechtigungen eine Verbindung zur Datenbank herstellen.
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 gehostet werden Google Cloud.
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, mit dem Sie eine Verbindung zur Datenbank herstellen, Vertex AI Berechtigungen hinzufügen. Weitere Informationen zur Integration mit 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 Inhabertokens in Secret Manager speichern.
Wenn Ihr Modellendpunkt die Authentifizierung nicht über Secret Manager verarbeitet, ist dieser Abschnitt optional. Wenn Ihr Modellendpunkt beispielsweise HTTP-Header zum Übergeben von Authentifizierungsinformationen verwendet 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 Inhabertoken:
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
mysql.ml_create_sm_secret_registration()SQL-Funktion verwendet.Erteilen 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 dengcloud sql instances describe INSTANCE_NAMEBefehl und ersetzen Sie INSTANCE_NAME durch den Namen der Instanz, um diese E-Mail-Adresse zu finden. Der Wert neben dem ParameterserviceAccountEmailAddressist 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 Modellendpunktverwaltung bietet integrierte Unterstützung für alle Versionen der
text-embedding-gecko, text-embedding und gemini-embedding Modelle von
Vertex AI. Verwenden Sie den qualifizierten Namen, um die Modellversion auf textembedding-gecko@001 oder textembedding-gecko@002 festzulegen.
Da Modellendpunkt-IDs für Vertex AI-Einbettungen standardmäßig von der Modellendpunktverwaltung unterstützt werden, können Sie sie direkt als Modell-ID verwenden. Für diese Modelle führt die Einbettungsfunktion automatisch die Ein- und Ausgabetransformation durch.
Die Cloud SQL-Instanz und das Vertex AI-Modell, das Sie abfragen, müssen sich in derselben Region befinden.
Rufen Sie die Funktion ml_create_model_registration auf, um den Modellendpunkt gemini-embedding-001 zu registrieren:
CALL
mysql.ml_create_model_registration(
'gemini-embedding-001',
'publishers/google/models/gemini-embedding-001',
'google','text_embedding', 'gemini-embedding-001',
'AUTH_TYPE_CLOUDSQL_SERVICE_AGENT_IAM',
NULL,
'mysql.cloudsql_ml_text_embedding_input_transform',
'mysql.cloudsql_ml_text_embedding_output_transform', NULL);
Benutzerdefinierte Texteinbettungsmodelle
In diesem Abschnitt wird beschrieben, wie Sie benutzerdefinierte Modellendpunkte registrieren, die in Netzwerken in Google Cloudgehostet werden.
Wenn Sie benutzerdefinierte gehostete Modellendpunkte für Texteinbettungen hinzufügen, müssen Sie Transformationsfunktionen und optional benutzerdefinierte HTTP-Header erstellen. Wenn Sie hingegen benutzerdefinierte gehostete allgemeine Modellendpunkte hinzufügen, können Sie optional benutzerdefinierte HTTP-Header generieren und die Modellanfrage-URL festlegen.
Im folgenden Beispiel wird der Modellendpunkt custom-embedding-model für Texteinbettungen
hinzugefügt, der von
Cymbal gehostet wird und in gehostet wird Google Cloud. 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 vom Kunden gehostete Modellendpunkte für Texteinbettungen:
Rufen Sie das im Secret Manager gespeicherte Secret auf:
CALL mysql.ml_create_sm_secret_registration( 'SECRET_ID', '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 Projekts in Google Cloud .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 Modellendpunkte für Texteinbettungen. Weitere Informationen zum Erstellen von Transformationsfunktionen finden Sie unter Beispiel für Transformationsfunktionen.
Im Folgenden finden Sie Beispiel-Transformationsfunktionen, die speziell für den Modellendpunkt
custom-embedding-modelfür Texteinbettungen gelten:-- Input Transform Function corresponding to the custom model endpoint DELIMITER $$ CREATE FUNCTION IF NOT EXISTS cymbal_text_input_transform(model_id VARCHAR(100), input_text TEXT) RETURNS JSON DETERMINISTIC BEGIN RETURN JSON_OBJECT('prompt', JSON_ARRAY(input_text)); END $$ -- Output Transform Function corresponding to the custom model endpoint CREATE FUNCTION IF NOT EXISTS cymbal_text_output_transform(model_id VARCHAR(100), response_json JSON) RETURNS BLOB DETERMINISTIC BEGIN RETURN STRING_TO_VECTOR( JSON_EXTRACT(JSON_UNQUOTE( content, '$.predictions[0].embeddings.values' )) ); END $$ DELIMITER ;Rufen Sie die Funktion zum Erstellen von Modellen auf, um den benutzerdefinierten Endpunkt für das Einbettungsmodell zu registrieren:
CALL
mysql.ml_create_model_registration(
'MODEL_ID',
'REQUEST_URL',
'custom',
'text_embedding',
'MODEL_QUALIFIED_NAME',
'auth_type_secret_manager',
'SECRET_ID'
'database_name.cymbal_text_input_transform',
'database_name.cymbal_text_output_transform', NULL);
Ersetzen Sie Folgendes:
MODEL_ID: Erforderlich. Eine eindeutige ID für den Modellendpunkt, den Sie definieren (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 Texteinbettungen und allgemeinen 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 Modellendpunktverwaltung 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 Verfahrenmysql.ml_create_sm_secret_registration()verwendet haben.
Allgemeine Modelle
In diesem Abschnitt wird beschrieben, wie Sie einen allgemeinen Modellendpunktgemini-flash aus Vertex AI Model Garden registrieren, der standardmäßig im Katalog vorregistriert ist.
Sie können jeden
allgemeinen Modellendpunkt registrieren, der in gehostet wird Google Cloud.
Cloud SQL unterstützt nur Modellendpunkte, die über Vertex AI Model Garden verfügbar sind, und Modellendpunkte, die in Netzwerken in gehostet werden Google Cloud.
Gemini-Modell
Im folgenden Beispiel wird der Modellendpunkt gemini-2.5-flash aus dem Vertex AI Model Garden verwendet.
Rufen Sie die Funktion mysql.ml_create_model_registration auf, um den Modellendpunkt gemini-2.5-flash zu registrieren:
CALL
mysql.ml_create_model_registration(
'MODEL_ID',
'https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/gemini-2.5-flash:streamGenerateContent',
'google',
'auth_type_cloudsql_service_agent_iam',
NULL, NULL, NULL, NULL);
Ersetzen Sie Folgendes:
MODEL_ID: Eine eindeutige ID für den Modellendpunkt, den 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 Google Cloud Projekts.
Weitere Informationen finden Sie unter Vorhersagen für allgemeine Modellendpunkte aufrufen.