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
Die AI_GENERATE_EMBEDDINGS Funktion erstellt Embeddings (Vektorarrays) durch Verwendung einer vorgefertigten KI-Modelldefinition, 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 beliebiger Zeichenart, wie 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 zusätzlicher Parameter. Die Funktion fügt diese Parameter dem REST-Anfrage-Nachrichtenkörper hinzu, bevor sie an den Endpunkt des externen Modells gesendet wird. 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
AI_GENERATE_EMBEDDINGS ist in azure SQL Managed Instance mit der Always-up-to-Updaterichtlinie verfügbar.
Voraussetzungen
Stellen Sie sicher AI_GENERATE_EMBEDDINGS, dass Sie die folgenden Voraussetzungen erfüllen:
Aktivieren Sie in der Datenbank mit folgendem Befehl
sp_invoke_external_endpoint:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Hinweis
In Azure SQL-Datenbank und SQL Database in Fabric ist die
external rest endpoint enabledSystemkonfigurationsoption standardmäßig aktiviert.
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.
- Erstellen Sie ein externes Modell dieser
EMBEDDINGSArt, das über die richtigen Zuschüsse, Rollen und Berechtigungen zugänglich ist.
Optionale Parameter
Verwenden Sie den optional_json_request_body_parameters Parameter in AI_GENERATE_EMBEDDINGS , wenn Sie einen Endpunktparameter zum Hauptteil der Embeddings-Anfrage hinzufügen müssen. Das Hinzufügen eines optionalen Parameters überschreibt den Wert zur Laufzeit, wenn die Modelldefinition diesen Parameter enthält.
Wenn zum Beispiel das externe Modell den Parameter für dimensions auf 1.536 setzt, kann man diesen Parameter zur Laufzeit mit einem neuen Wert übergeben optional_json_request_body_parameters .
Im folgenden Beispiel wird der dimensions Parameter für das Modell außer Kraft gesetzt:
json_object("dimensions":755)
Der Wert, in optional_json_request_body_parameters den du übergehst, muss gültiges JSON sein.
Erweiterte Ereignisse (XEvent)
AI_GENERATE_EMBEDDINGS hat ein erweitertes Ereignis (ai_generate_embeddings_summary), das du zur Fehlerbehebung aktivieren kannst. Es enthält Informationen über die REST-Anfrage und -Antwort, wie Statuscode, eventuelle aufgetretene Fehler und den verwendeten Modellnamen. Das erweiterte Event external_rest_endpoint_summary enthält zusätzliche Informationen, die bei der Fehlersuche und dem Debuggen von REST-Anfragen helfen 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.
DECLARE @params JSON = N'{"dimensions":768}'
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS @params)
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.
DECLARE @params JSON = N'{"sql_rest_options":{"retry_count":10}} '
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS @params)
FROM myTable;
F. Ein vollständiges Beispiel mit Modellerstellung, Chunking und Embedding-Generierung
Das folgende Beispiel zeigt einen End-to-End-Prozess, um Ihre Daten KI-tauglich zu machen, indem Sie den Azure OpenAI API Key verwenden:
Verwenden Sie CREATE EXTERNAL MODEL, um Ihr Embedding-Modell zu registrieren und 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 Einbettungen 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
Erstellen Sie Zugriffszugangsdaten für 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ügen Sie die gechunkten Text- und Vektoreinbettungen in die text_embeddings-Tabelle ein, indem Sie und AI_GENERATE_EMBEDDINGSverwendenAI_GENERATE_CHUNKS:
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