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 Database
SQL database in Microsoft Fabric
AI_GENERATE_EMBEDDINGS ist eine integrierte Funktion, die Einbettungen (Vektorarrays) mithilfe einer vordefinierten KI-Modelldefinition erstellt, die in der Datenbank gespeichert ist.
Syntax
Transact-SQL-Syntaxkonventionen
AI_GENERATE_EMBEDDINGS ( source USE MODEL model_identifier [ PARAMETERS optional_json_request_body_parameters ] )
Argumente
Quelle
Ein Ausdruck eines beliebigen Zeichentyps (z. B . nvarchar, varchar, nchar oder char).
model_identifier
Der Name eines externen Modells , definiert als ein EMBEDDINGS Typ, der zur Erstellung des Embeddings-Vektorarrays verwendet wird.
Weitere Informationen finden Sie unter CREATE EXTERNAL MODEL.
optional_json_request_body_parameters
Eine gültige JSON-formatierte Liste mit zusätzlichen Parametern. Diese Parameter werden dem REST-Anforderungsnachrichtenkörper hinzugefügt, bevor sie an den Endpunkt des externen Modells gesendet werden. Diese Parameter hängen davon ab, was der Endpunkt des externen Modells unterstützt und akzeptiert.
Rückgabetypen
AI_GENERATE_EMBEDDINGS gibt eine einspaltige Tabelle zurück, deren Zeilen die generierten einbettenden Vektorarrays sind, die als JSON zurückgegeben werden.
Rückgabeformat
Das Format der zurückgegebenen JSON lautet wie folgt:
[
0.0023929428,
0.00034713413,
-0.0023142276,
-0.025654867,
-0.011492423,
0.0010358924,
-0.014836246,
0.0035484824,
0.000045630233,
-0.027581815,
0.023816079,
0.005012586,
-0.027732948,
-0.010088143,
...
-0.014571763
]
Bemerkungen
Voraussetzungen
Sie müssen die folgenden Voraussetzungen erfüllen, um die Nutzung zu nutzen AI_GENERATE_EMBEDDINGS:
Aktivieren Sie in der Datenbank mit folgendem Befehl
sp_invoke_external_endpoint:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Erstellen Sie ein externes Modell dieser
EMBEDDINGSArt, das über die richtigen Zuschüsse, Rollen und/oder Berechtigungen zugänglich ist.
Optionale Parameter
Der Parameter optional_json_request_body_parametersAI_GENERATE_EMBEDDINGS wird verwendet, wenn ein Endpunktparameter dem Textkörper der Anforderungsnachricht der Einbettungsanforderung hinzugefügt werden muss. Durch Hinzufügen eines optionalen Parameters wird der Wert zur Laufzeit außer Kraft gesetzt, wenn dieser Parameter in der Modelldefinition definiert ist.
Zum Beispiel, wenn das externe Modell den Parameter für dimensions auf 1536 setzt, wird durch Übergabe dieses Parameters zur optional_json_request_body_parameters Laufzeit mit einem neuen Wert, wie hier zu sehen, überschrieben. json_object("dimensions":755)dimensions
Der übergebene optional_json_request_body_parameters Wert muss gültiger JSON-Code sein.
Erstellen von Einbettungsendpunkten
Für weitere Informationen zur Erstellung von Embedding-Endpunkten lesen Sie den Prozess für Azure OpenAI in Azure AI Foundry Models, OpenAI oder Ollama.
Erweiterte Ereignisse (XEvent)
AI_GENERATE_EMBEDDINGS verfügt über ein erweitertes Ereignis (ai_generate_embeddings_summary), das für die Problembehandlung aktiviert werden kann. Sie enthält Informationen über die REST-Anfrage und -Antwort, wie Statuscode, eventuelle aufgetretene Fehler und den verwendeten Modellnamen. Das erweiterte Ereignis external_rest_endpoint_summary enthält zusätzliche Informationen, die sich für die Problembehandlung und das Debuggen von REST-Anforderungen befinden können.
Beispiele
Ein. Erstellen von Einbettungen mit einer SELECT-Anweisung
Das folgende Beispiel zeigt, wie man die AI_GENERATE_EMBEDDINGS Funktion mit einer select-Anweisung verwendet, die Ergebnisse in einem JSON-Array zurückgibt.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel)
FROM myTable;
B. Erstellen von Einbettungen mit einer SELECT-Anweisung mithilfe von AI_GENERATE_CHUNKS
Das folgende Beispiel zeigt, wie man die AI_GENERATE_EMBEDDINGS Funktion mit der AI_GENERATE_CHUNKS-Funktion verwendet, um Text in bestimmte Chunk-Größen mit einer select-Anweisung zu übergeben, die Vektorarray-Ergebnisse zurückgibt.
SELECT id,
title,
large_text,
AI_GENERATE_EMBEDDINGS(c.chunk_text USE MODEL MyAzureOpenAIModel)
FROM myTable
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = large_text,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 10
) AS c;
C. Erstellen von Einbettungen mit einer Tabellenaktualisierung
Das folgende Beispiel zeigt, wie Sie die AI_GENERATE_EMBEDDINGS Funktion mit einer Tabellenaktualisierungsanweisung verwenden, um die Ergebnisse des Vektorarrays in eine Vektordatentypspalte zurückzugeben.
UPDATE t
SET myEmbeddings = AI_GENERATE_EMBEDDINGS(t.text USE MODEL MyAzureOpenAIModel)
FROM myTable AS t;
D. Erstellen von Einbettungen mit einer SELECT-Anweisung und PARAMETERS
Im folgenden Beispiel wird gezeigt, wie Sie die AI_GENERATE_EMBEDDINGS Funktion mit einer Select-Anweisung verwenden und optionale Parameter an den Endpunkt übergeben, wodurch Vektorarrayergebnisse zurückgegeben werden.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"dimensions":768}'))
FROM myTable;
E. Retry-Embeddings-Generierung mit retry_count PARAMETERS-Option
Wenn beim Einbettungsaufruf HTTP-Statuscodes auftreten, die temporäre Probleme angeben, können Sie die Anforderung so konfigurieren, dass die Anforderung automatisch erneut versucht wird.
Um die Anzahl der Wiederholungen anzugeben, fügen Sie die folgende JSON zur PARAMETERS Option hinzu. Dieser Wert sollte eine positive ganze Zahl zwischen null (0) und zehn (10) einschließlich sein, und kann nicht sein NULL.
Hinweis
Wenn ein retry_count Wert in der AI_GENERATE_EMBEDDINGS Abfrage angegeben ist, überschreibt er ( retry_count falls definiert) in der Konfiguration des externen Modells.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"retry_count":10}'))
FROM myTable;
F. Ein vollständiges Beispiel mit Modellerstellung, Chunking und Embedding-Generierung
Das folgende Beispiel demonstriert einen End-to-End-Prozess, um Ihre Daten KI-bereit mit Azure OpenAI API Key zu machen:
Verwenden Sie CREATE EXTERNAL MODEL, um sich zu registrieren und Ihr Embedding-Modell zugänglich zu machen.
Teile den Datensatz mit AI_GENERATE_CHUNKS in kleinere Abschnitte auf, damit die Daten im Kontextfenster des Modells passen und die Abrufgenauigkeit verbessert wird.
Erzeugen Sie Embeddings mit
AI_GENERATE_EMBEDDINGS.Fügen Sie die Ergebnisse in eine Tabelle mit einem Vektordatentyp ein.
Hinweis
Ersetzen Sie <password> durch ein gültiges Kennwort.
Aktivieren Sie den externen REST-Endpunktaufruf auf dem Datenbankserver:
EXECUTE sp_configure 'external rest endpoint enabled', 1;
RECONFIGURE WITH OVERRIDE;
GO
Erstellen Sie einen Datenbank-Masterschlüssel:
IF NOT EXISTS (SELECT *
FROM sys.symmetric_keys
WHERE [name] = '##MS_DatabaseMasterKey##')
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<password>';
END
GO
Erstelle Zugriffszugangsdaten zu Azure OpenAI mit einem Schlüssel:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'HTTPEndpointHeaders', secret = '{"api-key":"YOUR_AZURE_OPENAI_KEY"}';
GO
Erstellen Sie ein externes Modell, um den Azure OpenAI Embeddings REST-Endpunkt aufzurufen:
CREATE EXTERNAL MODEL MyAzureOpenAIModel
WITH (
LOCATION = 'https://my-azure-openai-endpoint.cognitiveservices.azure.com/openai/deployments/text-embedding-ada-002/embeddings?api-version=2023-05-15',
API_FORMAT = 'Azure OpenAI',
MODEL_TYPE = EMBEDDINGS,
MODEL = 'text-embedding-ada-002',
CREDENTIAL = [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
);
Erstellen Sie eine Tabelle mit Text, um Daten zu chunken und einzufügen:
CREATE TABLE textchunk
(
text_id INT IDENTITY (1, 1) PRIMARY KEY,
text_to_chunk NVARCHAR (MAX)
);
GO
INSERT INTO textchunk (text_to_chunk)
VALUES ('All day long we seemed to dawdle through a land which was full of beauty of every kind. Sometimes we saw little towns or castles on the top of steep hills such as we see in old missals; sometimes we ran by rivers and streams which seemed from the wide stony margin on each side of them to be subject to great floods.'),
('My Friend, Welcome to the Carpathians. I am anxiously expecting you. Sleep well to-night. At three to-morrow the diligence will start for Bukovina; a place on it is kept for you. At the Borgo Pass my carriage will await you and will bring you to me. I trust that your journey from London has been a happy one, and that you will enjoy your stay in my beautiful land. Your friend, DRACULA')
GO
Erstelle eine neue Tabelle, um die gebrochenen Texte und Vektor-Einbettungen zu speichern:
CREATE TABLE text_embeddings
(
embeddings_id INT IDENTITY (1, 1) PRIMARY KEY,
chunked_text NVARCHAR (MAX),
vector_embeddings VECTOR(1536)
);
Füge die gechunkten Text- und Vektoreinbettungen in die text_embeddings-Tabelle AI_GENERATE_CHUNKS mit und AI_GENERATE_EMBEDDINGSein:
INSERT INTO text_embeddings (chunked_text, vector_embeddings)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyAzureOpenAIModel)
FROM textchunk AS t
CROSS APPLY AI_GENERATE_CHUNKS (
SOURCE = t.text_to_chunk,
CHUNK_TYPE = FIXED,
CHUNK_SIZE = 100
) AS c;
Anzeigen der Ergebnisse
SELECT *
FROM text_embeddings;
Verwandte Inhalte
- EXTERNES MODELL ERSTELLEN (Transact-SQL)
- EXTERNES MODELL ÄNDERN (Transact-SQL)
- AUSSERMODELL FALLEN LASSEN (Transact-SQL)
- AI_GENERATE_CHUNKS (Transact-SQL)
- sp_invoke_external_rest_endpoint
- Erstellen und Bereitstellen einer Azure OpenAI in Azure AI Foundry Models-Ressource
- Verbinden Ihres SQL Server mit Azure Arc