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:Azure SQL-Datenbank
SQL-Datenbank in Fabric
- Azure SQL-Datenbank
SQL Server & Azure SQL Managed Instance
Dieser Artikel enthält eine Übersicht über die Verwendung von KI-Optionen (Künstliche Intelligenz), wie z. B. OpenAI und Vektoren, um intelligente Anwendungen mit der SQL Datenbank-Engine in Azure SQL-Datenbank und Fabric SQL-Datenbank zu erstellen.
Schauen Sie sich dieses Video in der Reihe Azure SQL-Datenbank Essentials an, um einen kurzen Überblick über das Erstellen einer KI-fähigen Anwendung zu erfahren:
Für Muster und Beispiele besuchen Sie das SQL AI Samples-Repository.
Übersicht
Mit LLMs (Large Language Models) 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 zum richtigen Zeitpunkt auf die richtigen Daten zugreifen können, und zwar von der Datenbank Ihrer Anwendung aus. Dieser Prozess wird als Retrieval Augmented Generation (RAG) bezeichnet. Azure SQL-Datenbank und Fabric SQL-Datenbank verfügen über viele Features, die dieses neue Muster unterstützen, wodurch sie großartige Datenbanken zum Erstellen intelligenter Anwendungen bieten.
Die folgenden Links enthalten Beispielcode verschiedener Optionen zum Erstellen intelligenter Anwendungen:
| KI-Option | Beschreibung |
|---|---|
| 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. |
| Copilot Fähigkeiten in Azure SQL-Datenbank | Erfahren Sie mehr über die Reihe von KI-unterstützten Oberflächen, die entwickelt wurden, um das Design, den Betrieb, die Optimierung und den Zustand von Azure SQL-Datenbank gesteuerten Anwendungen zu optimieren. |
| Copilot-Kompetenzen in der Fabric SQL-Datenbank | Erfahren Sie mehr über die Reihe von KI-unterstützten Oberflächen, die entwickelt wurden, um das Design, den Betrieb, die Optimierung und den Zustand von Fabric SQL-datenbankgesteuerten Anwendungen zu optimieren. |
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. Die Angriffsfläche bleibt begrenzt, da Agents verfügbare Funktionen ermitteln, Eingaben und Ausgaben verstehen und ohne raten zu müssen arbeiten können. 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 Azure SQL-Datenbank oder Fabric SQL-Datenbank wichtig 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änenspezifisches Wissen im Zusammenhang mit der Frage oder Aufforderung des Benutzers enthalten. Das LLM kann diese abgerufenen Daten dann als Referenz verwenden, wenn die Antwort generiert wird. Ein einfaches RAG-Muster mit Azure SQL-Datenbank könnte beispielsweise folgendes sein:
- Fügen Sie Daten in eine Tabelle ein.
- Verknüpfen Sie Azure SQL-Datenbank 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 von Azure SQL-Datenbank.
Das RAG-Muster verbessert zusammen mit prompt engineering die Antwortqualität, indem dem Modell weitere 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.
Prompts und Prompt Engineering
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 Äußerung kann verschiedene Formen annehmen, z. B. eine Frage, eine Anweisung oder sogar einen Codeschnipsel.
Beispielaufforderungen, mit denen Sie eine Antwort aus einer LLM generieren können, gehören:
- Anweisungen: Anweisungen für das LLM geben
- Primäre Inhalte: liefert dem LLM Informationen, die verarbeitet werden sollen
- Beispiele: hilft bei der Konditionierung des Modells für eine bestimmte Aufgabe oder einen bestimmten Prozess
- Hinweise lenken die Ausgabe des LLM in die richtige Richtung
- Unterstützende Inhalte: stellen dem LLM ergänzende Informationen zur Verfügung, die dieses zum Generieren der Ausgabe verwenden kann
Der Prozess der Erstellung guter Eingaben für ein Szenario wird als Prompt Engineering bezeichnet. Weitere Informationen zu Prompts und bewährten Methoden für das Prompt-Engineering finden Sie unter Azure OpenAI Service.
Token
Token sind kleine Textblöcke, die durch Aufteilen des Eingabetexts in kleinere Segmente generiert werden. Diese Segmente können entweder Wörter oder Gruppen von Zeichen sein, wobei die Länge von einem einzelnen Zeichen bis zu einem ganzen Wort variiert. 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. Wie viele Token in einer einzelnen API-Anforderung verarbeitet werden, hängt von verschiedenen Faktoren ab, wie z. B. der Länge der Eingabe-, Ausgabe und Anforderungsparameter. Die Menge der verarbeiteten Token wirkt sich auch auf die Antwortzeit 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 Service 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 des Umwandelns von Daten in eine 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 Creating embeddings with Azure OpenAI.
Eine Liste der Antworten auf häufig gestellte Fragen zu Vektoren und Einbettungen finden Sie unter:
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. Eine Ähnlichkeitsmetrik wie kosinusgleichheit misst diese Nähe oder Distanz. 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. Dann können Sie eine Vektorsuche durchführen, um die ähnlichsten Dokumente in Ihrem Dataset zu suchen. Die Durchführung einer Vektorsuche für einige wenige Beispiele ist noch recht einfach. Die Durchführung derselben Suche über Tausende oder Millionen von Datenpunkten hinweg ist dagegen eine echte 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 Azure SQL-Datenbank speichern und abfragen, was eine genaue Nachbarsuche mit hoher Leistung ermöglicht. 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 minimiert die Notwendigkeit, für eine Synchronisierung der Daten zu sorgen, und beschleunigt die Time-to-Market bei der Entwicklung von KI-Apps.
Weitere Informationen zu Vektoren und Einbettungen finden Sie unter:
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 sp_invoke_external_rest_endpoint systemgespeicherten Prozedur auf einfache Weise von Azure SQL-Datenbank aus verwenden können:
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;
SELECT CAST([key] AS INT) AS [vector_value_id],
CAST([value] AS FLOAT) AS [vector_value]
FROM OPENJSON(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-Datenbank und OpenAI haben. Sie können eines der verfügbaren Modelle verwenden, um auf in Azure SQL-Datenbank gespeicherte Daten zuzugreifen und Lösungen zu erstellen, in denen Ihre Benutzer mit den Daten interagieren können, wie im folgenden Beispiel.
Weitere Beispiele zur Verwendung von SQL-Datenbank und OpenAI finden Sie in den folgenden Artikeln:
- Generieren Sie Bilder mit Azure OpenAI Service (DALL-E) und Azure SQL-Datenbank
- Using OpenAI REST Endpoints with Azure SQL-Datenbank
Vektorbeispiele
Der dedizierte Vektordatentyp ermöglicht eine effiziente und optimierte Speicherung von Vektordaten. Es enthält eine Reihe von Funktionen, die Entwicklern helfen, die Implementierung von Vektor- und Ähnlichkeitssuche zu optimieren. Sie können den Abstand zwischen zwei Vektoren in einer Codezeile berechnen, indem Sie die VECTOR_DISTANCE Funktion verwenden. Weitere Informationen und Beispiele finden Sie unter Vector search and vector indexes in the SQL Datenbank-Engine.
Zum 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 mit Azure SQL-Datenbank und Azure KI-Suche. Sie können unterstützte Chatmodelle auf in Azure SQL-Datenbank gespeicherten Daten ausführen, ohne Modelle trainieren oder optimieren zu müssen, dank der Integration von Azure KI-Suche mit Azure OpenAI und Azure SQL-Datenbank. Indem Sie Modelle für Ihre Daten ausführen, können Sie über Ihre Daten mit höherer Genauigkeit und Geschwindigkeit chatten und diese analysieren.
- Azure OpenAI auf Ihren Daten
- Retrieval Augmented Generation (RAG) bei Azure KI-Suche
- Vector Search with Azure SQL-Datenbank and Azure KI-Suche
Intelligente Anwendungen
Sie können Azure SQL-Datenbank 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 zum Erstellen einer KI-fähigen Anwendung unter Verwendung von Sitzungszusammenfassungen als Beispieldatensatz finden Sie unter:
- Wie ich eine Sitzungs-Empfehlung in einer Stunde mit OpenAI erstellt habe.
- Verwendung von abrufverstärkter Generierung zum Erstellen eines Konferenz-Assistenten.
Weitere Informationen zu intelligenten Anwendungen finden Sie unter:
LangChain-Integration
LangChain ist ein bekanntes Framework für die Entwicklung von Anwendungen, die von Sprachmodellen unterstützt werden. Beispiele, die zeigen, wie LangChain zum Erstellen eines Chatbots auf Ihren eigenen Daten verwendet werden kann, finden Sie unter:
- langchain-sqlserver PyPI-Paket
Einige Beispiele für die Verwendung von Azure SQL mit LangChain:
End-to-End-Beispiele:
- Erstellen Sie in 1 Stunde einen Chatbot mit Ihren eigenen Daten mit Azure SQL, Langchain und Chainlit: Erstellen Sie einen Chatbot mit dem RAG-Muster auf Ihren eigenen Daten unter Verwendung von Langchain, um LLM-Aufrufe zu orchestrieren, und Chainlit für die Benutzeroberfläche.
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, das zeigt, wie einfach Semantischer Kernel Ihnen beim Erstellen einer KI-fähigen Lösung hilft:
- Der ultimative Chatbot?: Erstellen Sie einen Chatbot auf Ihren eigenen Daten mithilfe von NL2SQL- und RAG-Mustern für die ultimative Benutzererfahrung.
Microsoft Copilot Fähigkeiten in Azure SQL-Datenbank
Microsoft Copilot in Azure SQL-Datenbank (Vorschau) ist eine Reihe von KI-unterstützten Erfahrungen, die entwickelt wurden, um das Design, den Betrieb, die Optimierung und den Zustand von Azure SQL-Datenbank gesteuerten Anwendungen zu optimieren.
Copilot bietet relevante Antworten auf Benutzerfragen, die Vereinfachung der Datenbankverwaltung mithilfe von Datenbankkontext, Dokumentation, dynamischen Verwaltungsansichten, Abfragespeicher und anderen Wissensquellen. Zum Beispiel:
- Datenbankadministratoren können Datenbanken unabhängig verwalten und Probleme beheben oder mehr über die Leistung und Funktionen Ihrer Datenbank erfahren.
- Entwickler können Fragen zu ihren Daten stellen wie in Text oder Unterhaltung, um eine T-SQL-Abfrage zu generieren. Entwickler können auch erfahren, wie sie Abfragen schneller schreiben können, indem sie detaillierte Erläuterungen der generierten Abfrage ausführen.
Hinweis
Microsoft Copilot Skills in Azure SQL-Datenbank befinden sich derzeit in der Testversion für eine begrenzte Anzahl früher Anwender. Um sich für dieses Programm anzumelden, besuchen Sie Request Access to Copilot in Azure SQL-Datenbank: Preview.
Microsoft Copilot in Fabric SQL-Datenbank (Vorschau)
Copilot für SQL-Datenbank in Microsoft Fabric umfasst integrierte KI-Unterstützung mit den folgenden Features:
Code completion: Beginnen Sie mit dem Schreiben von T-SQL im SQL-Abfrage-Editor und Copilot generiert automatisch einen Codevorschlag, um die Abfrage abzuschließen. Drücken Sie die TAB-TASTE , um den Codevorschlag anzunehmen oder die Eingabe beizubehalten, um ihn zu ignorieren.
Schnelle Aktionen: Im Menüband des SQL-Abfrage-Editors sind die Optionen Korrigieren und Erläutern schnelle Aktionen. Markieren Sie eine SQL-Abfrage, und wählen Sie eine der Schaltflächen für schnelle Aktionen aus, um die ausgewählte Aktion für Ihre Abfrage auszuführen.
Fix: Copilot behebt Fehler in Ihrem Code, wenn Fehlermeldungen auftreten. Fehlerszenarien können falsche oder nicht unterstützte T-SQL-Code, falsche Rechtschreibungen und vieles mehr umfassen. Copilot enthält auch Kommentare, in denen die Änderungen erläutert werden und BEWÄHRTE SQL-Methoden vorgeschlagen werden.
Explain: Copilot bietet Erklärungen in natürlicher Sprache ihres SQL-Abfrage- und Datenbankschemas im Kommentarformat.
Chat pane: Verwenden Sie den Chatbereich, um Fragen zu Copilot über natürliche Sprache zu stellen. Copilot antwortet mit einer generierten SQL-Abfrage oder natürlicher Sprache basierend auf der gestellten Frage.
Natürliche Sprache in SQL: Generieren Sie T-SQL-Code aus Nur-Text-Anforderungen, und erhalten Sie Vorschläge von Fragen, die Sie zur Beschleunigung Ihres Workflows stellen können.
Dokumentbasierte Q&A: Stellen Sie Copilot Fragen zu allgemeinen SQL-Datenbankfunktionen, und es antwortet in natürlicher Sprache. Copilot hilft auch bei der Suche nach Dokumentationen im Zusammenhang mit Ihrer Anfrage.
Copilot für die SQL-Datenbank verwendet Tabellen- und Ansichtsnamen, Spaltennamen, Primärschlüssel und Fremdschlüsselmetadaten, um T-SQL-Code zu generieren. Copilot für die SQL-Datenbank verwendet keine Daten in Tabellen, um T-SQL-Vorschläge zu generieren.