Partager via


Applications intelligentes et IA

S'applique à : SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceBase de données SQL dans Microsoft Fabric

Cet article fournit une vue d’ensemble des options d’intelligence artificielle (IA), telles que OpenAI et les vecteurs, pour créer des applications intelligentes avec les SQL Moteur de base de données dans SQL Server et Azure SQL Managed Instance.

Pour Azure SQL Database et SQL Database dans Fabric, consultez Applicationsintelligentes et IA.

Pour les échantillons et les exemples, consultez le référentiel SQL AI Samples.

Aperçu

Les modèles de langage volumineux (LLMs) permettent aux développeurs de créer des applications basées sur l’IA avec une expérience utilisateur familière.

L’utilisation de LLMs dans les applications apporte une plus grande valeur et une expérience utilisateur améliorée lorsque les modèles peuvent accéder aux données appropriées, au bon moment, à partir de la base de données de votre application. Ce processus est appelé Récupération augmentée génération (RAG) et le Moteur de base de données SQL a de nombreuses fonctionnalités qui prennent en charge ce nouveau modèle, ce qui en fait une base de données intéressante pour créer des applications intelligentes.

Les liens suivants fournissent un exemple de code de différentes options pour créer des applications intelligentes :

Option IA Descriptif
SQL MCP Server Interface stable et régie pour votre base de données, définissant un ensemble d’outils et de configuration.
Azure OpenAI Générez des incorporations pour RAG et intégrez-les à n’importe quel modèle pris en charge par Azure OpenAI.
Vecteurs Découvrez comment stocker des vecteurs et utiliser des fonctions vectorielles dans la base de données.
Recherche Azure AI Utilisez votre base de données avec Recherche Azure AI pour entraîner LLM sur vos données.
Applications intelligentes Découvrez comment créer une solution de bout en bout à l’aide d’un modèle commun qui peut être répliqué dans n’importe quel scénario.

SQL MCP Server dans les applications IA

SQL MCP Server se trouve directement dans le chemin d’accès aux données pour les agents IA.

  • À mesure que les modèles génèrent des requêtes, le serveur fournit une interface stable et régie à votre base de données.
  • Au lieu d’exposer le schéma brut ou de s’appuyer sur sql généré, il achemine tout accès via un ensemble défini d’outils soutenus par votre configuration.

Cette approche maintient les interactions prévisibles et garantit que chaque opération s’aligne sur les autorisations et la structure que vous définissez. Pour plus d’informations, consultez aka.ms/sql/mcp.

En séparant le raisonnement de l’exécution, les modèles se concentrent sur l’intention tandis que SQL MCP Server gère la façon dont cette intention devient des requêtes valides. Étant donné que la surface est limitée et décrite, les agents peuvent découvrir les capacités disponibles, comprendre les entrées et les sorties, et fonctionner sans deviner. Cette conception réduit les erreurs et supprime la nécessité d’une ingénierie d’invite complexe pour compenser l’ambiguïté du schéma.

Pour les développeurs, cette approche signifie que l’IA peut participer en toute sécurité à des charges de travail réelles.

Vous pouvez:

  • Définir des entités une seule fois
  • Appliquer des rôles et des contraintes

La plateforme fait ensuite :

  • Applique des entités, des rôles et des contraintes de manière cohérente
  • Crée une base fiable pour les applications basées sur des agents sur des données SQL.

La même configuration qui alimente REST et GraphQL régit également MCP. Il n’existe donc pas de duplication de règles ou de logiques. Pour plus d’informations, consultez aka.ms/dab/docs.

Concepts clés pour l’implémentation de RAG avec Azure OpenAI

Cette section inclut les concepts clés qui sont essentiels pour implémenter RAG avec Azure OpenAI dans le Moteur de base de données SQL.

RAG (Génération Augmentée de Récupération)

RAG est une technique qui améliore la capacité du LLM à produire des réponses pertinentes et informatives en récupérant des données supplémentaires provenant de sources externes. Par exemple, RAG peut interroger des articles ou des documents qui contiennent des connaissances spécifiques au domaine liées à la question ou à l’invite de l’utilisateur. Le LLM peut ensuite utiliser ces données récupérées comme référence lors de la génération de sa réponse. Par exemple, un modèle RAG simple utilisant le Moteur de base de données SQL peut être :

  1. Insérez des données dans une table.
  2. Liez votre instance à Recherche Azure AI.
  3. Créez un modèle OpenAI GPT-4 Azure et connectez-le à Recherche Azure AI.
  4. Discutez et posez des questions sur vos données à l’aide du modèle Azure OpenAI entraîné de votre application et depuis les données de votre instance.

Le modèle RAG, avec l’ingénierie d’invite, a pour but d’améliorer la qualité de la réponse en offrant des informations plus contextuelles au modèle. RAG permet au modèle d’appliquer une base de connaissances plus large en incorporant des sources externes pertinentes dans le processus de génération, ce qui aboutit à des réponses plus complètes et mieux fondées. Pour plus d’informations sur grounding LLMs, voir Grounding LLMs - Microsoft Community Hub.

Invites et ingénierie d’invite

Une invite est un texte ou des informations spécifiques qui servent d’instruction à un grand modèle de langage (LLM) ou en tant que données contextuelles sur lesquelles le LLM peut s’appuyer. Une invite peut prendre différentes formes, telles qu’une question, une instruction ou même un extrait de code.

Voici quelques exemples de questions que vous pouvez utiliser pour générer une réponse à partir d’un LLM :

  • Instructions : fournir des directives au LLM
  • Contenu principal : fournit des informations au LLM pour le traitement
  • Exemples : aider à conditionner le modèle à une tâche ou un processus particulier
  • Cues : diriger la sortie du LLM dans la bonne direction
  • Contenu de prise en charge : représente des informations supplémentaires que le LLM peut utiliser pour générer la sortie

Le processus de création de bonnes requêtes pour un scénario est appelé ingénierie de la requête. Pour plus d’informations sur les invites et les meilleures pratiques pour l'élaboration d'invites, consultez Techniques d'élaboration d'invites.

Tokens

Les jetons sont de petits blocs de texte générés en fractionnant le texte d’entrée en segments plus petits. Ces segments peuvent être des mots ou des groupes de caractères, dont la longueur peut varier d’un caractère unique à un mot entier. Par exemple, le mot hamburger est divisé en jetons tels que ham, buret ger tandis qu’un mot court et commun comme pear est considéré comme un seul jeton.

Dans Azure OpenAI, l’API tokenise le texte d’entrée. Le nombre de jetons traités dans chaque requête d’API dépend de facteurs tels que la longueur des paramètres d’entrée, de sortie et de requête. La quantité de jetons en cours de traitement a également un impact sur le temps de réponse et le débit des modèles. Chaque modèle a des limites sur le nombre de jetons qu’il peut prendre dans une seule requête et réponse de Azure OpenAI. Pour plus d’informations, consultez Quotas et limites des modèles Azure OpenAI dans Azure AI Foundry.

Vectors

Les vecteurs sont des tableaux triés de nombres (généralement flottants) qui peuvent représenter des informations sur certaines données. Par exemple, une image peut être représentée en tant que vecteur de valeurs de pixels, ou une chaîne de texte peut être représentée comme vecteur de valeurs ASCII. Le processus de transformer les données en vecteur est appelé vectorisation. Pour plus d’informations, consultez les exemples Vector.

L’utilisation de données vectorielles est plus facile avec l’introduction du type de données vectorielle et des fonctions vectorielles.

Incorporations

Les incorporations sont des vecteurs qui représentent des caractéristiques importantes des données. Les incorporations sont souvent apprises à l’aide d’un modèle d’apprentissage profond, et les modèles Machine Learning et IA les utilisent comme fonctionnalités. Les incorporations peuvent également capturer la similarité sémantique entre des concepts similaires. Par exemple, lors de la génération d’un incorporation pour les mots person et human, vous pouvez vous attendre à ce que leurs incorporations (représentation vectorielle) soient similaires dans la valeur, car les mots sont également sémantiquement similaires.

Azure OpenAI d'Azure propose des modèles pour créer des représentations à partir de données textuelles. Le service décompose le texte en jetons et génère des incorporations à l’aide de modèles préentraînés par OpenAI. Pour plus d’informations, consultez Comprendre les embeddings dans Azure OpenAI dans Azure AI Foundry Models.

La recherche de vecteurs est le processus de recherche de tous les vecteurs d’un jeu de données qui sont sémantiquement similaires à un vecteur de requête spécifique. Par conséquent, un vecteur de requête pour le mot human recherche dans le dictionnaire entier des mots sémantiquement similaires et doit trouver le mot person comme une correspondance étroite. Cette proximité, ou cette distance, est mesurée à l’aide d’une métrique de similarité, telle que la similarité cosinus. Les vecteurs plus proches sont similaires, plus la distance entre eux est réduite.

Envisagez un scénario dans lequel vous exécutez une requête sur des millions de documents pour rechercher les documents les plus similaires dans vos données. Vous pouvez créer des incorporations pour vos données et interroger des documents à l’aide de Azure OpenAI. Ensuite, vous pouvez effectuer une recherche vectorielle pour rechercher les documents les plus similaires à partir de votre jeu de données. Toutefois, l’exécution d’une recherche vectorielle dans quelques exemples est triviale. L’exécution de cette même recherche sur des milliers, ou des millions, de points de données devient difficile. Il existe également des compromis entre la recherche exhaustive et les méthodes de recherche voisines les plus proches (ANN), notamment la latence, le débit, la précision et le coût. Tous ces compromis dépendent des exigences de votre application.

Vous pouvez stocker et interroger efficacement des vecteurs dans le Moteur de base de données SQL, comme décrit dans les sections suivantes. Cette fonctionnalité permet une recherche exacte du voisin le plus proche avec de bonnes performances. Vous n’avez pas à décider entre précision et vitesse : vous pouvez avoir les deux. Le stockage des incorporations de vecteurs en même temps que les données d’une solution intégrée réduit la nécessité de gérer la synchronisation des données et accélère votre délai de commercialisation pour le développement d’applications IA.

Azure OpenAI

L’incorporation est le processus de représentation du monde réel en tant que données. Vous pouvez convertir du texte, des images ou des sons en incorporations. Les modèles Azure OpenAI peuvent transformer des informations réelles en embeddings. Vous pouvez accéder aux modèles en tant que points de terminaison REST, pour les consommer facilement à partir du moteur de base de données SQL à l’aide de la procédure stockée système sp_invoke_external_rest_endpoint. Cette procédure est disponible à partir de SQL Server 2025 (17.x) et Azure SQL Managed Instance configurée avec la stratégie Always-up-to-date de mise à jour.

DECLARE @retval AS INT,
        @response AS NVARCHAR (MAX),
        @payload AS NVARCHAR (MAX);

SET @payload = JSON_OBJECT('input':@text);

EXECUTE
    @retval = sp_invoke_external_rest_endpoint
    @url = 'https://<openai-url>/openai/deployments/<model-name>/embeddings?api-version = 2023-03-15-preview',
    @method = 'POST',
    @credential = [https://<openai-url>/openai/deployments/<model-name>],
    @payload = @payload,
    @response = @response OUTPUT;

DECLARE @e AS VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');

L’utilisation d’un appel à un service REST pour obtenir des incorporations n’est qu’une des options d’intégration dont vous disposez lors de l’utilisation de SQL Managed Instance et OpenAI. Vous pouvez autoriser l’un des modèles availables accéder aux données stockées dans la Moteur de base de données SQL pour créer des solutions où vos utilisateurs peuvent interagir avec les données, comme l’exemple suivant :

Screenshot d’un bot IA répondant à la question à l’aide de données stockées dans SQL Server.

Pour obtenir des exemples supplémentaires sur l’utilisation de Azure SQL et d’OpenAI, consultez les articles suivants, qui s’appliquent également à SQL Server et Azure SQL Managed Instance :

Exemples de vecteurs

Le type de données vectorielles dédié stocke efficacement les données vectorielles et inclut un ensemble de fonctions pour aider les développeurs à rationaliser l’implémentation de recherche de vecteur et de similarité. Vous pouvez calculer la distance entre deux vecteurs dans une ligne de code à l’aide de la nouvelle VECTOR_DISTANCE fonction. Pour plus d’informations et d’exemples, consultez Recherche de vecteurs et index de vecteurs dans le moteur de base de données SQL.

Par exemple:

CREATE TABLE [dbo].[wikipedia_articles_embeddings_titles_vector]
(
    [article_id] [int] NOT NULL,
    [embedding] [vector](1536) NOT NULL,
)
GO

SELECT TOP(10)
    *
FROM
    [dbo].[wikipedia_articles_embeddings_titles_vector]
ORDER BY
    VECTOR_DISTANCE('cosine', @my_reference_vector, embedding)

Implémentez des modèles RAG à l’aide du Moteur de base de données SQL et du Recherche Azure AI. Vous pouvez exécuter des modèles de conversation pris en charge sur des données stockées dans le Moteur de base de données SQL sans avoir à entraîner ou ajuster les modèles en intégrant des Recherche Azure AI avec Azure OpenAI et le Moteur de base de données SQL. Lorsque vous exécutez des modèles sur vos données, vous pouvez discuter en plus de vos données et les analyser avec plus de précision et de vitesse.

Pour en savoir plus sur l’intégration de Recherche Azure AI avec Azure OpenAI et le Moteur de base de données SQL, consultez les articles suivants. Ces articles s’appliquent également aux SQL Server et aux Azure SQL Managed Instance :

Applications intelligentes

Vous pouvez utiliser l’Moteur de base de données SQL pour créer des applications intelligentes qui incluent des fonctionnalités IA, telles que les générateurs de recommandations et la génération augmentée de récupération (RAG), comme le montre le diagramme suivant :

Diagram de différentes fonctionnalités IA pour créer des applications intelligentes avec Azure SQL Database.

Pour obtenir un exemple de bout en bout qui montre comment créer une application prenant en charge l’IA à l’aide de sessions abstraites en tant qu’exemple de jeu de données, consultez :

Note

L’intégration de LangChain et l’intégration Noyau sémantique s’appuient sur le type de données vectoriel, disponible à partir de SQL Server 2025 (17.x) et dans Azure SQL Managed Instance configuré avec la Always-up-to-date ou SQL Server stratégie de mise à jour 2025, Azure SQL Database et la base de données SQL dans Microsoft Fabric.

Intégration de LangChain

LangChain est une infrastructure bien connue pour le développement d’applications alimentées par des modèles de langage. Pour obtenir des exemples montrant comment utiliser LangChain pour créer un chatbot sur vos propres données, consultez :

Voici quelques exemples d’utilisation de Azure SQL avec LangChain :

Exemples de bout en bout :

intégration de Noyau sémantique

Noyau sémantique est un SDK open source que vous pouvez utiliser pour générer facilement des agents qui appellent votre code existant. En tant que SDK hautement extensible, vous pouvez utiliser Noyau sémantique avec des modèles à partir d’OpenAI, Azure OpenAI, Hugging Face, etc. En combinant votre code C#, Python existant et Java code avec ces modèles, vous pouvez créer des agents qui répondent aux questions et automatisent les processus.

Voici un exemple de la facilité d’Noyau sémantique vous aide à créer des solutions compatibles avec l’IA :

  • Le chatbot ultime ?: Créez un chatbot sur vos propres données à l’aide de modèles NL2SQL et RAG pour l’expérience utilisateur ultime.