Megosztás a következőn keresztül:


Intelligens alkalmazások és AI

A következőkre vonatkozik: SQL Server 2025 (17.x) Azure SQL DatabaseAzure SQL Managed InstanceSQL Database a Microsoft Fabric

Ez a cikk áttekintést nyújt a mesterséges intelligencia (AI) lehetőségeinek, például az OpenAI-nak és a vektoroknak a használatáról intelligens alkalmazások építésére az SQL Database Engine-nel, az SQL Server és az Azure SQL Managed Instance esetében.

Az Azure SQL Database és a Fabric SQL Database esetében lásd: Intelligens alkalmazások és AI.

Példákért és példákért látogasson el az SQL AI-minták adattárába.

Áttekintés

A nagyméretű nyelvi modellek (LLM-ek) lehetővé teszik a fejlesztők számára, hogy jól ismert felhasználói felülettel hozzanak létre mesterséges intelligenciával rendelkező alkalmazásokat.

Az LLM-ek alkalmazásokban való használata nagyobb értéket és jobb felhasználói élményt eredményez, ha a modellek a megfelelő időben férhetnek hozzá a megfelelő adatokhoz az alkalmazás adatbázisából. Ez a folyamat a Retrieveal Augmented Generation (RAG) néven ismert, és az SQL Database Engine számos olyan funkcióval rendelkezik, amelyek támogatják ezt az új mintát, így nagyszerű adatbázissá teszik intelligens alkalmazások létrehozását.

Az alábbi hivatkozások különböző lehetőségek mintakódját biztosítják az intelligens alkalmazások létrehozásához:

AI-beállítás Description
SQL MCP Server Az adatbázis stabil és szabályozott felülete, amely eszközök és konfigurációk készletét határozza meg.
Azure OpenAI Hozzon létre beágyazásokat a RAG-hoz, és integráljon az Azure OpenAI által támogatott modellekkel.
Vektorok Megtudhatja, hogyan tárolhat vektorokat, és hogyan használhat vektorfüggvényeket az adatbázisban.
Azure AI Keresés Az adatbázisát az Azure AI Keresés-csel együtt használva betaníthatja az LLM-et az adataival.
Intelligens alkalmazások Megtudhatja, hogyan hozhat létre végpontok közötti megoldást egy olyan közös mintával, amely bármilyen forgatókönyvben replikálható.

SQL MCP Server AI-alkalmazásokban

Az SQL MCP Server közvetlenül az AI-ügynökök adatútvonalában található.

  • A modellek kérések generálása során a kiszolgáló stabil és szabályozott felületet biztosít az adatbázishoz.
  • Ahelyett, hogy nyers sémát hoz létre, vagy a létrehozott SQL-re támaszkodik, a konfiguráció által támogatott meghatározott eszközökkel irányítja át az összes hozzáférést.

Ez a megközelítés kiszámíthatóvá teszi az interakciókat, és biztosítja, hogy minden művelet megfeleljen a megadott engedélyeknek és struktúrának. További információ: aka.ms/sql/mcp.

Az érvelés végrehajtástól való elválasztásával a modellek a szándékra összpontosítanak, míg az SQL MCP Server kezeli, hogy ez a szándék hogyan válik érvényes lekérdezéssé. Mivel a felület korlátozott és leírt, az ügynökök felfedezhetik a rendelkezésre álló képességeket, megérthetik a bemeneteket és kimeneteket, és találgatás nélkül működhetnek. Ez a kialakítás csökkenti a hibákat, és megszünteti az összetett gyors tervezés szükségességét a séma kétértelműségének kompenzálása érdekében.

A fejlesztők számára ez a megközelítés azt jelenti, hogy az AI biztonságosan részt vehet a valós számítási feladatokban.

Ön megteheti:

  • Az entitások egyszeri definiálása
  • Szerepkörök és korlátozások alkalmazása

Ezután a platform:

  • Entitások, szerepkörök és korlátozások következetes kényszerítése
  • Megbízható alapot hoz létre az ügynökalapú alkalmazásokhoz SQL-adatokon keresztül.

Ugyanaz a konfiguráció, amely a REST-et és a GraphQL-t irányítja, az MCP-t is szabályozza, így a szabályok és a logika nem duplikálhatók. További információ: aka.ms/dab/docs.

A RAG Azure OpenAI-val való implementálásának főbb fogalmai

Ez a szakasz az Azure OpenAI-val való RAG implementációhoz az SQL Database Engine-ben kritikus fontosságú alapfogalmakat tartalmazza.

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

A RAG egy olyan technika, amely javítja az LLM azon képességét, hogy releváns és informatív válaszokat állítsunk elő további adatok külső forrásokból való lekérésével. A RAG például lekérdezheti azokat a cikkeket vagy dokumentumokat, amelyek a felhasználó kérdésével vagy utasításával kapcsolatos szakterülettel kapcsolatos ismereteket tartalmaznak. Az LLM ezután hivatkozásként használhatja ezeket a beolvasott adatokat a válasz létrehozásakor. Az SQL Database Engine használatával például egy egyszerű RAG-minta lehet:

  1. Adatok beszúrása táblázatba.
  2. Csatolja a példányt az Azure AI Kereséshez.
  3. Hozzon létre egy Azure OpenAI GPT-4 modellt, és csatlakoztassa az Azure AI Keresés-hez.
  4. Az alkalmazásból és a példány adataiból származó betanított Azure OpenAI-modell használatával cseveghet és tehet fel kérdéseket az adataival kapcsolatban.

A RAG-minta gyors tervezéssel a válaszminőség növelését szolgálja azáltal, hogy több környezeti információt kínál a modellnek. A RAG lehetővé teszi, hogy a modell szélesebb körű tudásbázis alkalmazzon azáltal, hogy releváns külső forrásokat épít be a létrehozási folyamatba, így átfogóbb és tájékozottabb válaszokat eredményez. Az grounding LLM-ekkel kapcsolatos további információkért lásd: Az LLM-ek – Microsoft Közösségi központ.

"Utánzás és prompt mérnökség"

A parancssor egy adott szöveg vagy információ, amely egy nagy nyelvi modell (LLM) utasításaként szolgál, vagy olyan környezetfüggő adatok, amelyekre az LLM építhet. Egy támpont különböző formátumokat ölthet, mint például kérdés, állítás vagy akár kódrészlet.

Az LLM-ből válasz létrehozására használható mintakérések a következők:

  • Utasítások: irányelvek megadása az LLM-nek
  • Elsődleges tartalom: információt ad az LLM-nek feldolgozásra
  • Példák: segítség a modell adott tevékenységhez vagy folyamathoz való kondicionálásához
  • Cues: irányítsa az LLM kimenetét a megfelelő irányba
  • Támogató tartalom: olyan kiegészítő információkat jelöl, amelyekkel az LLM kimenetet hozhat létre

A forgatókönyvre vonatkozó jó kérések létrehozásának folyamatát parancssori tervezésnek nevezzük. A parancssori mérnöki eljárásokról és az ajánlott eljárásokról további információt a Parancssori mérnöki technikák című témakörben talál.

tokenek

A tokenek a bemeneti szöveg kisebb szegmensekre való felosztásával létrehozott kis szövegrészek. Ezek a szegmensek lehetnek szavak vagy karaktercsoportok, egy karaktertől a teljes szóig változó hosszúságúak. A szó hamburger például tokenekre van osztva, mint például ham, bur és ger, míg egy rövid és gyakori szó, mint pear egyetlen tokennek számít.

Az Azure OpenAI-ban az API tokenizálja a bemeneti szöveget. Az egyes API-kérésekben feldolgozott tokenek száma olyan tényezőktől függ, mint a bemenet, a kimenet és a kérelem paramétereinek hossza. A feldolgozott tokenek mennyisége is befolyásolja a modellek válaszidejét és átviteli sebességét. Minden modell korlátozza az OpenAI Azure egyetlen kérésében és válaszában megadható tokenek számát. További információ: Azure OpenAI az Azure AI Foundry modellek kvótái és korlátai.

Vectors

A vektorok számokat tartalmazó rendezett tömbök (általában lebegőpontosak), amelyek bizonyos adatokkal kapcsolatos információkat képviselnek. Egy kép például a képpontértékek vektoraként is megjeleníthető, vagy egy szöveges sztring az ASCII-értékek vektoraként is megjeleníthető. Az adatok vektorossá alakításának folyamatát vektorizálásnak nevezzük. További információ: Vektoros példák.

A vektoradatok használata egyszerűbb a vektoradat-típus és a vektorfüggvények bevezetésével.

Beágyazások

A beágyazások olyan vektorok, amelyek az adatok fontos jellemzőit képviselik. A beágyazásokat gyakran mélytanulási modell használatával tanulják meg, a gépi tanulás és az AI-modellek pedig funkciókként használják őket. A beágyazások a hasonló fogalmak szemantikai hasonlóságát is rögzíthetik. Amikor például beágyazást hoz létre a person és human szavakhoz, elvárható, hogy a beágyazásaik (vektorábrázolásuk) értékben hasonlóak legyenek, mivel a szavak jelentéstanilag is hasonlóak.

Azure OpenAI olyan modelleket tartalmaz, amelyekkel beágyazásokat hozhat létre szöveges adatokból. A szolgáltatás jogkivonatokra bontja a szöveget, és beágyazásokat hoz létre az OpenAI által előre betanított modellek használatával. További információ: A Azure OpenAI-beágyazások Azure AI Foundry modellekben.

A vektorkeresés egy adathalmaz összes vektorának megkeresése, amely szemantikailag hasonlít egy adott lekérdezésvektorhoz. Ezért a szó human lekérdezésvektorának szemantikailag hasonló szavakat kell keresnie a teljes szótárban, és szoros egyezésként kell megtalálnia a szót person . Ezt a közelséget vagy távolságot egy hasonlósági metrika, például a koszinusz hasonlóságával mérik. A közelebbi vektorok hasonlóak, minél kisebb a távolság közöttük.

Fontolja meg azt a forgatókönyvet, amikor több millió dokumentumon futtat lekérdezést, hogy megtalálja az adatokban a leginkább hasonló dokumentumokat. Az OpenAI Azure használatával beágyazásokat hozhat létre az adatokhoz és lekérdezheti a dokumentumokat. Ezután vektorkereséssel megkeresheti az adathalmazból a leginkább hasonló dokumentumokat. A vektorkeresés végrehajtása azonban néhány példa alapján triviális. Ez a keresés több ezer vagy több millió adatponton is kihívást jelent. A teljes körű keresés és a legközelebbi szomszéd (ANN) keresési módszerek közötti kompromisszumok is léteznek, beleértve a késést, az átviteli sebességet, a pontosságot és a költségeket. Ezek a kompromisszumok az alkalmazás követelményeitől függnek.

A vektorokat hatékonyan tárolhatja és kérdezheti le az SQL Database Engine, a következő szakaszokban leírtak szerint. Ez a funkció nagy teljesítménnyel teszi lehetővé a legközelebbi szomszédkeresést. Nem kell a pontosság és a sebesség között döntenie: mindkettőt használhatja. A vektoros beágyazások és az adatok integrált megoldásban való tárolása minimálisra csökkenti az adatszinkronizálás szükségességét, és felgyorsítja az AI-alkalmazások fejlesztéséhez szükséges időt.

Azure OpenAI

A beágyazás a valós világ adatokként való ábrázolásának folyamata. Szövegeket, képeket vagy hangokat beágyazásokká alakíthat. Azure OpenAI-modellek beágyazásokká alakíthatják a valós információkat. A modelleket REST-végpontokként érheti el, így könnyen felhasználhatja őket az SQL adatbázis-motorból a sp_invoke_external_rest_endpoint rendszer által nyújtott tárolt eljárással. Az eljárás a 2025-ös SQL Server (17.x) verzióban és az Always-up-to-date update policy szerint konfigurált Azure SQL Managed Instance-ban érhető el.

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

A REST-szolgáltatás hívásának használata beágyazások lekéréséhez csak egyike azoknak az integrációs lehetőségeknek, amelyek a SQL Managed Instance és az OpenAI használatakor állnak rendelkezésre. Bármely available modell hozzáférhet az SQL-Database Engine tárolt adatokhoz, hogy olyan megoldásokat hozzon létre, amelyekben a felhasználók kezelhetik az adatokat, például a következő példában:

Képernyőkép egy AI botról, amely egy kérdésre válaszol az SQL Serverben tárolt adatok felhasználásával.

A Azure SQL és az OpenAI használatára vonatkozó további példákért tekintse meg a következő cikkeket, amelyek SQL Server és Azure SQL Managed Instance is vonatkoznak:

  • Képek létrehozása Azure OpenAI Service (DALL-E) és Azure SQL
  • OpenAI REST-végpontok használata Azure SQL

Vektoros példák

A dedikált vektoradat-típus hatékonyan tárolja a vektoradatokat, és számos függvényt tartalmaz, amelyek segítenek a fejlesztőknek egyszerűsíteni a vektorok és hasonlóságok keresésének megvalósítását. Az új VECTOR_DISTANCE függvény használatával kiszámíthatja két vektor távolságát egy kódsorban. További információkért és példákért lásd: Vector search and vector indexes in the SQL Database Engine.

Például:

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)

RAG-mintákat valósít meg az SQL Database Engine és Azure AI Keresés használatával. Támogatott csevegőmodelleket futtathat az SQL-adatbázismotorban tárolt adatokon anélkül, hogy betanítania vagy finomhangolnia kellene a modelleket, az Azure AI Keresés, az Azure OpenAI és az SQL-adatbázismotor integrálásával. Amikor modelleket futtat az adatokon, cseveghet az adatok fölött, és nagyobb pontossággal és sebességgel elemezheti azokat.

A Azure AI Keresés Azure OpenAI-val és az SQL-Database Engine való integrálásáról az alábbi cikkekben olvashat bővebben. Ezek a cikkek SQL Server és Azure SQL Managed Instance is vonatkoznak:

Intelligens alkalmazások

Az SQL Database Engine használatával olyan intelligens alkalmazásokat hozhat létre, amelyek AI-funkciókat, például ajánlókat és lekéréses kiterjesztett generációt (RAG) tartalmaznak, ahogyan az alábbi ábrán látható:

Diagram különböző AI funkciókról, melyek intelligens alkalmazásokat fejlesztenek az Azure SQL Database segítségével.

AI-kompatibilis alkalmazások létrehozásának bemutatására a munkamenetek absztrakt mintájaként használt mintaadatkészlet segítségével, lásd:

Megjegyzés:

A LangChain-integráció és a Szemantikus kernel integráció a vektor adattípusra támaszkodik, amely elérhető a SQL Server 2025 (17.x) és a következőn: Azure SQL Managed Instance, amely az Always-up-to-date vagy a SQL Server 2025 frissítési szabályzattal van konfigurálva, Azure SQL Database, valamint az SQL Database a Microsoft Fabric keretrendszerben.

LangChain-integráció

A LangChain egy jól ismert keretrendszer a nyelvi modelleken alapuló alkalmazások fejlesztéséhez. Példák arra, hogyan hozhat létre csevegőrobotot a saját adatain alapulva a LangChain segítségével.

Néhány példa az Azure SQL LangChainnel való használatára:

Teljes folyamat példák:

Szemantikus kernel integráció

A Szemantikus kernel egy nyílt forráskódú SDK amellyel egyszerűen létrehozhat olyan ügynököket, amelyek meghívják a meglévő kódot. A rendkívül bővíthető SDK, a Szemantikus kernel, használható az OpenAI, az Azure OpenAI, a Hugging Face és mások modelljeivel. A meglévő C#, Python és Java kód ezen modellekkel való kombinálásával olyan ügynököket hozhat létre, amelyek megválaszolják a kérdéseket, és automatizálják a folyamatokat.

Az AI-kompatibilis megoldások létrehozásának egyszerű Szemantikus kernel példája a következő:

  • A végső csevegőrobot?: Hozzon létre egy csevegőrobotot a saját adataira NL2SQL és RAG minták használatával a végső felhasználói élmény érdekében.