SQL-database gebruiken in AI-toepassingen

Van toepassing op:SQL-database in Microsoft Fabric

In dit artikel wordt beschreven hoe u SQL-database gebruikt in Fabric om AI-toepassingen te bouwen die transactionele gegevens combineren met LLM's (Large Language Models), vectorzoekopdrachten of RAG-patronen (Augmented Generation).

SQL-database in Fabric biedt de relationele basis voor intelligente toepassingen: ACID-transacties, query's met lage latentie, het systeemeigen vector gegevenstype en -functies, en een nauwe integratie met het bredere Fabric analytics en AI-platform.

Waarom SQL-database in Fabric voor AI-toepassingen?

Voor het bouwen van intelligente toepassingen is een database vereist waarmee operationele gegevens naast vectorinsluitingen kunnen worden opgeslagen, zowel transactionele als overeenkomstenquery's met lage latentie kunnen worden uitgevoerd en kunnen worden geïntegreerd met frameworks voor AI-indelingen. SQL-database in Fabric voldoet aan deze vereisten:

  • Native vectorondersteuning: met het systeemeigen vectorgegevenstype en de vectorscalaire functies van de SQL Database Engine kunt u embeddings opslaan en similariteitszoekopdrachten rechtstreeks in T-SQL uitvoeren, zonder een aparte vectordatabase.
  • Rag-ready architectuur: combineer uw gestructureerde bedrijfsgegevens met vector-insluitingen in dezelfde database, zodat het ophalen van query's kan worden samengevoegd met relationele context (klantrecords, ordergeschiedenis, productcatalogussen) met semantische zoekresultaten in één query.
  • Framework-integratie: Maak verbinding met LangChain en Semantic Kernel via bestaande SQL Server-connectors om ingedeelde AI-werkstromen te bouwen.
  • Fabric platformintegratie: open uw SQL-gegevens vanuit Fabric Notebooks, Data Science-workloads en Copilot ervaringen zonder gegevens uit het platform te verplaatsen.
  • Enterprise-governance: Microsoft Entra ID verificatie, beveiliging op werkruimteniveau en door de klant beheerde sleutelversleuteling zijn van toepassing op AI-workloads op dezelfde manier als elke andere operationele workload.

Tip

Zie Customer story: Eastman unified data and builds an AI-powered future with Microsoft Fabric voor een praktijkvoorbeeld van het gebruik van Fabric SQL-database voor het verwerken van gegevens en het genereren van vector-insluitingen.

Rag (Retrieval-augmented generation)

RAG verbetert LLM-antwoorden door relevante gegevens op te halen uit uw database voordat u een antwoord genereert. In plaats van uitsluitend te vertrouwen op de trainingsgegevens van het model, raadpleegt de toepassing uw operationele gegevens om antwoorden te baseren op actuele, domeinspecifieke feiten. Zie Rag (Retrieval-augmented generation) voor een uitgebreid overzicht.

Een typisch RAG-patroon met SQL-database in Fabric volgt deze stappen:

  1. Opsplitsen: Splits grote gegevensbronnen (documenten, kennisbankartikelen, productcatalogussen) op in hanteerbare delen en zet ze om naar platte tekst.
  2. Embed: Genereer vectorinsluitingen voor elk segment met behulp van Azure OpenAI of een ander insluitmodel.
  3. Archief: Voeg de insluitingen in een tabel in met een vectorkolom naast de brontekst en eventuele relationele metagegevens.
  4. Ophalen: Wanneer een gebruiker een vraag stelt, sluit u de query in met hetzelfde model en gebruikt u VECTOR_DISTANCE om de meest vergelijkbare segmenten te vinden. Voeg samen met relationele tabellen om de context te verrijken.
  5. Uitbreiding: Combineer de opgehaalde segmenten met de oorspronkelijke vraag van de gebruiker in een prompt waarin de LLM wordt geïnstrueerd hoe de context moet worden gebruikt.
  6. Genereren: Stuur de verrijkte prompt naar een LLM, die een antwoord genereert dat is gebaseerd op de opgehaalde gegevens.

Hybride vector zoeken in een transactionele database

Omdat de insluitingen en relationele gegevens zich in dezelfde database bevinden, kunt u filteren op relationele kenmerken (datumbereiken, categorieën, toegangsmachtigingen) in dezelfde query, waardoor zowel relevantie als beveiliging worden verbeterd. U kunt vectorzoekopdrachten combineren met traditionele SQL-filters (WHERE) voor resultaten die zijn gefilterd op zowel transactionele relaties als vectorfuncties. Voorbeeld:

-- 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);

Dit patroon is handig voor productaanbevelingsscenario's, knowledge base-zoekopdrachten en klantondersteuningsscenario's waarbij resultaten zowel semantisch relevant als beperkt moeten zijn door bedrijfsregels.

U kunt ook query's uitvoeren met de nieuwere VECTOR_SEARCH T-SQL-syntaxis om de dichtstbijzijnde resultaten te vinden. Voorbeeld:

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;

AI-agenten met de Fabric MCP-servers

Fabric biedt zowel een opensource-Fabric lokale MCP- als een Fabric externe MCP-server voor AI-agents. Deze servers bieden directe verificatie en instructies voor voorbereide bewerkingen, zoals werkruimtebeheer, item CRUD en definities en machtigingsbeheer.

Beide Fabric MCP-serveropties werken met elke MCP-compatibele client, waaronder GitHub Copilot, Cursor, Claude Desktop en meer. De extensie Fabric MCP Server voor Visual Studio Code werkt bijvoorbeeld met de extensie Microsoft Fabric en GitHub Copilot Chat. Met deze extensies hebt u toegang tot de Fabric MCP-hulpprogramma's binnen GitHub Copilot chat en kunt u agents gebruiken om Fabric items te beheren, zoals het maken en beheren van uw Fabric SQL-database.

  • De Fabric Lokale MCP-server wordt lokaal op uw computer uitgevoerd, zodat AI-agents de context krijgen die ze nodig hebben om code te genereren en items te schrijven zonder toegang te krijgen tot uw omgeving.
  • De Fabric Externe MCP-server is een in de cloud gehoste server waarmee AI-agents voorbereide, geverifieerde bewerkingen kunnen uitvoeren in uw Fabric-omgeving zonder lokale installatie vereist.

AI-hulpprogramma's gebruiken de Fabric MCP-server om code te schrijven met de juiste API's en binnen de juiste RBAC-grenzen die u al vertrouwt.

Na een snelle installatie van de Fabric lokale MCP-server kunt u bijvoorbeeld vragen over de infrastructuur stellen en taken toewijzen aan GitHub Copilot chatten in Visual Studio code, in de agentmodus. Voorbeeld:

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

Uw agent gebruikt bekende FABRIC API-opdrachten om alle Fabric items van deze typen te retourneren.

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

Uw agent gebruikt bekende Fabric API-opdrachten om het database-item voor u te maken, met standaardinstellingen.

AI-agenten met SQL MCP Server

De SQL MCP Server biedt een Interface modelcontextprotocol die AI-agents kunnen gebruiken om met uw database te communiceren via een beheerde, op hulpprogramma's gebaseerde API in plaats van onbewerkte SQL te genereren. De server:

  • Hiermee maakt u een gedefinieerde set hulpprogramma's beschikbaar die worden ondersteund door uw configuratie.
  • Dwingt machtigingen en beperkingen consistent af.
  • Hiermee kunnen agents beschikbare mogelijkheden detecteren zonder schema te raden.

Dit patroon is handig voor het bouwen van autonome agents die operationele gegevens kunnen opvragen en bijwerken als onderdeel van werkstromen met meerdere stappen.

De SQL MCP-server maakt gebruik van de entiteitabstractie, RBAC, caching en telemetrie van Data API Builder om een voor productie gereed oppervlak te leveren dat hetzelfde werkt in REST, GraphQL en MCP. U configureert het één keer en de engine doet de rest.

De MSSQL-extensie voor Visual Studio Code bevat een geïntegreerde gebruikersinterface voor Data-API builder, zodat u REST-, GraphQL- en MCP-eindpunten voor uw SQL-databasetabellen kunt maken zonder configuratiebestanden te schrijven of Visual Studio Code te verlaten. U kunt selecteren welke tabellen beschikbaar moeten worden gemaakt, CRUD-machtigingen moeten configureren, API-typen kiezen, een voorbeeld van de gegenereerde configuratie bekijken en een lokale back-end implementeren die mogelijk wordt gemaakt door Data API Builder, allemaal vanuit een visuele interface.

Verrijking met Azure OpenAI

De SQL-Database Engine biedt ingebouwde T-SQL-functies voor het genereren van insluitingen en segmenteringstekst rechtstreeks in de database, zonder externe code of pijplijnen.

Een insluitmodel registreren

Gebruik CREATE EXTERNAL MODEL om een Azure OpenAI-insluitingseindpunt te registreren als een databaseobject. In dit voorbeeld wordt de text-embedding-ada-002-implementatie gebruikt met Microsoft Entra beheerde identiteitsverificatie. Maak eerst toegangsreferenties voor Azure OpenAI met behulp van een beheerde identiteit:

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

Maak vervolgens een extern model:

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/]
);

Zie CREATE EXTERNAL MODEL voor meer verificatieopties, waaronder API-sleutels.

Inline embeddings genereren

Gebruik AI_GENERATE_EMBEDDINGS om vectorinsluitingen rechtstreeks in T-SQL-query's, invoegingen en updates te genereren.

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

Segmenteren en insluiten in één instructie

Combineer AI_GENERATE_CHUNKS met AI_GENERATE_EMBEDDINGS het splitsen van grote tekst in segmenten en sluit ze in één T-SQL-instructie in.

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;

Directe REST-aanroepen met sp_invoke_external_rest_endpoint

Voor scenario's die niet worden gedekt door AI_GENERATE_EMBEDDINGS, zoals het aanroepen van voltooiingen of chat-eindpunten, gebruikt u sp_invoke_external_rest_endpoint om een Azure OpenAI REST API rechtstreeks vanuit T-SQL aan te roepen. Zie Azure OpenAI-integratie voor meer informatie.

Integratie met Fabric AI-workloads

SQL-database in Fabric maakt verbinding met de bredere AI-mogelijkheden van het platform:

Integratie Gebruik
Fabric Notebooks Query's uitvoeren op SQL-database vanuit PySpark of Python notebooks voor gegevensvoorbereiding, modeltraining en batchgewijs scoren.
Fabric Data Science Gebruik SQL-gegevens als invoer voor machine learning-experimenten en schrijf vervolgens voorspellingen terug naar de database voor operationeel verbruik.
Copilot in SQL Database Gebruik natuurlijke taal om T-SQL-query's rechtstreeks in de Fabric portalquery-editor te genereren, uit te leggen en te optimaliseren.
API voor GraphQL Maak AI-verrijkte gegevens beschikbaar via GraphQL-eindpunten voor toepassingsverbruik.
Gegevenspijplijnen en Gegevensstroom Gen2 Werkstromen voor het genereren en verrijken van inhoud op schaal indelen.

Praktijkverhalen over Fabric SQL-database

Zie voor meer informatie over de beste use cases voor Fabric SQL-database: