Remote-KI-Modelle mithilfe der Modellendpunktverwaltung registrieren und aufrufen

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 mysql.ml_create_model_registration() finden Sie in der Referenz zur Verwaltung von Modellendpunkten.

Hinweise

  • Richten Sie die Authentifizierung entsprechend dem Modellanbieter ein.

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:

  1. 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 mysql.ml_create_sm_secret_registration() verwendet.

  2. 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 Befehl gcloud sql instances describe INSTANCE_NAME und ersetzen Sie INSTANCE_NAME durch den Namen der Instanz. Der Wert neben dem Parameter serviceAccountEmailAddress 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. Bei diesen Modellen 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);

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:

  1. 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 Trusted Cloud by S3NS Projekts.
    • VERSION_NUMBER: Die Versionsnummer der Secret-ID.
  2. 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
    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(
                  content,
                  '$.predictions[0].embeddings.values'
                )
         );
    
    END $$
    DELIMITER ;
    
  3. 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 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 Verfahren mysql.ml_create_sm_secret_registration() verwendet haben.

Generische Modelle

In diesem Abschnitt wird gezeigt, wie Sie einen generischen gemini-flash-Modellendpunkt aus Vertex AI Model Garden registrieren. Dieser ist standardmäßig im Katalog vorregistriert. 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 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, 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.

Nächste Schritte