SQL Database használata AI-alkalmazásokban

A következőkre vonatkozik:SQL-adatbázis a Microsoft Fabricben

Ez a cikk azt ismerteti, hogyan használható az SQL Database a Fabric olyan AI-alapú alkalmazások létrehozására, amelyek tranzakciós adatokat kombinálnak nagy nyelvi modellekkel (LLM-ekkel), vektorkereséssel vagy lekéréssel bővített generációs (RAG) mintákkal.

A Fabric sql-adatbázisa biztosítja az intelligens alkalmazások relációs alapjait: ACID-tranzakciók, kis késésű lekérdezések, natív vector adattípus és -függvények, valamint szoros integráció a szélesebb Fabric elemzési és AI-platformmal.

Miért érdemes sql-adatbázist Fabric AI-alkalmazásokhoz?

Az intelligens alkalmazások létrehozásához olyan adatbázisra van szükség, amely képes üzemeltetési adatokat tárolni a vektoros beágyazások mellett, alacsony késés mellett kiszolgálni a tranzakciós és hasonlósági lekérdezéseket, és integrálni az AI vezénylési keretrendszereivel. Az SQL Database Fabric megfelel az alábbi követelményeknek:

  • Nematív vektortámogatás: Az SQL Database Engine natív vektor adattípusa és vektor skaláris függvények lehetővé teszi a beágyazások tárolását és a hasonlósági keresések futtatását közvetlenül a T-SQL-ben, külön vektoradatbázis nélkül.
  • RAG-kész architektúra: A strukturált üzleti adatok kombinálása vektoros beágyazásokkal ugyanabban az adatbázisban, így a lekéréses lekérdezések egyetlen lekérdezésben összekapcsolhatják a relációs környezetet (ügyfélrekordok, rendeléselőzmények, termékkatalógusok).
  • Framework-integráció: Csatlakozás LangChain és Szemantikus kernel meglévő SQL Server összekötőken keresztül, vezényletes MI-munkafolyamatok létrehozásához.
  • Fabric platformintegráció: Az SQL-adatok elérése Fabric jegyzetfüzetekből, adatelemzési számítási feladatokból és Copilot szolgáltatásokból anélkül, hogy adatokat helyezne át a platformról.
  • Enterprise szabályozási: Microsoft Entra ID hitelesítés, munkaterületszintű biztonság és ügyfél által felügyelt kulcstitkosítás ugyanúgy vonatkozik az AI-számítási feladatokra, mint bármely más működési számítási feladatra.

Tip

Az adatok feldolgozására és vektorbeágyazások létrehozására Fabric SQL-adatbázis valós ügyfél-példáját lásd: Customer-történet: Az Eastman egyesítette az adatokat, és mesterséges intelligencián alapuló jövőt hoz létre Microsoft Fabric használatával.

Lekérdezéssel kibővített generálás (RAG)

A RAG a válasz létrehozása előtt a releváns adatok adatbázisból való lekérésével javítja az LLM-válaszokat. Ahelyett, hogy kizárólag a modell betanítási adataira támaszkodik, az alkalmazás lekérdezi a működési adatokat a jelenlegi, tartományspecifikus tényekre adott válaszok alapján. Az átfogó áttekintéshez lásd: Retrieval-augmented generation (RAG).

A Fabricben található SQL-adatbázissal működő tipikus RAG-minta a következő lépéseket követi:

  1. Adattömb: A nagyméretű adatforrásokat (dokumentumok, tudásbáziscikkek, termékkatalógusok) kezelhető darabokra bonthatja, és egyszerű szöveggé alakíthatja őket.
  2. Embed: Vektoros beágyazást hozhat létre az egyes adattömbökhöz Azure OpenAI vagy más beágyazási modell használatával.
  3. Tároló: Szúrja be a beágyazásokat egy táblázatba egy vektoroszlopmal a forrásszöveg és a relációs metaadatok mellett.
  4. Lekérés: Amikor egy felhasználó kérdést tesz fel, ágyazza be a lekérdezést ugyanazzal a modellel, majd a VECTOR_DISTANCE használatával keresse meg a leginkább hasonló adattömböket. Relációs táblákkal összekapcsolva gazdagíthatja a környezetet.
  5. Kiegészítés: Egyesítse a beolvasott adattömböket a felhasználó eredeti kérdésével egy olyan kérdésben, amely utasítja az LLM-et a környezet használatára.
  6. Létrehozás: Küldje el a bővített kérést egy LLM-nek, amely a lekért adatokra alapozott választ hoz létre.

Hibrid vektorkeresés tranzakciós adatbázisban

Mivel a beágyazások és a relációs adatok ugyanabban az adatbázisban élnek, relációs attribútumok (dátumtartományok, kategóriák, hozzáférési engedélyek) alapján is szűrhet ugyanabban a lekérdezésben, ami növeli a relevanciát és a biztonságot is. A vektorkereséseket kombinálhatja a hagyományos SQL-szűrőkkel (WHERE) a tranzakciós kapcsolatokra és a vektorfüggvényekre szűrt eredményekhez. Például:

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

Ez a minta a termékjavaslatok, a tudásbázis-keresés és az ügyfélszolgálati forgatókönyvek esetében hasznos, ahol az eredményeknek szemantikailag relevánsnak és üzleti szabályok által korlátozottnak kell lenniük.

Az újabb VECTOR_SEARCH T-SQL-szintaxissal is lekérdezheti a legközelebbi szomszédhoz közeli eredményeket. Például:

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-ügynökök az Fabric MCP-kiszolgálókkal

Fabric nyílt forráskódú Fabric helyi MCP-t és Fabric távoli MCP-kiszolgálót is kínál az AI-ügynökök számára. Ezek a kiszolgálók közvetlen hitelesítést és útmutatást nyújtanak az előkészített műveletekhez, például a munkaterület-kezeléshez, az elemek CRUD-jének és definícióihoz, valamint az engedélykezeléshez.

Mindkét Fabric MCP-kiszolgálói lehetőség bármilyen MCP-kompatibilis ügyféllel működik, beleértve a GitHub Copilot, a kurzort, a Claude Desktopot stb. Például a Visual Studio Code-hoz készült Fabric MCP Server bővítmény együttműködik a Microsoft Fabric bővítménnyel és a GitHub Copilot Chat bővítménnyel. Ezen bővítmények használatával hozzáférhet a Fabric MCP-eszközökhöz GitHub Copilot csevegésben, és ügynökökkel kezelheti Fabric elemeket, például a Fabric SQL-adatbázis létrehozását és kezelését.

  • A Fabric helyi MCP-kiszolgáló helyileg fut a számítógépen, így az AI-ügynökök a környezet elérése nélkül kapják meg azt a környezetet, amelyhez kódokat és elemeket kell létrehozniuk.
  • A Fabric távoli MCP-kiszolgáló egy felhőalapú kiszolgáló, amely lehetővé teszi, hogy az AI-ügynökök előkészített, hitelesített műveleteket hajtsanak végre a Fabric környezetben, helyi beállítás nélkül.

Az AI-eszközök a Fabric MCP-kiszolgálóval kódot írnak a megfelelő API-kkal és a már megbízható RBAC-határokon belül.

A Fabric helyi MCP-kiszolgáló gyors beállítása után például infrastruktúra-kérdéseket tehet fel, és hozzárendelhet feladatokat GitHub Copilot csevegéshez Visual Studio kódban, Ügynök módban. Például:

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

Az ügynök ismert Fabric API-parancsokkal adja vissza az ilyen típusú Fabric elemeket.

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

Az ügynök ismert Fabric API-parancsokkal hozza létre az adatbázis-elemet az alapértelmezett beállításokkal.

AI-ügynökök az SQL MCP Serverrel

Az SQL MCP Server egy Model Context Protocol felületet biztosít, amellyel az AI-ügynökök a nyers SQL létrehozása helyett egy szabályozott, eszközalapú API-val kezelhetik az adatbázist. A kiszolgáló:

  • A konfiguráció által támogatott eszközök meghatározott készletét teszi elérhetővé.
  • Következetesen kényszeríti az engedélyeket és a korlátozásokat.
  • Lehetővé teszi, hogy az ügynökök sématippelés nélkül felfedezzék az elérhető képességeket.

Ez a minta olyan autonóm ügynökök létrehozásához hasznos, amelyek többhelyes munkafolyamatok részeként lekérdezhetik és frissíthetik a működési adatokat.

Az SQL MCP Server a Data API Builder entitás-absztrakcióját, RBAC-jét, gyorsítótárazását és telemetriáját használja egy éles használatra kész felület biztosításához, amely a REST, a GraphQL és az MCP esetén is ugyanúgy működik. Ezt egyszer konfigurálja, és a motor kezeli a többit.

A Visual Studio CodeMSSQL-bővítménye> tartalmaz egy integrált felhasználói felületet a Data API builderhez, így konfigurációs fájlok írása vagy Visual Studio Code elhagyása nélkül hozhat létre REST- és GraphQL- és MCP-végpontokat az SQL-adatbázistáblákhoz. Kiválaszthatja, hogy mely táblákat tegye közzé, konfigurálja a CRUD-engedélyeket, válasszon API-típusokat, tekintse meg a létrehozott konfigurációt, és helyezzen üzembe egy helyi háttérrendszert a Data API Builder segítségével, mindezt egy vizuális felületen.

Bővítés Azure OpenAI-val

Az SQL Database Engine beépített T-SQL-függvényeket biztosít a beágyazások és szövegrészek közvetlenül az adatbázisban való létrehozásához külső kód vagy folyamatok nélkül.

Beágyazási modell regisztrálása

A CREATE KÜLSŐ MODELL használatával regisztráljon egy Azure OpenAI-beágyazási végpontot adatbázis-objektumként. Ez a példa a text-embedding-ada-002 üzembe helyezést használja Microsoft Entra felügyelt identitáshitelesítéssel. Először hozzon létre hozzáférési hitelesítő adatokat az OpenAI Azure felügyelt identitás használatával:

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

Ezután hozzon létre egy külső modellt:

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

További hitelesítési lehetőségekért, beleértve az API-kulcsokat is, tekintse meg a KÜLSŐ MODELL LÉTREHOZÁSA című témakört.

Beágyazások létrehozása soron belül

A AI_GENERATE_EMBEDDINGS használatával vektoros beágyazásokat hozhat létre közvetlenül T-SQL-lekérdezésekben, beszúrásokban és frissítésekben.

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

Adattömb és beágyazás egyetlen utasításba

A AI_GENERATE_CHUNKS kombinálva AI_GENERATE_EMBEDDINGS nagy méretű szöveget törhet darabokra, és beágyazhatja őket egyetlen T-SQL-utasításba.

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;

Közvetlen REST-hívások az sp_invoke_external_rest_endpoint használatával

A AI_GENERATE_EMBEDDINGS által nem tárgyalt forgatókönyvek esetén, például a befejezések vagy a csevegési végpontok meghívásához használja a sp_invoke_external_rest_endpoint segítségével bármely Azure OpenAI REST API-t közvetlenül a T-SQL-ből. További információ: Azure OpenAI-integráció.

Integráció Fabric AI-számítási feladatokkal

A Fabric sql-adatbázisa a platform szélesebb körű AI-képességeihez csatlakozik:

Integráció Használ
Szövet jegyzetfüzetek SQL-adatbázis lekérdezése PySparkból vagy Python-jegyzetfüzetekből adatelőkészítéshez, modellbetanításhoz és kötegelt pontozáshoz.
Fabric adatelemzés Sql-adatokat használjon bemenetként gépi tanulási kísérletekhez, majd írja vissza az előrejelzéseket az adatbázisba működési felhasználás céljából.
Copilot az SQL Database-ben T-SQL-lekérdezések létrehozása, magyarázata és optimalizálása természetes nyelven közvetlenül a Fabric portál lekérdezésszerkesztőjében.
GraphQL API Az AI-dúsított adatok közzététele GraphQL-végpontokon keresztül alkalmazáshasználat céljából.
Adatfolyamok és Dataflow Gen2 Nagy léptékű beágyazási és bővítési munkafolyamatok vezénylése.

Fabric SQL Database használati esettörténetei

Az SQL Database Fabric legjobb használati eseteiről a következő témakörben olvashat bővebben: