Créer et gérer des modèles externes dans SQL
Les modèles externes offrent un moyen de référencer des modèles IA à partir de SQL Server et d’Azure SQL à l’aide de Transact-SQL. Un modèle externe représente une connexion à un point de terminaison de modèle et définit la façon dont les fonctions IA intégrées SQL appellent ce modèle.
En créant des modèles externes, vous rendez les fonctionnalités d’IA disponibles directement à l’intérieur du moteur de base de données sans incorporer une logique spécifique au modèle dans le code d’application.
Qu’est-ce qu’un modèle externe ?
Un modèle externe est un objet de base de données qui stocke les métadonnées relatives à un point de terminaison de modèle IA. Ces métadonnées incluent des informations telles que l’URL du point de terminaison, les détails de l’authentification et la configuration spécifique au modèle.
Les modèles externes ne sont pas des modèles qui s’exécutent dans SQL Server. Au lieu de cela, ils agissent en tant que référence managée qui permet à SQL Server d’appeler un service IA externe lors de l’exécution de fonctions IA.
Une fois créés, les modèles externes peuvent être réutilisés entre les requêtes et charges de travail, ce qui offre un moyen cohérent et centralisé d’accéder aux fonctionnalités d’IA à partir de SQL.
Créer un modèle externe
Vous créez un modèle externe à l’aide de l’instruction CREATE EXTERNAL MODEL . Cette instruction définit le nom du modèle et l’associe à un point de terminaison externe.
La création du modèle externe n’appelle pas le modèle ou ne génère pas de sortie. Il établit une définition réutilisable que des fonctions d'IA, telles que la génération d'embeddings ou d'autres opérations assistées par l'IA, peuvent référencer ultérieurement.
Étant donné que les modèles externes sont des objets de base de données, ils peuvent être gérés à l’aide de pratiques SQL standard, notamment les conventions d’affectation de noms, les autorisations et le déploiement par le biais de scripts.
Modifier un modèle externe
Les modèles externes peuvent changer au fil du temps, car les points de terminaison, les informations d’identification ou les paramètres de configuration sont mis à jour. Pour refléter ces modifications, vous pouvez utiliser l’instruction ALTER EXTERNAL MODEL .
La modification d’un modèle externe met à jour ses métadonnées sans nécessiter de réécriture de requêtes ou de fonctions dépendantes. Cette mise à jour vous permet d’ajuster la configuration du modèle de manière centralisée tout en conservant la logique SQL existante intacte.
La gestion des modifications au niveau du modèle externe permet de réduire le couplage entre la logique d’application et la configuration du service IA.
Utiliser des modèles externes avec des fonctions IA
SQL Server fournit des fonctions IA intégrées qui font référence à un modèle externe pour effectuer des opérations liées à l’IA. Ces fonctions gèrent des tâches telles que la génération d’incorporations en appelant le point de terminaison de modèle externe défini dans la base de données.
Les fonctions IA utilisent la définition de modèle externe pour déterminer le point de terminaison à appeler et comment authentifier la demande. Cette séparation permet Transact-SQL code de se concentrer sur le traitement des données plutôt que sur les détails de connexion ou d’informations d’identification.
Avant de créer un modèle externe, vous avez besoin d'un identifiant à portée de base de données pour stocker les détails d’authentification pour le point de terminaison d'IA. Les points de terminaison Azure OpenAI prennent en charge deux options d’authentification :
Identité managée (recommandée pour Azure SQL Database) : l’identité managée de votre base de données s’authentifie directement auprès d’Azure OpenAI. Accordez-lui le rôle d’utilisateur OpenAI Cognitive Services sur la ressource Azure OpenAI.
CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/] WITH IDENTITY = 'Managed Identity', SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';Clé API : stockez la clé dans les en-têtes HTTP. Cette approche fonctionne à la fois pour Azure SQL Database et SQL Server 2025.
CREATE DATABASE SCOPED CREDENTIAL [https://<resource-name>.cognitiveservices.azure.com/] WITH IDENTITY = 'HTTPEndpointHeaders', SECRET = '{"api-key":"<your-api-key>"}';
Évitez les clés API de codage en dur dans votre code T-SQL. Utilisez des identités managées lorsque cela est possible pour améliorer la sécurité et faciliter la rotation des clés.
Important
Accordez l’autorisation EXECUTE ANY EXTERNAL ENDPOINT aux utilisateurs ou aux rôles qui doivent appeler des points de terminaison externes : GRANT EXECUTE ANY EXTERNAL ENDPOINT TO [user_or_role];
Une fois les informations d’identification en place, vous pouvez créer le modèle externe. L’exemple suivant montre un flux de travail minimal.
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>}'
);
Une fois le modèle externe créé, les fonctions IA peuvent les référencer dans les requêtes.
SELECT
id,
AI_GENERATE_EMBEDDINGS(
description USE MODEL my_external_model
) AS embedding
FROM dbo.documents;
Dans cet exemple, le modèle externe définit la façon dont SQL Server se connecte au service IA. La AI_GENERATE_EMBEDDINGS fonction utilise cette définition pour générer des incorporations pour la description colonne sans incorporer les détails du point de terminaison ou de l’authentification dans la requête.
Lorsque vous combinez des modèles externes avec des fonctions IA, SQL Server active les flux de travail IA définis, exécutés et gérés entièrement via Transact-SQL.
Gestion des modèles externes en tant qu’objets de base de données
Étant donné que les modèles externes sont des objets délimités à la base de données, ils s’intègrent naturellement aux pratiques de gestion de base de données existantes. Vous pouvez contrôler l’accès via des autorisations, les inclure dans les pipelines de déploiement et gérer leur cycle de vie en même temps que d’autres objets de schéma.
Le traitement des modèles externes en tant qu’objets de base de données de première classe permet de garantir la cohérence, la facilité de maintenance et le comportement prévisible lors de l’intégration des fonctionnalités d’IA dans des solutions SQL.
Points clés à prendre
Les modèles externes sont des objets de base de données qui stockent des métadonnées sur les points de terminaison de modèle IA, ce qui permet à SQL Server d’appeler des services IA externes sans incorporer les détails de connexion dans le code de l’application. Vous les créez avec CREATE EXTERNAL MODEL, mettez-les à jour avec ALTER EXTERNAL MODEL, puis référencez-les dans des fonctions IA intégrées comme AI_GENERATE_EMBEDDINGS. Étant donné qu’elles sont limitées à la base de données, vous pouvez gérer les autorisations, le cycle de vie et le déploiement en même temps que vos autres objets de schéma.