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.
A következőkre vonatkozik: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Database a Microsoft Fabricben
A AI_GENERATE_EMBEDDINGS függvény beágyazást (vektor tömböket) hoz létre egy előre létrehozott AI modelldefiníció segítségével, amely az adatbázisban tárolt.
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 karaktertípus kifejezése , például nvarchar, varchar, nchar vagy char.
model_identifier
Egy külső modell neve, amely egy EMBEDDINGS olyan típusként definiálja, 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
Egy érvényes, JSON-formátumú lista további paraméterekről. A függvény ezeket a paramétereket a REST kérés üzenettestéhez csatolja, mielőtt elküldi a külső modell végpontjába. 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
AI_GENERATE_EMBEDDINGS Az Always-up-to-datefrissítési szabályzattal elérhető a felügyelt Azure SQL-példányban.
Előfeltételek
A használathoz AI_GENERATE_EMBEDDINGSgyőződj meg róla, hogy teljesíted a következő feltételeket:
Kapcsold
sp_invoke_external_endpointbe az adatbázisban a következő parancsot:EXECUTE sp_configure 'external rest endpoint enabled', 1; RECONFIGURE WITH OVERRIDE;Megjegyzés:
Az Azure SQL Database-ben és az SQL adatbázisban a Fabric-ben a
external rest endpoint enabledrendszerkonfigurációs opció alapértelmezés szerint engedélyezett.
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.
- Készíts egy külső modellt a
EMBEDDINGStípusból, amely a megfelelő támogatások, szerepkörek és jogosultságok révén érhető el.
Választható paraméterek
Használd a optional_json_request_body_parameters paramétert akkor a beágyazási AI_GENERATE_EMBEDDINGS kérés üzenet törzséhez, amikor végpontparamétert kell hozzáadnod. Egy opcionális paraméter hozzáadása felülírja az értéket futásidőben, ha a modell definíciója tartalmazza ezt a paramétert.
Például, ha a külső modell tartalmazza a paramétert az dimensions 1 536-ra állítva, akkor futás közben új értékkel továbbíthatod ezt a paramétert optional_json_request_body_parameters .
Az alábbi példában a dimensions modell paramétere felül van bírálva:
json_object("dimensions":755)
Az érték, amibe átlépsz optional_json_request_body_parameters , érvényes JSON-nak kell lennie.
Bővített események (XEvent)
AI_GENERATE_EMBEDDINGS van egy kiterjesztett esemény (ai_generate_embeddings_summary), amit bekapcsolhatsz hibakereséshez. Tartalmaz információkat a REST kérésről és válaszról, például státuszkódot, az észlelt hibákat, valamint a használt modell nevet. A kiterjesztett esemény external_rest_endpoint_summary további információkat tartalmaz, amelyek segíthetnek a REST kérések hibakeresésében és hibakeresésében.
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.
DECLARE @params JSON = N'{"dimensions":768}'
SELECT id,
AI_GENERATE_EMBEDDINGS(large_text USE MODEL MyAzureOpenAIModel PARAMETERS @params)
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.
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. 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égponttól végpontig folyamatot mutat be, amellyel az adataidat AI-re kész lehet készíteni az Azure OpenAI API Key használatával:
Használd a CREATE EXTERNAL MODEL segítségével regisztráld a beágyazási modelledet, és tegyük elérhetővé.
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áljunk beágyazásokat a használatával
AI_GENERATE_EMBEDDINGS.A 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
Hozzáférési jogosultságokat hozhat létre az 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 darabolt szöveget és vektorbeágyazásokat a text_embeddings táblázatba helyezzük be a AI_GENERATE_CHUNKS használatával és AI_GENERATE_EMBEDDINGS:
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)
- sys.sp_invoke_external_rest_endpoint (Transact-SQL)
- 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