Använda SQL-databas i AI-program

Gäller för:SQL-databas i Microsoft Fabric

Den här artikeln beskriver hur du använder SQL Database i Fabric för att skapa AI-baserade program som kombinerar transaktionsdata med stora språkmodeller (LLM), vektorsökning eller RAG-mönster (retrieveal augmented generation).

SQL-databasen i Fabric tillhandahåller relationsgrunden för intelligenta program: ACID-transaktioner, frågor med låg svarstid, inbyggda vector datatyp och funktioner samt nära integrering med den bredare Fabric analys- och AI-plattformen.

Varför sql-databas i Fabric för AI-program?

För att skapa intelligenta program krävs en databas som kan lagra driftdata tillsammans med inbäddningar av vektorer, hantera både transaktions- och likhetsfrågor med låg svarstid och integrera med AI-orkestreringsramverk. SQL-databasen i Fabric uppfyller följande krav:

  • Inbyggt stöd för vektorer: SQL Database Engines interna vektordatatyp och skalära vektorfunktioner gör det möjligt att lagra inbäddningar och köra likhetssökningar direkt i T-SQL, utan en separat vektordatabas.
  • RAG-redo arkitektur: Kombinera strukturerade affärsdata med vektorinbäddningar i samma databas, så att hämtningsfrågor kan koppla relationskontext (kundposter, orderhistorik, produktkataloger) med semantiska sökresultat i en enda fråga.
  • Framework-integrering: Anslut med LangChain och Semantic Kernel via befintliga SQL Server anslutningsappar för att skapa orkestrerade AI-arbetsflöden.
  • Fabric plattformsintegrering: Få åtkomst till dina SQL-data från Fabric Notebooks, Data Science-arbetsbelastningar och Copilot utan att flytta data från plattformen.
  • Enterprise-styrning: Microsoft Entra ID autentisering, säkerhet på arbetsytenivå och kundhanterad nyckelkryptering gäller för AI-arbetsbelastningar på samma sätt som andra operativa arbetsbelastningar.

Tip

Ett verkligt kundexempel på hur SQL-databasen i Fabric används för att bearbeta data och generera vektorinbäddningar finns i Customer story: Eastman unified data and builds an AI-powered future with Microsoft Fabric.

Hämtningsförhöjd generation (RAG)

RAG förbättrar LLM-svar genom att hämta relevanta data från databasen innan du genererar ett svar. I stället för att enbart förlita sig på modellens träningsdata använder applikationen dina driftdata för att förankra svaren i aktuella, domänspecifika fakta. För en omfattande översikt, se sökningsförstärkt generering (RAG).

Ett typiskt RAG-mönster med SQL Database i Fabric följer dessa steg:

  1. Dela upp: Dela upp stora datakällor (dokument, artiklar i kunskapsbasen, produktkataloger) i hanterbara delar och omvandla dem till oformaterad text.
  2. Embed: Generera vektorinbäddningar för varje segment med hjälp av Azure OpenAI eller någon annan inbäddningsmodell.
  3. Arkiv: Infoga inbäddningarna i en tabell med en vektorkolumn tillsammans med källtexten och eventuella relationsmetadata.
  4. Hämta: När en användare ställer en fråga bäddar du in frågan med samma modell och använder sedan VECTOR_DISTANCE för att hitta de mest liknande segmenten. Koppla med relationstabeller för att utöka kontexten.
  5. Utöka: Kombinera de hämtade segmenten med användarens ursprungliga fråga i en fråga som instruerar LLM hur kontexten ska användas.
  6. Generera: Skicka den förhöjda uppmaningen till en LLM, som genererar ett svar som baseras på hämtade data.

Hybridvektorsökning i en transaktionsdatabas

Eftersom inbäddningar och relationsdata finns i samma databas kan du filtrera efter relationsattribut (datumintervall, kategorier, åtkomstbehörigheter) i samma fråga, vilket förbättrar både relevans och säkerhet. Du kan kombinera vektorsökningar med traditionella SQL-filter (WHERE) för resultat som filtrerats på både transaktionsrelationer och vektorfunktioner. Ett exempel:

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

Det här mönstret är användbart för produktrekommendationer, kunskapsbassökning och kundsupportscenarier där resultaten måste vara både semantiskt relevanta och begränsade av affärsregler.

Du kan också fråga med den nyare VECTOR_SEARCH T-SQL-syntaxen för att hitta ungefärliga resultat från närmaste granne. Ett exempel:

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-agenter med Fabric MCP-servrar

Fabric erbjuder både en Fabric lokal MCP med öppen källkod och en Fabric Fjärr-MCP-server för AI-agenter. Dessa servrar tillhandahåller direkt autentisering och instruktioner för förberedda åtgärder, till exempel hantering av arbetsytor, CRUD för objekt och definitioner samt behörighetshantering.

Både Fabric MCP-serveralternativ fungerar med alla MCP-kompatibla klienter, inklusive GitHub Copilot, cursor, Claude Desktop med mera. Till exempel fungerar Fabric MCP Server-tillägget för Visual Studio Code med tillägget Microsoft Fabric och GitHub Copilot Chat. Genom att använda dessa tillägg kan du komma åt Fabric MCP-verktyg i GitHub Copilot chatt och använda agenter för att hantera Fabric objekt, till exempel att skapa och hantera din Fabric SQL-databas.

  • Den Fabric lokala MCP-servern körs lokalt på datorn, så AI-agenter får den kontext de behöver för att generera kod och skapa objekt utan att komma åt din miljö.
  • den Fabric fjärr-MCP-servern är en molnbaserad server som gör att AI-agenter kan utföra förberedda, autentiserade åtgärder i din Fabric miljö utan någon lokal installation krävs.

AI-verktyg använder Fabric MCP-servern för att skriva kod med rätt API:er och inom rätt RBAC-gränser som du redan litar på.

Efter en snabb installation av den Fabric lokala MCP-servern kan du till exempel ställa infrastrukturfrågor och tilldela uppgifter till GitHub Copilot chatta i Visual Studio kod i agentläge. Ett exempel:

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

Din agent använder kända Fabric API-kommandon för att returnera alla Fabric objekt av dessa typer.

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

Din agent använder kända Fabric API-kommandon för att skapa databasobjektet åt dig, med standardinställningar.

AI-agenter med SQL MCP Server

SQL MCP Server tillhandahåller ett modellkontextprotokollgränssnitt som AI-agenter kan använda för att interagera med din databas via ett styrt, verktygsbaserat API i stället för att generera rå SQL. Servern:

  • Exponerar en definierad uppsättning verktyg som backas upp av konfigurationen.
  • Tillämpar behörigheter och begränsningar konsekvent.
  • Låter agenter identifiera tillgängliga funktioner utan schema gissa.

Det här mönstret är användbart för att skapa autonoma agenter som kan köra frågor mot och uppdatera driftdata som en del av arbetsflöden med flera steg.

SQL MCP Server använder data-API-byggarens entitetsabstraktion , RBAC, cachelagring och telemetri för att leverera en produktionsklar yta som fungerar på samma sätt i REST, GraphQL och MCP. Du konfigurerar den en gång och motorn hanterar resten.

MSSQL-tillägget för Visual Studio Code innehåller ett integrerat användargränssnitt för Data API builder, så att du kan skapa REST-, GraphQL- och MCP-slutpunkter för dina SQL-databastabeller utan att skriva konfigurationsfiler eller lämna Visual Studio Code. Du kan välja vilka tabeller som ska exponeras, konfigurera CRUD-behörigheter, välja API-typer, förhandsgranska den genererade konfigurationen och distribuera en lokal serverdel som drivs av Data API Builder, allt från ett visuellt gränssnitt.

Berikande med Azure OpenAI

SQL-Database Engine innehåller inbyggda T-SQL-funktioner för att generera inbäddningar och segmentering av text direkt i databasen, utan extern kod eller pipelines.

Registrera en inbäddningsmodell

Använd SKAPA EXTERN MODELL för att registrera en Azure OpenAI-inbäddningsslutpunkt som ett databasobjekt. I det här exemplet används distributionen text-embedding-ada-002 med Microsoft Entra hanterad identitetsautentisering. Skapa först autentiseringsuppgifter för åtkomst till Azure OpenAI med hjälp av en hanterad identitet:

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

Skapa sedan en extern modell:

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

Fler autentiseringsalternativ, inklusive API-nycklar, finns i SKAPA EXTERN MODELL.

Generera embeddings direkt

Använd AI_GENERATE_EMBEDDINGS för att generera vektorinbäddningar direkt i T-SQL-frågor, infogningar och uppdateringar.

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

Dela upp och bädda in i ett enda kommando

Kombinera AI_GENERATE_CHUNKS med AI_GENERATE_EMBEDDINGS för att dela upp stor text i segment och bädda in dem i en enda T-SQL-instruktion.

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;

Direkta REST-anrop med sp_invoke_external_rest_endpoint

För scenarier som inte omfattas av AI_GENERATE_EMBEDDINGS, till exempel samtalsslutpunkter eller chattslutpunkter, använder du sp_invoke_external_rest_endpoint för att anropa alla Azure OpenAI REST API direkt från T-SQL. Mer information finns i Azure OpenAI-integrering.

Integration med Fabric AI-arbetslaster

SQL-databasen i Fabric ansluter till plattformens bredare AI-funktioner:

Integration Använd
Tyganteckningsböcker Kör frågor mot en SQL-databas från PySpark- eller Python-anteckningsböcker för dataförberedelse, modellträning och batchpoängsättning.
Infrastrukturdatavetenskap Använd SQL-data som indata för maskininlärningsexperiment och skriv sedan förutsägelser tillbaka till databasen för användning.
Copilot i SQL-databas Använd naturligt språk för att generera, förklara och optimera T-SQL-frågor direkt i Fabric portalens frågeredigerare.
API för GraphQL Exponera AI-berikade data via GraphQL-slutpunkter för programförbrukning.
Datapipeliner och Dataflow Gen2 Orkestrera arbetsflöden för embeddinggenerering och berikning i stor skala.

Fabric användningsfallsberättelser för SQL-databas

Mer information om de bästa användningsfallen för Fabric SQL-databas finns i: