Externe modellen maken en beheren in SQL
Externe modellen bieden een manier om te verwijzen naar AI-modellen vanuit SQL Server en Azure SQL met behulp van Transact-SQL. Een extern model vertegenwoordigt een verbinding met een modeleindpunt en definieert hoe sql ingebouwde AI-functies dat model aanroepen.
Door externe modellen te maken, maakt u AI-mogelijkheden rechtstreeks in de database-engine beschikbaar zonder modelspecifieke logica in toepassingscode in te sluiten.
Wat is een extern model?
Een extern model is een databaseobject waarin metagegevens over een AI-modeleindpunt worden opgeslagen. Deze metagegevens bevatten informatie zoals de eindpunt-URL, verificatiedetails en modelspecifieke configuratie.
Externe modellen zijn geen modellen die worden uitgevoerd in SQL Server. In plaats daarvan fungeren ze als een beheerde verwijzing waarmee SQL Server een externe AI-service kan aanroepen bij het uitvoeren van AI-functies.
Na het maken kunnen externe modellen opnieuw worden gebruikt voor query's en workloads, waardoor een consistente en centraal beheerde manier wordt geboden om toegang te krijgen tot AI-mogelijkheden vanuit SQL.
Een extern model maken
U maakt een extern model met behulp van de CREATE EXTERNAL MODEL instructie. Deze instructie definieert de modelnaam en koppelt deze aan een extern eindpunt.
Het maken van het externe model roept het model niet aan en genereert ook geen uitvoer. Er wordt een herbruikbare definitie vastgesteld waarnaar AI-functies, zoals het genereren van embeddings of andere AI-ondersteunde bewerkingen, later kunnen verwijzen.
Omdat externe modellen databaseobjecten zijn, kunnen ze worden beheerd met behulp van standaard SQL-procedures, waaronder naamconventies, machtigingen en implementatie via scripts.
Een extern model wijzigen
Externe modellen kunnen na verloop van tijd worden gewijzigd wanneer eindpunten, referenties of configuratie-instellingen worden bijgewerkt. Als u deze wijzigingen wilt weergeven, kunt u de ALTER EXTERNAL MODEL instructie gebruiken.
Als u een extern model wijzigt, worden de metagegevens bijgewerkt zonder dat afhankelijke query's of functies opnieuw moeten worden geschreven. Met deze update kunt u de modelconfiguratie centraal aanpassen terwijl bestaande SQL-logica intact blijft.
Als u wijzigingen op het niveau van het externe model beheert, kunt u de koppeling tussen toepassingslogica en ai-serviceconfiguratie verminderen.
Externe modellen gebruiken met AI-functies
SQL Server biedt ingebouwde AI-functies die verwijzen naar een extern model om AI-gerelateerde bewerkingen uit te voeren. Deze functies verwerken taken zoals het genereren van insluitingen door het externe modeleindpunt aan te roepen dat is gedefinieerd in de database.
AI-functies gebruiken de definitie van het externe model om te bepalen welk eindpunt moet worden aangeroepen en hoe de aanvraag moet worden geverifieerd. Met deze scheiding kan Transact-SQL code zich richten op gegevensverwerking in plaats van verbindingsgegevens of referentiegegevens.
Voordat u een extern model maakt, hebt u een databasereferentie nodig waarin de verificatiedetails voor het AI-eindpunt worden opgeslagen. Azure OpenAI-eindpunten ondersteunen twee verificatieopties:
Beheerde identiteit (aanbevolen voor Azure SQL Database): de beheerde identiteit van uw database wordt rechtstreeks geverifieerd met Azure OpenAI. Ken de rol van Cognitive Services OpenAI-gebruiker toe op de Azure OpenAI-resource.
CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/] WITH IDENTITY = 'Managed Identity', SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';API-sleutel: sla de sleutel op in HTTP-headers. Deze benadering werkt voor zowel Azure SQL Database als SQL Server 2025.
CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/] WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"api-key":"<your-api-key>"}';
Vermijd het coderen van API-sleutels in uw T-SQL-code. Gebruik beheerde identiteiten indien mogelijk voor betere beveiliging en eenvoudigere sleutelrotatie.
Belangrijk
EXECUTE ANY EXTERNAL ENDPOINT De machtiging verlenen aan gebruikers of rollen die externe eindpunten moeten aanroepen:GRANT EXECUTE ANY EXTERNAL ENDPOINT TO [user_or_role];
Zodra de referentie is ingesteld, kunt u het externe model maken. In het volgende voorbeeld ziet u een minimale werkstroom.
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>}'
);
Zodra het externe model is gemaakt, kunnen AI-functies ernaar verwijzen in query's.
SELECT
id,
AI_GENERATE_EMBEDDINGS(
description USE MODEL my_external_model
) AS embedding
FROM dbo.documents;
In dit voorbeeld definieert het externe model hoe SQL Server verbinding maakt met de AI-service. De AI_GENERATE_EMBEDDINGS functie gebruikt die definitie om insluitingen voor de description kolom te genereren zonder eindpunt- of verificatiegegevens in de query in te sluiten.
Wanneer u externe modellen combineert met AI-functies, maakt SQL Server AI-werkstromen mogelijk die volledig worden gedefinieerd, uitgevoerd en onderhouden via Transact-SQL.
Externe modellen beheren als databaseobjecten
Omdat externe modellen databaseobjecten zijn, passen ze op natuurlijke wijze in bestaande procedures voor databasebeheer. U kunt de toegang beheren via machtigingen, deze opnemen in implementatiepijplijnen en hun levenscyclus naast andere schemaobjecten beheren.
Het behandelen van externe modellen als eersteklas databaseobjecten zorgt voor consistentie, onderhoudbaarheid en voorspelbaar gedrag bij het integreren van AI-mogelijkheden in op SQL gebaseerde oplossingen.
Belangrijke punten
Externe modellen zijn databaseobjecten waarmee metagegevens over EINDPUNTen van AI-modellen worden opgeslagen, zodat SQL Server externe AI-services kan aanroepen zonder verbindingsgegevens in toepassingscode in te sluiten. U maakt ze met CREATE EXTERNAL MODEL, werkt ze bij met ALTER EXTERNAL MODELen verwijst ernaar in ingebouwde AI-functies zoals AI_GENERATE_EMBEDDINGS. Omdat ze een databasebereik hebben, kunt u machtigingen, levenscyclus en implementatie beheren naast uw andere schemaobjecten.