Utiliser une base de données SQL dans des applications IA

S’applique à :Base de données SQL dans Microsoft Fabric

Cet article explique comment utiliser la base de données SQL dans Fabric pour créer des applications basées sur l’IA qui combinent des données transactionnelles avec de grands modèles de langage (LLMs), la recherche vectorielle ou des modèles de génération augmentée par récupération (RAG).

La base de données SQL dans Fabric offre la base relationnelle pour les applications intelligentes : transactions ACID, requêtes à faible latence, type de données vector natif et fonctions associées, ainsi qu’une intégration étroite avec l’écosystème plus large de la plateforme Fabric pour l’analytique et l’IA.

Pourquoi la base de données SQL dans Fabric pour les applications IA ?

La création d’applications intelligentes nécessite une base de données qui peut stocker des données opérationnelles en même temps que des incorporations vectorielles, servir des requêtes transactionnelles et de similarité à faible latence et s’intégrer à des infrastructures d’orchestration IA. La base de données SQL dans Fabric répond aux exigences suivantes :

  • Prise en charge native des vecteurs : le type de données vectorielles natif et les fonctions scalaires vectorielles du moteur de base de données SQL vous permettent de stocker des représentations vectorielles et d’exécuter des recherches de similarité directement dans T-SQL, sans base de données vectorielle distincte.
  • Architecture prête pour rag : combinez vos données métier structurées avec des incorporations vectorielles dans la même base de données, afin que les requêtes de récupération puissent joindre un contexte relationnel (enregistrements client, historique des commandes, catalogues de produits) avec des résultats de recherche sémantique dans une seule requête.
  • intégration Framework : se connecter avec LangChain et Noyau sémantique via des connecteurs SQL Server existants pour créer des flux de travail IA orchestrés.
  • Intégration à la plateforme Fabric : accédez à vos données SQL depuis les notebooks Fabric, les charges de travail de data science et les expériences Copilot sans déplacer vos données hors de la plateforme.
  • Enterprise governance : authentification Microsoft Entra ID, sécurité au niveau de l’espace de travail et chiffrement de clé gérée par le client s’appliquent aux charges de travail IA identiques à toutes les autres charges de travail opérationnelles.

Conseil

Pour découvrir un exemple concret de client utilisant la base de données SQL Fabric pour traiter des données et générer des embeddings vectoriels, consultez Témoignage client : Eastman unifie les données et construit un avenir axé sur l’IA avec Microsoft Fabric.

Génération augmentée par récupération (RAG)

RAG améliore les réponses LLM en récupérant les données pertinentes de votre base de données avant de générer une réponse. Au lieu de s’appuyer uniquement sur les données d’entraînement du modèle, l’application interroge vos données opérationnelles pour ancrer les réponses dans des faits actuels propres au domaine. Pour obtenir une vue d’ensemble complète, consultez La génération d’extraction augmentée (RAG).

Un modèle RAG classique avec une base de données SQL dans Fabric effectue les étapes suivantes :

  1. Découpage : divisez les sources de données volumineuses (documents, articles de la base de connaissances, catalogues de produits) en éléments gérables et convertissez-les en texte brut.
  2. Embed : générez des incorporations vectorielles pour chaque segment à l’aide de Azure OpenAI ou d’un autre modèle d’incorporation.
  3. Stocker : insérez les incorporations dans une table avec une colonne vectorielle en même temps que le texte source et toutes les métadonnées relationnelles.
  4. Récupérer : lorsqu’un utilisateur pose une question, incorporez la requête avec le même modèle, puis utilisez VECTOR_DISTANCE pour trouver les blocs les plus similaires. Joignez-vous à des tables relationnelles pour enrichir le contexte.
  5. Augmentation : combinez les segments récupérés avec la question d’origine de l’utilisateur dans un prompt qui indique au LLM comment exploiter le contexte.
  6. Générer : envoyez l’invite augmentée à un LLM, qui produit une réponse ancrée dans les données récupérées.

Recherche vectorielle hybride dans une base de données transactionnelle

Étant donné que les incorporations et les données relationnelles vivent dans la même base de données, vous pouvez filtrer par attributs relationnels (plages de dates, catégories, autorisations d’accès) dans la même requête, ce qui améliore la pertinence et la sécurité. Vous pouvez combiner des recherches vectorielles avec des filtres SQL traditionnels (WHERE) pour les résultats filtrés à la fois sur les relations transactionnelles et les fonctions vectorielles. Par exemple:

-- Hybrid search: vector similarity filtered by product category
SELECT TOP (5) p.product_name, p.description
, cosine_distance = VECTOR_DISTANCE('cosine', @query_embedding, p.embedding)
FROM dbo.products AS p
WHERE p.category = 'Electronics'
ORDER BY VECTOR_DISTANCE('cosine', @query_embedding, p.embedding);

Ce modèle est utile pour les recommandations de produit, la recherche dans la base de connaissances et les scénarios de support client où les résultats doivent être à la fois pertinents sémantiquement et limités par les règles métier.

Vous pouvez également interroger avec la syntaxe T-SQL la plus récente VECTOR_SEARCH pour trouver des résultats approximatifs voisins les plus proches. Par exemple:

DECLARE @qv VECTOR(1536) = AI_GENERATE_EMBEDDINGS(N'Pink Floyd music style' USE MODEL Ada2Embeddings);

SELECT TOP (10) WITH APPROXIMATE
    t.id,
    t.title,
    r.distance
FROM VECTOR_SEARCH(
        TABLE = dbo.wikipedia_articles_embeddings AS t,
        COLUMN = content_vector,
        SIMILAR_TO = @qv,
        METRIC = 'cosine'
    ) AS r
ORDER BY r.distance;

Agents IA avec les serveurs MCP Fabric

Fabric offre à la fois un serveur MCP local Fabric open source et un serveur MCP distant Fabric pour les agents IA. Ces serveurs fournissent une authentification directe et des instructions pour les opérations préparées, telles que la gestion de l’espace de travail, l’élément CRUD et les définitions et la gestion des autorisations.

Les deux Fabric options de serveur MCP fonctionnent avec n’importe quel client compatible MCP, notamment GitHub Copilot, Cursor, Claude Desktop, etc. Par exemple, l’extension Fabric MCP Server pour Visual Studio Code fonctionne avec l’extension Microsoft Fabric et GitHub Copilot Chat. À l’aide de ces extensions, vous pouvez accéder aux outils MCP Fabric dans GitHub Copilot conversation et utiliser des agents pour gérer des éléments Fabric, tels que la création et la gestion de votre base de données SQL Fabric.

  • Le serveur MCP local Fabric s’exécute localement sur votre ordinateur. Par conséquent, les agents IA obtiennent le contexte dont ils ont besoin pour générer du code et créer des éléments sans accéder à votre environnement.
  • Le serveur MCP distant Fabric est un serveur hébergé dans le cloud qui permet aux agents IA d’effectuer des opérations préparées et authentifiées dans votre environnement Fabric sans configuration locale requise.

Les outils IA utilisent le serveur MCP Fabric pour écrire du code avec les API appropriées et dans les limites RBAC correctes que vous approuvez déjà.

Par exemple, après une configuration rapide du serveur MCP local Fabric, vous pouvez poser des questions sur l’infrastructure et affecter des tâches à GitHub Copilot conversation dans Visual Studio code, en mode Agent. Par exemple:

List all SQL databases and mirrored SQL databases in the Fabric workspace "DemoSQLdb".

Votre agent utilise des commandes d’API Fabric connues pour retourner tous les éléments Fabric de ces types.

Create a new SQL database in Fabric named "ContosoTest" in the Fabric workspace "DemoSQLdb".

Votre agent utilise des commandes d’API Fabric connues pour créer l’élément de base de données pour vous, avec les paramètres par défaut.

Agents d’IA avec SQL MCP Server

Le serveur SQL MCP fournit une interface de protocole de contexte de modèle que les agents IA peuvent utiliser pour interagir avec votre base de données via une API basée sur des outils régies au lieu de générer des sql bruts. Serveur :

  • Expose un ensemble défini d’outils soutenus par votre configuration.
  • Applique les autorisations et les contraintes de manière cohérente.
  • Permet aux agents de découvrir les fonctionnalités disponibles sans deviner le schéma.

Ce modèle est utile pour créer des agents autonomes capables d’interroger et de mettre à jour des données opérationnelles dans le cadre de flux de travail multistep.

Le serveur SQL MCP utilise l’abstraction d’entité du générateur d’API de données, RBAC , la mise en cache et la télémétrie pour fournir une surface prête pour la production qui fonctionne de la même façon sur REST, GraphQL et MCP. Vous le configurez une seule fois, et le moteur gère le reste.

L’extension MSSQL pour Visual Studio Code inclut une interface utilisateur intégrée pour le générateur d’API Data, afin de pouvoir créer des points de terminaison REST, GraphQL et MCP pour vos tables de base de données SQL sans écrire de fichiers de configuration ni quitter Visual Studio Code. Vous pouvez sélectionner les tables à exposer, configurer des autorisations CRUD, choisir des types d’API, afficher un aperçu de la configuration générée et déployer un back-end local alimenté par le générateur d’API de données, tous à partir d’une interface visuelle.

Enrichissement avec Azure OpenAI

Le Moteur de base de données SQL fournit des fonctions T-SQL intégrées pour générer des incorporations et segmenter du texte directement dans la base de données, sans code externe ni pipelines.

Inscrire un modèle d’incorporation

Utilisez CREATE EXTERNAL MODEL pour inscrire un point de terminaison d’incorporation OpenAI Azure en tant qu’objet de base de données. Cet exemple utilise le déploiement text-embedding-ada-002 avec l’authentification par identité managée Microsoft Entra. Tout d’abord, créez des informations d’identification d’accès pour Azure OpenAI à l’aide d’une identité managée :

CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
    WITH IDENTITY = 'Managed Identity',
    SECRET = '{"resourceid":"https://cognitiveservices.azure.com"}';
GO

Ensuite, créez un modèle externe :

CREATE EXTERNAL MODEL MyEmbeddingModel
WITH (
    LOCATION = 'https://my-openai.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2024-02-01',
    API_FORMAT = 'Azure OpenAI',
    MODEL_TYPE = EMBEDDINGS,
    MODEL = 'text-embedding-ada-002',
    CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);

Pour plus d’options d’authentification, notamment les clés API, consultez CREATE EXTERNAL MODEL.

Générez des embeddings en ligne

Utilisez AI_GENERATE_EMBEDDINGS pour générer des incorporations vectorielles directement dans des requêtes T-SQL, des insertions et des mises à jour.

-- Generate embeddings for existing rows
UPDATE t
SET t.embedding = AI_GENERATE_EMBEDDINGS(t.description USE MODEL MyEmbeddingModel)
FROM dbo.products AS t;

Segmenter et incorporer dans une seule instruction

Combinez AI_GENERATE_CHUNKS avec AI_GENERATE_EMBEDDINGS pour décomposer du texte volumineux en blocs et les incorporer dans une instruction T-SQL unique.

INSERT INTO dbo.document_embeddings (chunked_text, embedding)
SELECT c.chunk,
       AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyEmbeddingModel)
FROM dbo.documents AS d
CROSS APPLY AI_GENERATE_CHUNKS(
    SOURCE = d.content,
    CHUNK_TYPE = FIXED,
    CHUNK_SIZE = 100
) AS c;

Appels REST directs avec sp_invoke_external_rest_endpoint

Pour les scénarios non couverts par AI_GENERATE_EMBEDDINGS, tels que les achèvements d’appel ou les points de terminaison de conversation, utilisez sp_invoke_external_rest_endpoint pour appeler Azure n’importe quelle API REST OpenAI directement à partir de T-SQL. Pour plus d’informations, consultez Azure intégration OpenAI.

Intégration avec les charges de travail d’IA Fabric

La base de données SQL dans Fabric se connecte aux fonctionnalités d’IA plus larges de la plateforme :

Intégration Utilisez
Fabric Cahiers Interrogez la base de données SQL à partir de PySpark ou Python notebooks pour la préparation des données, l’entraînement du modèle et le scoring par lots.
Fabric Science des données Utilisez les données SQL comme entrée pour les expériences de Machine Learning, puis réécrivez les prédictions dans la base de données pour une consommation opérationnelle.
Copilot dans la base de données SQL Utilisez le langage naturel pour générer, expliquer et optimiser des requêtes T-SQL directement dans l’éditeur de requête du portail Fabric.
API pour GraphQL Exposez des données enrichies par l’IA via des points d’accès GraphQL destinés aux applications.
Pipelines de données et Dataflow Gen2 Orchestrer l’incorporation de flux de travail de génération et d’enrichissement à grande échelle.

Fabric exemples de cas d’usage de base de données SQL

Pour en savoir plus sur les meilleurs cas d’usage pour Fabric base de données SQL, consultez :