Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2025 (17.x) Preview
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Dit artikel bevat een overzicht van het gebruik van AI-opties (kunstmatige intelligentie), zoals OpenAI en vectoren, voor het bouwen van intelligente toepassingen met de SQL Database Engine in SQL Server en Azure SQL Managed Instance.
Raadpleeg Azure SQL Database.
Ga naar de opslagplaats SQL AI-voorbeelden voor voorbeelden en voorbeelden.
Overzicht
Met grote taalmodellen (LLM's) kunnen ontwikkelaars AI-toepassingen maken met een vertrouwde gebruikerservaring.
Het gebruik van LLM's in toepassingen biedt meer waarde en een verbeterde gebruikerservaring wanneer de modellen op het juiste moment toegang hebben tot de juiste gegevens vanuit de database van uw toepassing. Dit proces staat bekend als Rag (Retrieval Augmented Generation) en de SQL Database Engine heeft veel functies die dit nieuwe patroon ondersteunen, waardoor het een geweldige database is om intelligente toepassingen te bouwen.
De volgende koppelingen bevatten voorbeeldcode van verschillende opties voor het bouwen van intelligente toepassingen:
| AI-optie | Description |
|---|---|
| Azure OpenAI | Genereer insluitingen voor RAG en integreer met elk model dat wordt ondersteund door Azure OpenAI. |
| Vectoren | Informatie over het opslaan van vectoren en het gebruik van vectorfuncties in de database. |
| Azure AI Search | Gebruik uw database samen met Azure AI Search om LLM op uw gegevens te trainen. |
| Intelligente toepassingen | Leer hoe u een end-to-end-oplossing maakt met behulp van een gemeenschappelijk patroon dat in elk scenario kan worden gerepliceerd. |
Belangrijkste concepten voor het implementeren van RAG met Azure OpenAI
Deze sectie bevat belangrijke concepten die essentieel zijn voor het implementeren van RAG met Azure OpenAI in de SQL Database Engine.
Ophaal-Versterkte Generatie (RAG)
RAG is een techniek die het vermogen van de LLM verbetert om relevante en informatieve antwoorden te produceren door extra gegevens uit externe bronnen op te halen. Rag kan bijvoorbeeld query's uitvoeren op artikelen of documenten die domeinspecifieke kennis bevatten met betrekking tot de vraag of prompt van de gebruiker. De LLM kan deze opgehaalde gegevens vervolgens gebruiken als verwijzing bij het genereren van het antwoord. Een eenvoudig RAG-patroon met behulp van de SQL Database Engine kan bijvoorbeeld het volgende zijn:
- Gegevens invoegen in een tabel.
- Koppel uw exemplaar aan Azure AI Search.
- Maak een Azure OpenAI GPT4-model en verbind het met Azure AI Search.
- Chat en stel vragen over uw gegevens met behulp van het getrainde Azure OpenAI-model vanuit uw toepassing en vanuit gegevens in uw exemplaar.
Het RAG-patroon, met prompt engineering, is bedoeld om de responskwaliteit te verbeteren door meer contextuele informatie aan het model te bieden. RAG maakt het mogelijk om een bredere knowledgebase toe te passen door relevante externe bronnen in het generatieproces op te nemen, wat resulteert in uitgebreidere en geïnformeerde antwoorden. Zie Grounding LLMs - Microsoft Community Hub voor meer informatie over het grounden van LLM's.
Prompts en promptopbouw
Een prompt verwijst naar specifieke tekst of informatie die dient als instructie voor een LLM of als contextuele gegevens waarop de LLM kan bouwen. Een prompt kan verschillende vormen aannemen, zoals een vraag, een instructie of zelfs een codefragment.
Voorbeeldprompts die kunnen worden gebruikt om een antwoord van een LLM te genereren:
- Instructies: instructies geven aan de LLM
- Primaire inhoud: geeft informatie aan de LLM voor verwerking
- Voorbeelden: het model aan een bepaalde taak of een bepaald proces aanpassen
- Aanwijzingen: de uitvoer van de LLM in de juiste richting sturen
- Ondersteunende inhoud: vertegenwoordigt aanvullende informatie die de LLM kan gebruiken om uitvoer te genereren
Het proces voor het maken van goede prompts voor een scenario wordt prompt engineering genoemd. Zie De Azure OpenAI-service voor meer informatie over prompts en aanbevolen procedures voor prompt-engineering.
Tokens
Tokens zijn kleine stukken tekst die worden gegenereerd door de invoertekst op te splitsen in kleinere segmenten. Deze segmenten kunnen woorden of groepen tekens zijn, variërend van één teken tot een heel woord. Het woord hamburger wordt bijvoorbeeld onderverdeeld in tokens zoals ham, buren ger hoewel een kort en gemeenschappelijk woord als pear één token wordt beschouwd.
In Azure OpenAI wordt invoertekst die aan de API wordt verstrekt, omgezet in tokens (tokenized). Het aantal tokens dat in elke API-aanvraag wordt verwerkt, is afhankelijk van factoren zoals de lengte van de invoer-, uitvoer- en aanvraagparameters. Het aantal tokens dat wordt verwerkt, heeft ook invloed op de reactietijd en doorvoer van de modellen. Er zijn limieten voor het aantal tokens dat elk model kan aannemen in één aanvraag/reactie van Azure OpenAI. Zie quota en limieten voor De Azure OpenAI-service voor meer informatie.
Vectors
Vectoren zijn geordende matrices van getallen (meestal floats) die informatie over sommige gegevens kunnen vertegenwoordigen. Een afbeelding kan bijvoorbeeld worden weergegeven als een vector van pixelwaarden, of een tekenreeks met tekst kan worden weergegeven als een vector van ASCII-waarden. Het proces om gegevens om te zetten in een vector wordt vectorisatie genoemd. Zie Vector-voorbeelden voor meer informatie.
Werken met vectorgegevens is eenvoudiger met de introductie van het vectorgegevenstype en vectorfuncties.
Embedderingen
Insluitingen zijn vectoren die belangrijke functies van gegevens vertegenwoordigen. Insluitingen worden vaak geleerd met behulp van een Deep Learning-model en machine learning- en AI-modellen gebruiken ze als functies. Insluitingen kunnen ook semantische overeenkomsten tussen vergelijkbare concepten vastleggen. Bij het genereren van een insluiting voor de woorden person en human, verwachten we bijvoorbeeld dat hun insluitingen (vectorweergave) vergelijkbaar zijn in waarde, omdat de woorden ook semantisch vergelijkbaar zijn.
Azure OpenAI bevat modellen voor het maken van insluitingen op basis van tekstgegevens. De service breekt tekst op in tokens en genereert insluitingen met behulp van modellen die vooraf zijn getraind door OpenAI. Zie Insluitingen maken met Azure OpenAIvoor meer informatie.
Zoeken met vectoren
Vectorzoekopdrachten verwijzen naar het proces van het vinden van alle vectoren in een gegevensset die semantisch vergelijkbaar zijn met een specifieke queryvector. Daarom zoekt een queryvector voor het woord human in de hele woordenlijst naar semantisch vergelijkbare woorden en moet het woord person als een nauwe overeenkomst worden gevonden. Deze nabijheid, of afstand, wordt gemeten met behulp van een metrische overeenkomst, zoals cosinus-gelijkenis. De dichtere vectoren zijn vergelijkbaar, hoe kleiner is de afstand tussen deze vectoren.
Overweeg een scenario waarin u een query uitvoert op miljoenen documenten om de meest vergelijkbare documenten in uw gegevens te vinden. U kunt insluitingen maken voor uw gegevens en documenten opvragen met behulp van Azure OpenAI. Vervolgens kunt u een vectorzoekopdracht uitvoeren om de meest vergelijkbare documenten uit uw gegevensset te vinden. Het uitvoeren van een vectorzoekopdracht in een paar voorbeelden is echter triviaal. Het uitvoeren van dezelfde zoekopdracht op duizenden of miljoenen gegevenspunten wordt lastig. Er zijn ook compromissen tussen uitgebreide zoek- en dichtstbijzijnde buren (ANN) zoekmethoden, waaronder latentie, doorvoer, nauwkeurigheid en kosten, die allemaal afhankelijk zijn van de vereisten van uw toepassing.
Vectoren in de SQL Database Engine kunnen efficiënt worden opgeslagen en opgevraagd, zoals beschreven in de volgende secties, waardoor exact dichtstbijzijnde buren kunnen worden gezocht met geweldige prestaties. U hoeft niet te beslissen tussen nauwkeurigheid en snelheid: u kunt beide hebben. Het opslaan van vector-insluitingen naast de gegevens in een geïntegreerde oplossing minimaliseert de noodzaak om gegevenssynchronisatie te beheren en versnelt uw time-to-market voor de ontwikkeling van AI-toepassingen.
Azure OpenAI
Insluiten is het proces van het weergeven van de echte wereld als gegevens. Tekst, afbeeldingen of geluiden kunnen worden geconverteerd naar insluitingen. Azure OpenAI-modellen kunnen echte informatie transformeren in insluitingen. De modellen zijn beschikbaar als REST-eindpunten en kunnen dus eenvoudig worden gebruikt vanuit de SQL Database Engine met behulp van de sp_invoke_external_rest_endpoint systeem opgeslagen procedure, beschikbaar vanaf SQL Server 2025 (17.x) Preview en Azure SQL Managed Instance geconfigureerd met het always-up-to-datum-updatebeleid.
DECLARE @retval INT, @response NVARCHAR(MAX);
DECLARE @payload NVARCHAR(MAX);
SET @payload = JSON_OBJECT('input': @text);
EXEC @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 VECTOR(1536) = JSON_QUERY(@response, '$.result.data[0].embedding');
Het gebruik van een aanroep naar een REST-service om insluitingen te krijgen, is slechts een van de integratieopties die u hebt bij het werken met SQL Managed Instance en OpenAI. U kunt elk van de beschikbare modellen toegang geven tot gegevens die zijn opgeslagen in de SQL Database Engine om oplossingen te maken waar uw gebruikers met de gegevens kunnen werken, zoals in het volgende voorbeeld:
Zie de volgende artikelen, die ook van toepassing zijn op SQL Server en Azure SQL Managed Instance, voor meer voorbeelden over het gebruik van Azure SQL en OpenAI:
- Installatiekopieën genereren met Azure OpenAI Service (DALL-E) en Azure SQL
- OpenAI REST-eindpunten gebruiken met Azure SQL
Vectorvoorbeelden
Het toegewezen vectorgegevenstype biedt efficiënte en geoptimaliseerde opslag van vectorgegevens en wordt geleverd met een set functies om ontwikkelaars te helpen de implementatie van vectoren en overeenkomsten te stroomlijnen. Het berekenen van de afstand tussen twee vectoren kan worden uitgevoerd in één regel code met behulp van de nieuwe VECTOR_DISTANCE functie. Raadpleeg vectorzoek- en vectorindexen in de SQL Database Engine voor meer informatie en voorbeelden.
Voorbeeld:
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 Search
RAG-patronen implementeren met de SQL Database Engine en Azure AI Search. U kunt ondersteunde chatmodellen uitvoeren op gegevens die zijn opgeslagen in de SQL Database Engine, zonder dat u modellen hoeft te trainen of af te stemmen, dankzij de integratie van Azure AI Search met Azure OpenAI en de SQL Database Engine. Door modellen op uw gegevens uit te voeren, kunt u chatten en analyseren, uw gegevens met een grotere nauwkeurigheid en snelheid.
Zie de volgende artikelen voor meer informatie over de integratie van Azure AI Search met Azure OpenAI en de SQL Database Engine, die ook van toepassing zijn op SQL Server en Azure SQL Managed Instance:
- Azure OpenAI op uw gegevens
- Augmented Generation (RAG) ophalen in Azure AI Search
- Vector Search met Azure SQL en Azure AI Search
Intelligente toepassingen
De SQL Database Engine kan worden gebruikt om intelligente toepassingen te bouwen die AI-functies bevatten, zoals aanbevelingen en RAG (Retrieval Augmented Generation), zoals in het volgende diagram wordt gedemonstreert:
Zie voor een end-to-end-voorbeeld voor het bouwen van een AI-toepassing met behulp van sessies abstract als voorbeeldgegevensset:
- Hoe ik in 1 uur een sessie-aanbeveling heb gemaakt met behulp van OpenAI.
- Augmented Generation ophalen gebruiken om een vergadersessieassistent te bouwen
Opmerking
LangChain-integratie en Semantische kernelintegratie zijn afhankelijk van het vectorgegevenstype, dat beschikbaar is vanaf SQL Server 2025 (17.x) Preview en in Azure SQL Managed Instance geconfigureerd met het always-up-to-datum-updatebeleid.
LangChain-integratie
LangChain is een bekend framework voor het ontwikkelen van toepassingen die mogelijk worden gemaakt door taalmodellen. Zie voor voorbeelden die laten zien hoe LangChain kan worden gebruikt om een chatbot op uw eigen gegevens te maken:
- langchain-sqlserver PyPI-pakket
Enkele voorbeelden voor het gebruik van Azure SQL met LangChain:
End-to-end voorbeelden:
- Bouw in één uur een chatbot op uw eigen gegevens met Azure SQL, Langchain en Chainlit: Bouw een chatbot met behulp van het RAG-patroon op uw eigen gegevens met behulp van Langchain voor het organiseren van LLM-aanroepen en Chainlit voor de gebruikersinterface.
Semantische kernelintegratie
Semantische kernel is een opensource-SDK waarmee u eenvoudig agents kunt bouwen die uw bestaande code kunnen aanroepen. Als zeer uitbreidbare SDK kunt u Semantische kernel gebruiken met modellen uit OpenAI, Azure OpenAI, Hugging Face en meer. Door uw bestaande C#-, Python- en Java-code te combineren met deze modellen, kunt u agents bouwen die vragen beantwoorden en processen automatiseren.
Hier ziet u een voorbeeld van hoe eenvoudig Semantische kernel helpt bij het bouwen van oplossingen met AI-functionaliteit:
- De ultieme chatbot?: Bouw een chatbot op uw eigen gegevens met zowel NL2SQL- als RAG-patronen voor de ultieme gebruikerservaring.