Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server 2025 (17.x)
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-Datenbank in Microsoft Fabric
Dieser Artikel bietet eine Übersicht über die Verwendung von KI-Optionen (Künstliche Intelligenz), wie z. B. OpenAI und Vektoren, um intelligente Anwendungen mit dem SQL Datenbank-Engine in SQL Server und Azure SQL Managed Instance zu erstellen.
Informationen zu Azure SQL-Datenbank und SQL-Datenbank in Fabric finden Sie unter Intelligent-Anwendungen und AI.
Proben und Beispiele finden Sie im SQL AI Samples-Repository.
Überblick
Mit großen Sprachmodellen (LLMs) können Entwickler KI-basierte Anwendungen mit einer vertrauten Benutzeroberfläche erstellen.
Die Verwendung von LLMs in Anwendungen bringt mehr Wert und eine verbesserte Benutzererfahrung, wenn die Modelle auf die richtigen Daten zugreifen können, zur richtigen Zeit aus der Datenbank Ihrer Anwendung. Dieser Prozess wird als Rag (Retrieval Augmented Generation) bezeichnet, und die SQL-Datenbank-Engine verfügt über viele Features, die dieses neue Muster unterstützen, wodurch es eine großartige Datenbank zum Erstellen intelligenter Anwendungen ist.
Die folgenden Links enthalten Beispielcode verschiedener Optionen zum Erstellen intelligenter Anwendungen:
| KI-Option | Description |
|---|---|
| SQL MCP Server | Eine stabile und geregelte Schnittstelle für Ihre Datenbank, die eine Reihe von Tools und Konfigurationen definiert. |
| Azure OpenAI | Generieren Sie Einbettungen für RAG und integrieren Sie sie in jedes von Azure OpenAI unterstützte Modell. |
| Vektoren | Erfahren Sie, wie Sie Vektoren speichern und Vektorfunktionen in der Datenbank verwenden. |
| Azure KI-Suche | Verwenden Sie Ihre Datenbank zusammen mit Azure KI-Suche, um LLM mit Ihren Daten zu trainieren. |
| Intelligente Anwendungen | Erfahren Sie, wie Sie eine End-to-End-Lösung mit einem gängigen Muster erstellen, das in jedem Szenario repliziert werden kann. |
SQL MCP Server in KI-Anwendungen
SQL MCP Server befindet sich direkt im Datenpfad für KI-Agents.
- Wenn Modelle Anforderungen generieren, stellt der Server eine stabile und geregelte Schnittstelle zu Ihrer Datenbank bereit.
- Anstatt rohes Schema verfügbar zu machen oder auf generiertes SQL zu vertrauen, leitet es den gesamten Zugriff über einen definierten Satz von Tools weiter, die von Ihrer Konfiguration unterstützt werden.
Dieser Ansatz sorgt für vorhersehbare Interaktionen und stellt sicher, dass jeder Vorgang mit den berechtigungen und der Struktur übereinstimmt, die Sie definieren. Weitere Informationen finden Sie unter aka.ms/sql/mcp.
Durch die Trennung von Gründen von der Ausführung konzentrieren sich Modelle auf die Absicht, während SQL MCP Server behandelt, wie diese Absicht zu gültigen Abfragen wird. Da der Oberflächenbereich eingeschränkt und beschrieben wird, können Agents verfügbare Funktionen ermitteln, Eingaben und Ausgaben verstehen und ohne Erraten funktionieren. Dieser Entwurf reduziert Fehler und entfernt die Notwendigkeit komplexer Prompt Engineerings, um die Mehrdeutigkeit des Schemas zu kompensieren.
Für Entwickler bedeutet dieser Ansatz, dass KI sicher an echten Workloads teilnehmen kann.
Sie haben folgende Möglichkeiten:
- Entitäten einmal definieren
- Anwenden von Rollen und Einschränkungen
Die Plattform dann:
- Erzwingt Entitäten, Rollen und Einschränkungen konsistent
- Erstellt eine zuverlässige Grundlage für agentgesteuerte Anwendungen über SQL-Daten.
Die gleiche Konfiguration, die REST und GraphQL unterstützt, steuert auch MCP, sodass keine Duplizierung von Regeln oder Logik vorhanden ist. Weitere Informationen finden Sie unter aka.ms/dab/docs.
Kernkonzepte für die Implementierung von RAG mit Azure OpenAI
Dieser Abschnitt enthält wichtige Konzepte, die für die Implementierung von RAG mit Azure OpenAI in der SQL-Datenbank-Engine von entscheidender Bedeutung sind.
Abrufen der erweiterten Generation (RAG)
RAG ist eine Technik, die die Fähigkeit des LLM verbessert, relevante und informative Antworten zu erzeugen, indem zusätzliche Daten aus externen Quellen abgerufen werden. Beispielsweise kann RAG Artikel oder Dokumente abfragen, die domänenspezifische Kenntnisse im Zusammenhang mit der Frage oder Aufforderung des Benutzers enthalten. Das LLM kann diese abgerufenen Daten dann als Verweis verwenden, wenn es seine Antwort erstellt. Ein einfaches RAG-Muster mit der SQL-Datenbank-Engine könnte zum Beispiel folgendes sein:
- Fügen Sie Daten in eine Tabelle ein.
- Verknüpfen Sie Ihre Instanz mit Azure KI-Suche.
- Erstellen Sie ein Azure OpenAI GPT-4-Modell, und verbinden Sie es mit Azure KI-Suche.
- Chatten Sie, und stellen Sie Fragen zu Ihren Daten mithilfe des trainierten Azure OpenAI-Modells aus Ihrer Anwendung und aus Daten in Ihrer Instanz.
Das RAG-Muster mit prompt engineering dient dazu, die Antwortqualität zu verbessern, indem dem Modell mehr kontextbezogene Informationen angeboten werden. RAG ermöglicht es dem Modell, eine umfassendere Wissensbasis anzuwenden, indem relevante externe Quellen in den Generierungsprozess integriert werden, was zu umfassenderen und fundierteren Antworten führt. Weitere Informationen zu grounding LLMs finden Sie unter Grounding LLMs - Microsoft Community Hub.
Aufforderungen und Promptgestaltung
Eine Eingabeaufforderung ist spezifischer Text oder Informationen, die als Anweisung für ein großes Sprachmodell (LLM) oder als Kontextdaten dienen, auf denen die LLM aufbauen kann. Eine Eingabeaufforderung kann verschiedene Formen annehmen, z. B. eine Frage, eine Anweisung oder sogar einen Codeausschnitt.
Beispielaufforderungen, mit denen Sie eine Antwort aus einer LLM generieren können, gehören:
- Anweisungen: Bereitstellen von Direktiven an die LLM
- Primärer Inhalt: Gibt informationen an die LLM zur Verarbeitung
- Beispiele: Hilfe beim Festlegen des Modells auf eine bestimmte Aufgabe oder einen bestimmten Prozess
- Hinweise: Leiten Sie die AUSGABE des LLM in die richtige Richtung.
- Unterstützende Inhalte: stellt zusätzliche Informationen dar, die die LLM zum Generieren der Ausgabe verwenden kann.
Der Prozess zum Erstellen guter Aufforderungen für ein Szenario wird als Prompt Engineering bezeichnet. Weitere Informationen zu Eingabeaufforderungen und bewährten Methoden für das Prompt Engineering finden Sie unter Prompt Engineering-Techniken.
Tokenen
Token sind kleine Textabschnitte, die durch Aufteilen des Eingabetexts in kleinere Segmente generiert werden. Bei diesen Segmenten kann es sich entweder um Wörter oder Zeichengruppen handeln, die von einem einzelnen Zeichen bis zu einem ganzen Wort variieren. Beispielsweise wird das Wort hamburger in Token wie ham, bur, und ger aufgeteilt, während ein kurzes und häufig verwendetes Wort wie pear als ein einzelnes Token betrachtet wird.
In Azure OpenAI tokenisiert die API Eingabetext. Die Anzahl der token, die in jeder API-Anforderung verarbeitet werden, hängt von Faktoren wie der Länge der Eingabe, der Ausgabe und der Anforderungsparameter ab. Die Anzahl der verarbeiteten Token wirkt sich auch auf die Reaktionszeit und den Durchsatz der Modelle aus. Jedes Modell hat Beschränkungen für die Anzahl der Token, die es in einer einzelnen Anforderung und Antwort von Azure OpenAI aufnehmen kann. Weitere Informationen finden Sie unter Azure OpenAI in Azure AI Foundry Modellen Kontingente und Grenzwerte.
Vektoren
Vektoren sind geordnete Arrays von Zahlen (in der Regel Gleitkommazahlen), die Informationen zu einigen Daten darstellen können. Beispielsweise kann ein Bild als Vektor von Pixelwerten dargestellt werden, oder eine Textzeichenfolge kann als Vektor von ASCII-Werten dargestellt werden. Der Prozess zum Umwandeln von Daten in einen Vektor wird als Vektorisierung bezeichnet. Weitere Informationen finden Sie unter Vector-Beispiele.
Das Arbeiten mit Vektordaten ist mit der Einführung des Vektordatentyps und der Vektorfunktionen einfacher.
Einbettungen
Einbettungen sind Vektoren, die wichtige Merkmale von Daten darstellen. Einbettungen werden häufig mithilfe eines Deep Learning-Modells gelernt, und maschinelles Lernen und KI-Modelle verwenden sie als Features. Einbettungen können auch semantische Ähnlichkeiten zwischen ähnlichen Konzepten erfassen. Beispielsweise können Sie beim Generieren einer Einbettung für die Wörter person und humandavon ausgehen, dass ihre Einbettungen (Vektordarstellung) im Wert ähnlich sind, da die Wörter auch semantisch ähnlich sind.
Azure OpenAI bietet Modelle, um Einbettungen aus Textdaten zu erstellen. Der Dienst unterbricht Text in Token und generiert Einbettungen mithilfe von Modellen, die von OpenAI vortrainiert wurden. Weitere Informationen finden Sie unter Einbettungen in Azure OpenAI in Azure AI Foundry Models verstehen.
Vektorsuche
Die Vektorsuche ist der Prozess der Suche nach allen Vektoren in einem Dataset, die semantisch einem bestimmten Abfragevektor ähneln. Daher durchsucht ein Abfragevektor für das Wort human das gesamte Wörterbuch nach semantisch ähnlichen Wörtern und sollte das Wort person als enge Übereinstimmung finden. Diese Nähe oder Der Abstand wird mithilfe einer Ähnlichkeitsmetrik wie kosinusgleichheit gemessen. Je ähnlicher die Vektoren sind, desto kleiner ist der Abstand zwischen ihnen.
Betrachten Sie ein Szenario, in dem Sie eine Abfrage über Millionen von Dokumenten ausführen, um die ähnlichsten Dokumente in Ihren Daten zu finden. Sie können Einbettungen für Ihre Daten und Abfragedokumente erstellen, indem Sie Azure OpenAI verwenden. Anschließend können Sie eine Vektorsuche durchführen, um die ähnlichsten Dokumente aus Ihrem Dataset zu finden. Das Ausführen einer Vektorsuche in einigen Beispielen ist jedoch trivial. Das Ausführen derselben Suche über Tausende oder Millionen von Datenpunkten wird zu einer Herausforderung. Es gibt auch Kompromisse zwischen erschöpfenden Suchmethoden und ungefähren benachbarten Suchmethoden (ANN), einschließlich Latenz, Durchsatz, Genauigkeit und Kosten. Alle diese Kompromisse hängen von den Anforderungen Ihrer Anwendung ab.
Sie können Vektoren effizient in der SQL-Datenbank-Engine speichern und abfragen, wie in den nächsten Abschnitten beschrieben. Diese Fähigkeit ermöglicht eine exakte Nächste-Nachbarn-Suche mit ausgezeichneter Leistung. Sie müssen nicht zwischen Genauigkeit und Geschwindigkeit entscheiden: Sie können beides haben. Das Speichern von Vektoreinbettungen zusammen mit den Daten in einer integrierten Lösung reduziert den Aufwand für die Datensynchronisierung und beschleunigt die Markteinführung für die Entwicklung von KI-Anwendungen.
Azure OpenAI
Das Einbetten ist der Prozess der Darstellung der realen Welt als Daten. Sie können Text, Bilder oder Sounds in Einbettungen konvertieren. Azure OpenAI-Modelle können reale Informationen in Einbettungen umwandeln. Sie können auf die Modelle als REST-Endpunkte zugreifen, sodass Sie sie mithilfe der gespeicherten Systemprozedur sp_invoke_external_rest_endpoint problemlos aus dem SQL-Datenbank-Engine nutzen können. Dieses Verfahren ist ab SQL Server 2025 (17.x) verfügbar und Azure SQL Managed Instance mit der Always-up-to-date update policy konfiguriert.
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');
Die Verwendung eines Aufrufs eines REST-Diensts zum Abrufen von Einbettungen ist nur eine der Integrationsoptionen, die Sie beim Arbeiten mit SQL Managed Instance und OpenAI haben. Sie können eines der verfügbaren Modelle auf Daten zugreifen lassen, die in der SQL-Datenbank-Engine gespeichert sind, um Lösungen zu erstellen, in denen Ihre Benutzer mit den Daten interagieren können, wie im folgenden Beispiel:
Weitere Beispiele zur Verwendung von Azure SQL und OpenAI finden Sie in den folgenden Artikeln, die auch für SQL Server und Azure SQL Managed Instance gelten:
- Generieren Sie Bilder mit Azure OpenAI Service (DALL-E) und Azure SQL
- Using OpenAI REST Endpoints with Azure SQL
Vektorbeispiele
Der dedizierte Vektordatentyp speichert Vektordaten effizient und enthält eine Reihe von Funktionen, mit denen Entwickler die Implementierung der Vektor- und Ähnlichkeitssuche optimieren können. Sie können den Abstand zwischen zwei Vektoren in einer Codezeile berechnen, indem Sie die neue VECTOR_DISTANCE Funktion verwenden. Weitere Informationen und Beispiele finden Sie unter Vector search and vector indexes in the SQL Datenbank-Engine.
Beispiel:
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 KI-Suche
Implementieren Sie RAG-Muster mithilfe der SQL-Datenbank-Engine und -Azure KI-Suche. Sie können unterstützte Chatmodelle auf daten ausführen, die in der SQL-Datenbank-Engine gespeichert sind, ohne Modelle trainieren oder optimieren zu müssen, indem Sie Azure KI-Suche in Azure OpenAI und die SQL-Datenbank-Engine integrieren. Wenn Sie Modelle auf Ihren Daten ausführen, können Sie mit größerer Genauigkeit und Geschwindigkeit über Ihre Daten interagieren und sie analysieren.
Weitere Informationen zur Integration von Azure KI-Suche mit Azure OpenAI und dem SQL-Datenbank-Engine finden Sie in den folgenden Artikeln. Diese Artikel gelten auch für SQL Server und Azure SQL Managed Instance:
- Azure OpenAI auf Ihren Daten
- Retrieval Augmented Generation (RAG) bei Azure KI-Suche
- Vector Search mit Azure SQL und Azure KI-Suche
Intelligente Anwendungen
Sie können die SQL-Datenbank-Engine verwenden, um intelligente Anwendungen zu erstellen, die KI-Features enthalten, z. B. Empfehlungser und RAG (Retrieval Augmented Generation), wie das folgende Diagramm zeigt:
Ein End-to-End-Beispiel, das zeigt, wie eine KI-fähige Anwendung unter Verwendung von Sitzungsdaten als Beispieldatensatz erstellt werden kann, finden Sie unter:
- Wie ich eine Sitzungs-Empfehlung in 1 Stunde mit OpenAI erstellt habe.
- Verwenden Sie Retrieval Augmented Generation, um einen Konferenzsitzungsassistenten zu erstellen.
Hinweis
Die Integration von LangChain und Semantischer Kernel basiert auf dem Datentyp vector, der ab SQL Server 2025 (17.x) und in Azure SQL Managed Instance mit der Richtlinie für Immer aktuell oder SQL Server 2025 konfiguriert ist, Azure SQL-Datenbank und SQL-Datenbank in Microsoft Fabric.
LangChain-Integration
LangChain ist ein bekanntes Framework für die Entwicklung von Anwendungen, die von Sprachmodellen unterstützt werden. Beispiele, die zeigen, wie Sie langChain verwenden können, um einen Chatbot auf Ihren eigenen Daten zu erstellen, finden Sie unter:
- langchain-sqlserver PyPI-Paket.
Einige Beispiele für die Verwendung von Azure SQL mit LangChain:
End-to-End-Beispiele:
- Erstellen Sie einen Chatbot mit Ihren eigenen Daten in 1 Stunde mit Azure SQL, Langchain und Chainlit: Erstellen Sie einen Chatbot mit dem RAG-Muster auf Ihren eigenen Daten, indem Sie LangChain zur Orchestrierung von LLM-Aufrufen und Chainlit für die Benutzeroberfläche verwenden.
Semantic-Kernel-Einbindung
Semantischer Kernel ist ein Open-Source SDK, mit dem Sie einfach Agents erstellen können, die Ihren vorhandenen Code aufrufen. Als hoch erweiterbares SDK können Sie Semantischer Kernel mit Modellen von OpenAI, Azure OpenAI, Hugging Face und mehr verwenden. Indem Sie Ihren vorhandenen C#-, Python- und Java Code mit diesen Modellen kombinieren, können Sie Agents erstellen, die Fragen beantworten und Prozesse automatisieren.
Ein Beispiel, wie einfach Semantischer Kernel Ihnen beim Erstellen von KI-fähigen Lösungen hilft:
- Der ultimative Chatbot?: Erstellen Sie einen Chatbot auf Ihren eigenen Daten mithilfe von NL2SQL- und RAG-Mustern für die ultimative Benutzererfahrung.