Erstellen und Verwalten externer Modelle in SQL

Abgeschlossen

Externe Modelle bieten eine Möglichkeit zum Verweisen auf KI-Modelle aus SQL Server und Azure SQL mithilfe von Transact-SQL. Ein externes Modell stellt eine Verbindung mit einem Modellendpunkt dar und definiert, wie in SQL integrierte KI-Funktionen dieses Modell aufrufen.

Durch das Erstellen externer Modelle stellen Sie KI-Funktionen direkt im Datenbankmodul zur Verfügung, ohne modellspezifische Logik in Anwendungscode einzubetten.

Was ist ein externes Modell?

Ein externes Modell ist ein Datenbankobjekt, das Metadaten zu einem AI-Modellendpunkt speichert. Diese Metadaten enthalten Informationen wie die Endpunkt-URL, Authentifizierungsdetails und modellspezifische Konfiguration.

Externe Modelle sind keine Modelle, die in SQL Server ausgeführt werden. Stattdessen fungieren sie als verwalteter Verweis, mit dem SQL Server einen externen KI-Dienst aufrufen kann, wenn KI-Funktionen ausgeführt werden.

Nach der Erstellung können externe Modelle für Abfragen und Workloads wiederverwendet werden und bieten eine konsistente und zentral verwaltete Möglichkeit für den Zugriff auf KI-Funktionen aus SQL.

Erstellen eines externen Modells

Sie erstellen ein externes Modell mithilfe der CREATE EXTERNAL MODEL Anweisung. Diese Anweisung definiert den Modellnamen und ordnet ihn einem externen Endpunkt zu.

Das Erstellen des externen Modells ruft das Modell nicht auf oder generiert keine Ausgabe. Sie stellt eine wiederverwendbare Definition her, auf die KI-Funktionen wie das Einbetten der Generierung oder anderer KI-unterstützter Vorgänge später verweisen können.

Da es sich bei externen Modellen um Datenbankobjekte handelt, können sie mithilfe standardmäßiger SQL-Methoden verwaltet werden, einschließlich Benennungskonventionen, Berechtigungen und Bereitstellung über Skripts.

Ändern eines externen Modells

Externe Modelle können sich im Laufe der Zeit ändern, wenn Endpunkte, Anmeldeinformationen oder Konfigurationseinstellungen aktualisiert werden. Um diese Änderungen widerzuspiegeln, können Sie die ALTER EXTERNAL MODEL Anweisung verwenden.

Das Ändern eines externen Modells aktualisiert seine Metadaten, ohne dass abhängige Abfragen oder Funktionen neu geschrieben werden müssen. Mit diesem Update können Sie die Modellkonfiguration zentral anpassen und gleichzeitig vorhandene SQL-Logik beibehalten.

Das Verwalten von Änderungen auf externer Modellebene hilft, die Kopplung zwischen Anwendungslogik und AI-Dienstkonfiguration zu reduzieren.

Verwenden externer Modelle mit KI-Funktionen

SQL Server stellt integrierte KI-Funktionen bereit, die auf ein externes Modell verweisen, um KI-bezogene Vorgänge auszuführen. Diese Funktionen behandeln Aufgaben wie das Generieren von Einbettungen durch Aufrufen des in der Datenbank definierten externen Modellendpunkts.

KI-Funktionen verwenden die definition des externen Modells, um zu bestimmen, welcher Endpunkt aufgerufen werden soll und wie die Anforderung authentifiziert wird. Diese Trennung ermöglicht es Transact-SQL Code, sich nicht auf Verbindungs- oder Anmeldeinformationsdetails, sondern auf die Datenverarbeitung zu konzentrieren.

Bevor Sie ein externes Modell erstellen, benötigen Sie Datenbank-spezifische Anmeldeinformationen, die die Authentifizierungsdetails für den AI-Endpunkt speichern. Azure OpenAI-Endpunkte unterstützen zwei Authentifizierungsoptionen:

  • Verwaltete Identität (empfohlen für Azure SQL-Datenbank): Die verwaltete Identität Ihrer Datenbank authentifiziert sich direkt bei Azure OpenAI. Gewähren Sie ihm die Rolle "Cognitive Services OpenAI User" in der Azure OpenAI-Ressource.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'Managed Identity',
        SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
    
  • API-Schlüssel: Speichern Sie den Schlüssel in HTTP-Headern. Dieser Ansatz funktioniert sowohl für Azure SQL-Datenbank als auch für SQL Server 2025.

    CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/]
        WITH IDENTITY = 'HTTPEndpointHeaders',
        SECRET = '{"api-key":"<your-api-key>"}';
    

Vermeiden Sie hartcodierende API-Schlüssel in Ihrem T-SQL-Code. Verwenden Sie nach Möglichkeit verwaltete Identitäten, um die Sicherheit zu verbessern und eine einfache Schlüsselrotation zu ermöglichen.

Von Bedeutung

Gewähren Sie die Berechtigung EXECUTE ANY EXTERNAL ENDPOINT Benutzern oder Rollen, die externe Endpunkte aufrufen müssen: GRANT EXECUTE ANY EXTERNAL ENDPOINT TO [user_or_role];

Sobald die Anmeldeinformation vorhanden ist, können Sie das externe Modell erstellen. Das folgende Beispiel zeigt einen minimalen Workflow.

CREATE EXTERNAL MODEL my_external_model
WITH (
    LOCATION   = 'https://<resource-name>.cognitiveservices.azure.com/openai/deployments/<deployment-name>/embeddings?api-version=<api-version>',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL      = 'text-embedding-3-small',
    CREDENTIAL = [https://<resource-name>.cognitiveservices.azure.com/],
    PARAMETERS = '{"dimensions":<n>}'
);

Nachdem das externe Modell erstellt wurde, können KI-Funktionen in Abfragen darauf verweisen.

SELECT
    id,
    AI_GENERATE_EMBEDDINGS(
        description USE MODEL my_external_model
    ) AS embedding
FROM dbo.documents;

In diesem Beispiel definiert das externe Modell, wie SQL Server eine Verbindung mit dem KI-Dienst herstellt. Die AI_GENERATE_EMBEDDINGS Funktion verwendet diese Definition, um Einbettungen für die description Spalte zu generieren, ohne Endpunkt- oder Authentifizierungsdetails in die Abfrage einzubetten.

Wenn Sie externe Modelle mit KI-Funktionen kombinieren, ermöglicht SQL Server KI-Workflows, die vollständig über Transact-SQL definiert, ausgeführt und verwaltet werden.

Verwalten externer Modelle als Datenbankobjekte

Da es sich bei externen Modellen um Datenbankobjekte handelt, passen sie sich natürlich in vorhandene Datenbankverwaltungspraktiken ein. Sie können den Zugriff über Berechtigungen steuern, sie in Bereitstellungspipelinen einschließen und deren Lebenszyklus zusammen mit anderen Schemaobjekten verwalten.

Das Behandeln externer Modelle als Erstklassige Datenbankobjekte trägt dazu bei, Konsistenz, Wartung und vorhersehbares Verhalten bei der Integration von KI-Funktionen in SQL-basierte Lösungen sicherzustellen.

Wichtige Erkenntnisse

Bei externen Modellen handelt es sich um Datenbankobjekte, die Metadaten zu AI-Modellendpunkten speichern, sodass SQL Server externe KI-Dienste aufrufen kann, ohne Verbindungsdetails in Anwendungscode einzubetten. Sie erstellen sie mit CREATE EXTERNAL MODEL, aktualisieren Sie sie mit ALTER EXTERNAL MODEL, und verweisen Sie auf sie in integrierten KI-Funktionen wie AI_GENERATE_EMBEDDINGS. Da sie datenbankbereichsgeschützt sind, können Sie Berechtigungen, Lebenszyklus und Bereitstellung zusammen mit ihren anderen Schemaobjekten verwalten.