Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Den här artikeln innehåller en översikt över hur du använder AI-alternativ (artificiell intelligens), till exempel OpenAI och vektorer, för att skapa intelligenta program med SQL Database Engine i SQL Server och Azure SQL Managed Instance.
Information om Azure SQL Database och SQL Database i Fabric finns i Intelligenta program och AI.
För prover och exempel, besök SQL AI-exempel lagringsplats.
Översikt
Med stora språkmodeller (LLM) kan utvecklare skapa AI-baserade program med en välbekant användarupplevelse.
Användning av LLM:er i program ger större värde och en förbättrad användarupplevelse när modellerna kan komma åt rätt data, vid rätt tidpunkt, från programmets databas. Den här processen kallas RAG (Retrieval Augmented Generation) och SQL Database Engine har många funktioner som stöder det här nya mönstret, vilket gör det till en bra databas för att skapa intelligenta program.
Följande länkar innehåller exempelkod för olika alternativ för att skapa intelligenta program:
| AI-alternativ | Description |
|---|---|
| SQL MCP Server | Ett stabilt och styrt gränssnitt för databasen som definierar en uppsättning verktyg och konfigurationer. |
| Azure OpenAI | Generera inbäddningar för RAG och integrera med alla modeller som stöds av Azure OpenAI. |
| Vektorer | Lär dig hur du lagrar vektorer och använder vektorfunktioner i databasen. |
| Azure AI-sökning | Använd databasen tillsammans med Azure AI-sökning för att träna LLM på dina data. |
| Intelligenta applikationer | Lär dig hur du skapar en lösning från slutpunkt till slutpunkt med hjälp av ett vanligt mönster som kan replikeras i alla scenarier. |
SQL MCP Server i AI-program
SQL MCP Server finns direkt i datasökvägen för AI-agenter.
- När modeller genererar begäranden tillhandahåller servern ett stabilt och styrt gränssnitt till databasen.
- I stället för att exponera råschema eller förlita sig på genererad SQL dirigeras all åtkomst via en definierad uppsättning verktyg som backas upp av konfigurationen.
Den här metoden håller interaktionerna förutsägbara och säkerställer att varje åtgärd överensstämmer med de behörigheter och den struktur som du definierar. Mer information finns i aka.ms/sql/mcp.
Genom att separera logik från exekvering fokuserar modellerna på avsikt medan SQL MCP Server hanterar hur avsikten blir giltiga frågor. Eftersom ytan är begränsad och beskriven kan agenter identifiera tillgängliga funktioner, förstå indata och utdata och arbeta utan att gissa. Den här designen minskar felen och tar bort behovet av komplex promptteknik för att kompensera för schemats tvetydighet.
För utvecklare innebär den här metoden att AI på ett säkert sätt kan delta i verkliga arbetsbelastningar.
Du kan:
- Definiera entiteter en gång
- Tillämpa roller och begränsningar
Då plattformen:
- Framtvingar entiteter, roller och begränsningar konsekvent
- Skapar en tillförlitlig grund för agentdrivna program via SQL-data.
Samma konfiguration som driver REST och GraphQL styr också MCP, så det finns ingen duplicering av regler eller logik. Mer information finns i aka.ms/dab/docs.
Viktiga begrepp för att implementera RAG med Azure OpenAI
Det här avsnittet innehåller viktiga begrepp som är viktiga för att implementera RAG med Azure OpenAI i SQL-Database Engine.
Återvinningsförstärkt generering (RAG)
RAG är en teknik som förbättrar LLM:s förmåga att producera relevanta och informativa svar genom att hämta ytterligare data från externa källor. RAG kan till exempel ställa frågor mot artiklar eller dokument som innehåller domänspecifik kunskap relaterad till användarens fråga eller uppmaning. LLM kan sedan använda dessa hämtade data som referens när den genererar sitt svar. Ett enkelt RAG-mönster med sql-Database Engine kan till exempel vara:
- Infoga data i en tabell.
- Länka din instans till Azure AI-sökning.
- Skapa en Azure OpenAI GPT-4-modell och anslut den till Azure AI-sökning.
- Chatta och ställ frågor om dina data med hjälp av den tränade Azure OpenAI-modellen från ditt program och från data i din instans.
RAG-mönstret, med snabb teknik, tjänar syftet att förbättra svarskvaliteten genom att erbjuda mer kontextuell information till modellen. RAG gör det möjligt för modellen att tillämpa ett bredare kunskapsbas genom att införliva relevanta externa källor i genereringsprocessen, vilket resulterar i mer omfattande och välgrundade svar. Mer information om grounding LLMs finns i Grounding LLMs – Microsoft Community Hub.
Uppmaningar och prompt-anpassning
En fråga är specifik text eller information som fungerar som en instruktion till en stor språkmodell (LLM) eller som kontextuella data som LLM kan bygga vidare på. En fråga kan ha olika former, till exempel en fråga, en instruktion eller till och med ett kodfragment.
Exempeluppmaningar som du kan använda för att generera ett svar från en LLM är:
- Instruktioner: tillhandahålla direktiv till LLM
- Primärt innehåll: ger information till LLM för bearbetning
- Exempel: hjälp med att villkora modellen för en viss uppgift eller process
- Tips: dirigera LLM:s utdata i rätt riktning
- Stödinnehåll: representerar kompletterande information som LLM kan använda för att generera utdata
Processen att skapa bra frågor för ett scenario kallas prompt engineering. Mer information om prompts och bästa praxis för prompt engineering finns i Prompt engineering techniques.
Tokener
Token är små textsegment som genereras genom att dela upp indatatexten i mindre segment. Dessa segment kan antingen vara ord eller grupper av tecken, som varierar i längd från ett enda tecken till ett helt ord. Ordet hamburger är till exempel indelat i tokens som ham, buroch ger medan ett kort och vanligt ord som pear anses vara en enda token.
I Azure OpenAI tokeniserar API:et indatatext. Antalet token som bearbetas i varje API-begäran beror på faktorer som längden på parametrarna för indata, utdata och begäran. Mängden token som bearbetas påverkar även modellernas svarstid och dataflöde. Varje modell har gränser för hur många token den kan ta i en enda begäran och ett svar från Azure OpenAI. Mer information finns i Azure OpenAI i Azure AI Foundry Models-kvoter och -gränser.
Vectors
Vektorer är ordnade matriser med tal (vanligtvis flyttal) som kan representera information om vissa data. En bild kan till exempel representeras som en vektor med pixelvärden, eller så kan en textsträng representeras som en vektor med ASCII-värden. Processen för att omvandla data till en vektor kallas vektorisering. Mer information finns i Vektorexempel.
Det är enklare att arbeta med vektordata med introduktionen av vektordatatypen och vektorfunktionerna.
Inbäddningar
Inbäddningar är vektorer som representerar viktiga datafunktioner. Inbäddningar lärs ofta med hjälp av en djupinlärningsmodell, och maskininlärnings- och AI-modeller använder dem som funktioner. Inbäddningar kan också fånga semantisk likhet mellan liknande begrepp. När du till exempel genererar en inbäddning för orden person och humankan du förvänta dig att deras inbäddningar (vektorrepresentation) är liknande i värde eftersom orden också är semantiskt lika.
Azure OpenAI-modeller för att skapa inbäddningar från textdata. Tjänsten delar upp text i tokens och genererar representationer med hjälp av modeller som förtränats av OpenAI. Mer information finns i Understand-inbäddningar i Azure OpenAI i Azure AI Foundry Models.
Vektorsökning
Vektorsökning är processen att hitta alla vektorer i en datauppsättning som semantiskt liknar en specifik frågevektor. Därför söker en frågevektor efter ordet human i hela ordlistan efter semantiskt liknande ord, och det bör hitta ordet person som en nära matchning. Den här närheten, eller avståndet, mäts med hjälp av ett likhetsmått som cosininlikitet. Ju närmare vektorerna är i likhet, desto mindre är avståndet mellan dem.
Tänk dig ett scenario där du kör en fråga över miljontals dokument för att hitta de mest liknande dokumenten i dina data. Du kan skapa inbäddningar för dina data och fråga dokument med hjälp av Azure OpenAI. Sedan kan du utföra en vektorsökning för att hitta de mest liknande dokumenten från datauppsättningen. Att utföra en vektorsökning i några exempel är dock trivialt. Det blir svårt att utföra samma sökning över tusentals eller miljoner datapunkter. Det finns också kompromisser mellan uttömmande sökning och ungefärliga sökmetoder för närmaste granne (ANN), inklusive svarstid, dataflöde, noggrannhet och kostnad. Alla dessa kompromisser beror på kraven för ditt program.
Du kan effektivt lagra och fråga vektorer i SQL-Database Engine, enligt beskrivningen i nästa avsnitt. Den här funktionen tillåter exakt närmsta grannsökning med bra prestanda. Du behöver inte bestämma mellan noggrannhet och hastighet: du kan ha båda. Lagring av vektorbäddningar tillsammans med data i en integrerad lösning minimerar behovet av att hantera datasynkronisering och påskyndar din tid till marknad för UTVECKLING av AI-program.
Azure OpenAI
Inbäddning är processen för att representera den verkliga världen som data. Du kan konvertera text, bilder eller ljud till inbäddningar. Azure OpenAI-modeller kan omvandla verklig information till inbäddningar. Du kan komma åt modellerna som REST-slutpunkter, så att du enkelt kan använda dem från SQL-Database Engine med hjälp av sp_invoke_external_rest_endpoint systemlagringsprocedur. Den här proceduren är tillgänglig från och med SQL Server 2025 (17.x) och Azure SQL Managed Instance konfigurerad med Always-up-to-date update policy.
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');
Att använda ett anrop till en REST-tjänst för att hämta inbäddningar är bara ett av de integreringsalternativ som du har när du arbetar med SQL Managed Instance och OpenAI. Du kan låta någon av de tillgängliga modellerna komma åt data som lagras i SQL-Database Engine för att skapa lösningar där användarna kan interagera med data, till exempel följande exempel:
Ytterligare exempel på hur du använder Azure SQL och OpenAI finns i följande artiklar, som även gäller för SQL Server och Azure SQL Managed Instance:
- Generera bilder med Azure OpenAI Service (DALL-E) och Azure SQL
- Använda OpenAI REST-slutpunkter med Azure SQL
Vektorexempel
Den dedikerade vektordatatypen lagrar effektivt vektordata och innehåller en uppsättning funktioner som hjälper utvecklare att effektivisera implementeringen av vektor- och likhetssökningar. Du kan beräkna avståndet mellan två vektorer i en kodrad med hjälp av den nya VECTOR_DISTANCE funktionen. För mer information och exempel, se Vektorsökning och vektorindexar i SQL Database Engine.
Till exempel:
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)
Azure AI-sökning
Implementera RAG-mönster med hjälp av SQL-Database Engine och Azure AI-sökning. Du kan köra chattmodeller som stöds på data som lagras i SQL-Database Engine utan att behöva träna eller finjustera modeller genom att integrera Azure AI-sökning med Azure OpenAI och SQL Database Engine. När du kör modeller på dina data kan du chatta ovanpå dina data och analysera dem med större noggrannhet och hastighet.
Mer information om integrering av Azure AI-sökning med Azure OpenAI och SQL Database Engine finns i följande artiklar. Dessa artiklar gäller även för SQL Server och Azure SQL Managed Instance:
- Azure OpenAI för dina data
- Retrieval Augmented Generation (RAG) i Azure AI-sökning
- Vector Search med Azure SQL och Azure AI-sökning
Intelligenta applikationer
Du kan använda SQL Database Engine för att skapa intelligenta program som innehåller AI-funktioner, till exempel rekommenderare och RAG (Retrieval Augmented Generation), som följande diagram visar:
Ett heltäckande exempel som visar hur du bygger en AI-driven applikation med sessionsabstrakt som ett exempel på en uppsättning dataprover finns här:
- Hur jag skapade en sessionsrekommendator på 1 timme med OpenAI.
- Använd Retrieval Augmented Generation för att skapa en konferenssessions-assistent.
Anmärkning
LangChain-integrering och Semantic Kernel integrering förlitar sig på datatypen vector, som är tillgängligt från och med SQL Server 2025 (17.x) och i Azure SQL Managed Instance konfigurerat med uppdateringsprincipen Always–up-to-date eller SQL Server 2025, Azure SQL Database och SQL-databas i Microsoft Fabric.
LangChain-integrering
LangChain är ett välkänt ramverk för att utveckla program som drivs av språkmodeller. Exempel som visar hur du kan använda LangChain för att skapa en chattrobot för dina egna data finns i:
- langchain-sqlserver PyPI-paket.
Några exempel på hur du använder Azure SQL med LangChain:
Helhetsexempel:
- Skapa en chattrobot på dina egna data på en timme med Azure SQL, Langchain och Chainlit: Skapa en chattrobot med RAG-mönstret på dina egna data med hjälp av LangChain för att samordna LLM-anrop och Chainlit för användargränssnittet.
Semantic Kernel integrering
Semantic Kernel är en SDK med öppen källkod som du kan använda för att enkelt skapa agenter som anropar din befintliga kod. Som en mycket utökningsbar SDK kan du använda Semantic Kernel med modeller från OpenAI, Azure OpenAI, Hugging Face med mera. Genom att kombinera din befintliga C#, Python och Java kod med dessa modeller kan du skapa agenter som svarar på frågor och automatiserar processer.
Ett exempel på hur enkelt Semantic Kernel hjälper dig att skapa AI-aktiverade lösningar är:
- Den ultimata chattroboten?: Skapa en chattrobot på dina egna data med både NL2SQL- och RAG-mönster för den ultimata användarupplevelsen.