Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Base de données SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL dans Microsoft Fabric
Cet article fournit une vue d’ensemble de l’utilisation d’options d’intelligence artificielle (IA), telles que OpenAI et des vecteurs, pour créer des applications intelligentes avec le moteur de base de données SQL dans SQL Server et Azure SQL Managed Instance.
Pour Azure SQL Database, passez en revue les applications intelligentes et l’IA.
Pour obtenir des exemples et des exemples, consultez le référentiel d’exemples SQL AI.
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 |
|---|---|
| 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 d’IA Azure | Utilisez votre base de données avec Azure AI Search 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. |
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 :
- Insérez des données dans une table.
- Liez votre instance à Azure AI Search.
- Créez un modèle Azure OpenAI GPT4 et connectez-le à Azure AI Search.
- Discutez et posez des questions sur vos données à l’aide du modèle Azure OpenAI entraîné à partir de votre application et de données dans 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 intégrant des sources externes pertinentes dans le processus de génération, ce qui aboutit à des réponses plus complètes et éclairées. Pour plus d’informations sur la mise à l’échelle des machines virtuelles, consultez Grounding LLMs - Microsoft Community Hub.
Invites et ingénierie d’invite
Une invite fait référence à un texte ou à des informations spécifiques qui servent d’instruction à un LLM, ou en tant que données contextuelles sur laquelle 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.
Exemples d’invites qui peuvent être utilisés 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 invites pour un scénario est appelé ingénierie d’invite. 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 serait divisé en jetons tels que ham, buret ger tandis qu’un mot court et commun comme pear serait considéré comme un seul jeton.
Dans Azure OpenAI, le texte d’entrée fourni à l’API est transformé en jetons (tokenized). 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. Il existe des limites au nombre de jetons que chaque modèle peut prendre dans une seule requête/réponse d’Azure OpenAI. Pour plus d’informations, consultez Azure OpenAI dans les quotas et limites des modèles 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, nous nous attendons à ce que leurs incorporations (représentation vectorielle) soient similaires dans la valeur, car les mots sont également sémantiquement similaires.
Azure OpenAI propose des modèles pour créer des incorporations à partir de données texte. 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 incorporations dans Azure OpenAI dans les modèles Azure AI Foundry.
Recherche vectorielle
La recherche vectorielle fait référence au 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 le plus petit est la distance entre eux.
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 d’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 approximatives (ANN), notamment la latence, le débit, la précision et le coût, qui dépendent toutes des exigences de votre application.
Les vecteurs du moteur de base de données SQL peuvent être stockés et interrogés efficacement, comme décrit dans les sections suivantes, ce qui 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. Le texte, les images ou les sons peuvent être convertis en incorporations. Les modèles Azure OpenAI peuvent transformer des informations réelles en incorporations. Les modèles sont disponibles en tant que points de terminaison REST et peuvent donc être facilement consommés à partir du moteur de base de données SQL à l’aide de la procédure stockée système sp_invoke_external_rest_endpoint , disponible à partir de SQL Server 2025 (17.x) et d’Azure SQL Managed Instance configuré avec la stratégie de mise à jour Always-up-to-date.
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 d’OpenAI. Vous pouvez autoriser l’un des modèles disponibles à accéder aux données stockées dans le 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 :
Pour obtenir des exemples supplémentaires sur l’utilisation d’Azure SQL et d’OpenAI, consultez les articles suivants, qui s’appliquent également à SQL Server et Azure SQL Managed Instance :
- Générer des images avec Azure OpenAI Service (DALL-E) et Azure SQL
- Utilisation de points de terminaison REST OpenAI avec Azure SQL
Exemples de vecteurs
Le type de données vectorielles dédié permet un stockage efficace et optimisé des données vectorielles et est fourni avec un ensemble de fonctions pour aider les développeurs à rationaliser l’implémentation de recherche de vecteur et de similarité. Le calcul de la distance entre deux vecteurs peut être effectué dans une ligne de code à l’aide de la nouvelle VECTOR_DISTANCE fonction. Pour plus d’informations et d’exemples, consultez la recherche vectorielle et les index vectoriels 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)
Recherche d’IA Azure
Implémentez des modèles RAG avec le moteur de base de données SQL et recherche Azure AI. Vous pouvez exécuter des modèles de conversation pris en charge sur les données stockées dans le moteur de base de données SQL, sans avoir à entraîner ou affiner les modèles, grâce à l’intégration d’Azure AI Search à Azure OpenAI et au moteur de base de données SQL. L’exécution de modèles sur vos données vous permet de discuter et d’analyser vos données avec plus de précision et de vitesse.
Pour en savoir plus sur l’intégration d’Azure AI Search à Azure OpenAI et au moteur de base de données SQL, consultez les articles suivants, qui s’appliquent également à SQL Server et Azure SQL Managed Instance :
- Azure OpenAI sur vos données
- RAG (Génération augmentée de récupération) dans Azure AI Search
- Recherche vectorielle avec Azure SQL et Recherche Azure AI
Applications intelligentes
Le moteur de base de données SQL peut être utilisé pour créer des applications intelligentes qui incluent des fonctionnalités IA, telles que des recommandations et une génération augmentée de récupération (RAG), comme le montre le diagramme suivant :
Pour obtenir un exemple de bout en bout pour générer une application prenant en charge l’IA à l’aide de sessions abstraites en tant qu’exemple de jeu de données, consultez :
- Comment j’ai créé un générateur de recommandations de session en 1 heure à l’aide d’OpenAI.
- Utilisation de la génération augmentée de récupération pour créer un assistant de session de conférence
Note
L’intégration de LangChain et l’intégration du 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 stratégie de mise à jour Always-up-to-date.
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 LangChain peut être utilisé pour créer un chatbot sur vos propres données, consultez :
- langchain-sqlserver Paquet PyPI
Quelques exemples sur l’utilisation d’Azure SQL avec LangChain :
Exemples de bout en bout :
- Créez un chatbot sur vos propres données en 1 heure avec Azure SQL, Langchain et Chainlit : créez un chatbot à l’aide du modèle RAG sur vos propres données à l’aide de Langchain pour orchestrer les appels LLM et Chainlit pour l’interface utilisateur.
Intégration du noyau sémantique
Le noyau sémantique est un SDK open source qui vous permet de générer facilement des agents qui peuvent appeler votre code existant. En tant que KIT de développement logiciel (SDK) hautement extensible, vous pouvez utiliser le noyau sémantique avec des modèles d’OpenAI, d’Azure OpenAI, de Hugging Face, etc. En combinant votre code C#, Python et Java existant avec ces modèles, vous pouvez créer des agents qui répondent aux questions et automatisent les processus.
Voici un exemple de la façon dont le noyau sémantique permet de 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.