Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Vonatkozik a következőkre: SQL Server 2025 (17.x)
Azure SQL Database
SQL database in Microsoft Fabric
AI_GENERATE_EMBEDDINGS egy beépített függvény, amely beágyazásokat (vektortömböket) hoz létre az adatbázisban tárolt előre létrehozott AI-modelldefiníció használatával.
Szemantika
Transact-SQL szintaxis konvenciók
AI_GENERATE_EMBEDDINGS ( source USE MODEL model_identifier [ PARAMETERS optional_json_request_body_parameters ] )
Érvek
forrás
Bármilyen típusú kifejezés (például nvarchar, varchar, nchar vagy char).
model_identifier
Egy külső modell neve, amely egy olyan típusként definiál EMBEDDINGS , amelyet a beágyazás vektor tömbének létrehozásához használnak.
További információ: KÜLSŐ MODELL LÉTREHOZÁSA.
optional_json_request_body_parameters
A további paraméterek érvényes JSON formátumú listája. Ezeket a paramétereket a REST kérelmes üzenet testéhez csatolják, mielőtt a külső modell végpontjába küldenék. Ezek a paraméterek attól függnek, hogy a külső modell végpontja mit támogat és elfogad.
Visszatérési típusok
AI_GENERATE_EMBEDDINGS Egyoszlopos táblát ad vissza, amelynek sorai a JSON-ként visszaadott generált beágyazási vektortömbök.
Visszatérési formátum
A visszaadott JSON formátuma a következő:
[
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
]
Megjegyzések
Előfeltételek
A következő feltételeknek kell megfelelnie a belépéshez AI_GENERATE_EMBEDDINGS:
Kapcsold
sp_invoke_external_endpointbe az adatbázisban a következő parancsot:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Készíts egy külső modellt a
EMBEDDINGStípusból, amely a megfelelő támogatások, szerepek és/vagy jogosultságok révén érhető el.
Választható paraméterek
A rendszer optional_json_request_body_parameters akkor használja a paramétert AI_GENERATE_EMBEDDINGS , ha hozzá kell adni egy végpontparamétert a beágyazási kérelemüzenet törzséhez. Ha nem kötelező paramétert ad hozzá, akkor futásidőben felülbírálja az értéket, ha a paraméter a modelldefinícióban van definiálva.
Például, ha a külső modell tartalmazza a 1536-ra állított paramétertdimensions, akkor az at futás idején egy új értékkel továbbítva optional_json_request_body_parametersjson_object("dimensions":755)dimensions a modell paraméterét felülbíráljuk.
Az átadott optional_json_request_body_parameters értéknek érvényes JSON-nak kell lennie.
Beágyazási végpontok létrehozása
További információért a beágyazott végpontok létrehozásáról tekintse át az Azure OpenAI folyamatát Azure AI Foundry Models, OpenAI vagy Ollama területén.
Bővített események (XEvent)
AI_GENERATE_EMBEDDINGS olyan kiterjesztett eseményt (ai_generate_embeddings_summary) használ, amely a hibaelhárításhoz engedélyezhető. Tartalmaz információkat a REST kérésről és válaszról, például státuszkódról, az észlelt hibákról és a használt modellnévről. A kiterjesztett esemény external_rest_endpoint_summary további információkat tartalmaz a REST-kérelmek hibaelhárításához és hibakereséséhez.
Példák
Egy. Beágyazások létrehozása SELECT utasítással
A következő példa bemutatja, hogyan lehet a AI_GENERATE_EMBEDDINGS függvényt egy select utasítással használni, amely JSON tömböt ad vissza.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel)
FROM myTable;
B. Beágyazások létrehozása SELECT utasítással AI_GENERATE_CHUNKS
A következő példa bemutatja, hogyan lehet a AI_GENERATE_EMBEDDINGS függvényt a AI_GENERATE_CHUNKS funkcióval együtt a meghatározott darabméretekben bontott szöveget egy select utasítással továbbítani, amely vektor tömb eredményeket ad vissza.
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. Beágyazások létrehozása táblázatfrissítéssel
Az alábbi példa bemutatja, hogyan használhatja a AI_GENERATE_EMBEDDINGS függvényt táblafrissítési utasítással a vektortömb eredményeinek vektor adattípus-oszlopba való visszaadásához.
UPDATE t
SET myEmbeddings = AI_GENERATE_EMBEDDINGS(t.text USE MODEL MyAzureOpenAIModel)
FROM myTable AS t;
D. Beágyazások létrehozása SELECT utasítással és PARAMÉTEREKkel
Az alábbi példa bemutatja, hogyan használhatja a AI_GENERATE_EMBEDDINGS függvényt egy select utasítással, és hogyan adhat át opcionális paramétereket a végpontnak, amely vektortömberedményeket ad vissza.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"dimensions":768}'))
FROM myTable;
E. Próbálkozás újraépítése PARAMETERS retry_count opcióval
Ha a beágyazási hívás átmeneti problémákat jelző HTTP-állapotkódokkal találkozik, konfigurálhatja a kérést az automatikus újrapróbálkozásokra.
A próbálkozások számának megadásához add hozzá a következő JSON-t az PARAMETERS opcióhoz. Ez az érték pozitív egész szám kell lennie nulla (0) és tíz (10) között, beleértve a tízet, és nem lehet NULL.
Megjegyzés:
Ha a lekérdezésben megadnak egy retry_count értéket AI_GENERATE_EMBEDDINGS , az felülírja a retry_count külső modell konfigurációjában (ha definiálva van) értéket.
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS TRY_CONVERT (JSON, N'{"retry_count":10}'))
FROM myTable;
F. Egy teljes példa modellkészítésre, chunkolásra és beágyazás generálására
Az alábbi példa egy végpontig tartó folyamatot mutat be az adatok AI-készenlétére Azure OpenAI API Key-vel való felhasználásával:
Használd a CREATE EXTERNAL MODEL funkciót regisztrálni és hozzáférhetővé tegye a beágyazási modellt.
Oszd fel az adathalmazt kisebb darabokra AI_GENERATE_CHUNKS-vel, hogy az adatok illeszkedjenek a modell kontextusablakába, és javítsák a lekérdezés pontosságát.
Generálj beágyazásokat .
AI_GENERATE_EMBEDDINGSA találatokat egy táblázatba helyezzük be, amelynek vektoradattípusa van.
Megjegyzés:
Cserélje le a <password> érvényes jelszóra.
Engedélyezzük a külső REST végponthívást az adatbázis szerveren:
EXECUTE sp_configure 'external rest endpoint enabled', 1;
RECONFIGURE WITH OVERRIDE;
GO
Hozz létre egy adatbázis fő kulcsot:
IF NOT EXISTS (SELECT *
FROM sys.symmetric_keys
WHERE [name] = '##MS_DatabaseMasterKey##')
BEGIN
CREATE MASTER KEY ENCRYPTION BY PASSWORD = N'<password>';
END
GO
Hozzon létre hozzáférési credentials-okat Azure OpenAI-hoz egy kulcs segítségével:
CREATE DATABASE SCOPED CREDENTIAL [https://my-azure-openai-endpoint.cognitiveservices.azure.com/]
WITH IDENTITY = 'HTTPEndpointHeaders', secret = '{"api-key":"YOUR_AZURE_OPENAI_KEY"}';
GO
Készíts egy külső modellt, hogy meghívja az Azure OpenAI embeddings REST endpoint-et:
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/]
);
Készíts egy táblát szöveggel, hogy részt vegyen és adatokat adjunk be:
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
Hozz létre egy új táblázatot, amely tartalmazza a darabos szöveget és a vektorbeágyazásokat:
CREATE TABLE text_embeddings
(
embeddings_id INT IDENTITY (1, 1) PRIMARY KEY,
chunked_text NVARCHAR (MAX),
vector_embeddings VECTOR(1536)
);
A darabos szöveget és vektorbeágyazásokat a text_embeddings táblázatba helyezzük be a következő és AI_GENERATE_CHUNKSAI_GENERATE_EMBEDDINGSsegítségével:
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;
Az eredmények megtekintése
SELECT *
FROM text_embeddings;
Kapcsolódó tartalom
- KÜLSŐ MODELL LÉTREHOZÁSA (Transact-SQL)
- KÜLSŐ MODELL MÓDOSÍTÁSA (Transact-SQL)
- KÜLSŐ MODELL (Transact-SQL)
- AI_GENERATE_CHUNKS (Transact-SQL)
- sp_invoke_külső_rest_végpont
- Azure OpenAI létrehozása és üzembe helyezése az Azure AI Foundry Models erőforrásban
- Az SQL Server csatlakoztatása az Azure Arc-hoz