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_CHUNKS egy táblaértékű függvény, amely "adattömböket" vagy szövegtöredékeket hoz létre egy típus, méret és forráskifejezés alapján.
Kompatibilitási szint 170
AI_GENERATE_CHUNKS a kompatibilitási szintnek legalább 170-esnek kell lennie. Ha a szint kisebb, mint 170, az adatbázismotor nem találja a függvényt AI_GENERATE_CHUNKS .
Az adatbázisok kompatibilitási szintjének módosításához tekintse meg vagy módosítsa az adatbázis kompatibilitási szintjét.
Szemantika
Transact-SQL szintaxis konvenciók
AI_GENERATE_CHUNKS (source = text_expression
, chunk_type = FIXED
[ , chunk_size = numeric_expression ]
[ , overlap = numeric_expression ]
[ , enable_chunk_set_id = numeric_expression ]
)
Érvek
forrás
Bármilyen típusú kifejezés (például nvarchar, varchar, nchar vagy char).
chunk_type
Egy sztringkonstans, amely a szöveget/dokumentumot tartalmazó típust vagy metódust nevezi el, és nem lehet vagy nem lehet NULL érték egy oszlopból.
A kiadáshoz elfogadott értékek:
FIXED
chunk_size
Ha chunk_type igen FIXED, ez a paraméter az egyes adattömbek karakterszám-méretét állítja be változóként, literálként vagy skaláris kifejezésként apró,kicsi, int vagy bigint típusú skaláris kifejezésként.
chunk_size nem lehet NULLnegatív vagy nulla (0). Ez a paraméter a következő használata chunk_typeesetén is FIXED:
átfed
Az átfedési paraméter határozza meg az aktuális adattömbbe belefoglalandó előző szöveg százalékos arányát. Ez a százalék a paraméterre lesz alkalmazva a chunk_size karakterek méretének kiszámításához. Az átfedési érték megadható változóként, konstansként vagy skaláris kifejezésként apró, kis, int vagy bigint típusú skaláris kifejezésként. Nulla (0) és 50 közötti egész számnak kell lennie, beleértve, és nem lehet NULL vagy negatív. Az alapértelmezett érték nulla (0).
enable_chunk_set_id
A kimeneti oszlop engedélyezésére vagy letiltására szolgáló jelölőként szolgáló int vagy chunk_set_id kifejezés; olyan oszlop, amely egy számot ad vissza, hogy segítsen csoportosítani az ugyanahhoz a forráshoz tartozó visszaadott adattömböket. Az oszlop értéke 1 . Ha enable_chunk_set_id nincs megadva, NULLvagy értéke 0van, az chunk_set_id oszlop le van tiltva, és nem adja vissza.
Visszatérési típusok
AI_GENERATE_CHUNKS a következő oszlopokkal rendelkező táblát ad vissza:
| Oszlop név | Adattípus | Leírás |
|---|---|---|
chunk |
Ugyanaz, mint a forráskifejezés adattípusa | A forráskifejezésből beszúrt szöveget adott vissza. |
chunk_order |
bigint | Az egyes adattömbök feldolgozásának sorrendjéhez kapcsolódó rendezett számok sorozata a következővel 1 kezdődik és növekszik 1: . |
chunk_offset |
bigint | A forrásadatok/dokumentum adattömbjének pozíciója az adattömb-feldolgozási folyamat kezdetéhez viszonyítva. |
chunk_length |
Int | A visszaadott szövegtömb karakterhossza. |
chunk_set_id |
bigint |
Nem kötelező oszlop, amely egy forráskifejezés, dokumentum vagy sor összes adatrészét csoportosító azonosítót tartalmaz. Ha egy tranzakcióban több dokumentum vagy sor van daraboltként, mindegyik más-más chunk_set_id. A láthatóságot a enable_chunk_set_id paraméter szabályozza. |
Példa visszaküldése
Íme egy példa a következő paraméterek visszatérési AI_GENERATE_CHUNKS eredményeire:
Adattömb típusa
FIXED.Az adattömb mérete 50 karakter.
A "chunk_set_id" engedélyezve van.
Adattömb szövege:
All day long we seemed to dawdle through a country 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.
| tömb | chunk_order | chunk_offset | chunk_length | chunk_set_id |
|---|---|---|---|---|
All day long we seemed to dawdle through a country |
1 | 1 | 50 | 1 |
which was full of beauty of every kind. Sometimes |
2 | 51 | 50 | 1 |
we saw little towns or castles on the top of stee |
3 | 101 | 50 | 1 |
p hills such as we see in old missals; sometimes w |
4 | 151 | 50 | 1 |
e ran by rivers and streams which seemed from the |
5 | 201 | 50 | 1 |
wide stony margin on each side of them to be subje |
6 | 251 | 50 | 1 |
ct to great floods. |
7 | 301 | 19 | 1 |
Megjegyzések
AI_GENERATE_CHUNKS több sorból állnak. Az adattömb méretétől és a darabolt szöveg mennyiségétől függően az eredményhalmaz azt jelzi, hogy mikor indít el új oszlopot vagy dokumentumot az chunk_set_id oszloppal. A következő példában a chunk_set_id módosítások az első sor szövegének darabolása után a másodikra kerülnek. Az értékek új chunk_order kiindulási pontot jelölnek, és chunk_offset újat is jeleznek.
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 country 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
SELECT c.*
FROM textchunk t
CROSS APPLY
AI_GENERATE_CHUNKS(source = text_to_chunk, chunk_type = FIXED, chunk_size = 50, enable_chunk_set_id = 1) c
| tömb | chunk_order | chunk_offset | chunk_length | chunk_set_id |
|---|---|---|---|---|
All day long we seemed to dawdle through a country |
1 | 1 | 50 | 1 |
which was full of beauty of every kind. Sometimes |
2 | 51 | 50 | 1 |
we saw little towns or castles on the top of stee |
3 | 101 | 50 | 1 |
p hills such as we see in old missals; sometimes w |
4 | 151 | 50 | 1 |
e ran by rivers and streams which seemed from the |
5 | 201 | 50 | 1 |
wide stony margin on each side of them to be subje |
6 | 251 | 50 | 1 |
ct to great floods. |
7 | 301 | 19 | 1 |
My Friend, Welcome to the Carpathians. I am anxi |
1 | 1 | 50 | 2 |
ously expecting you. Sleep well to-night. At three |
2 | 51 | 50 | 2 |
to-morrow the diligence will start for Bukovina; |
3 | 101 | 50 | 2 |
a place on it is kept for you. At the Borgo Pass m |
4 | 151 | 50 | 2 |
y carriage will await you and will bring you to me |
5 | 201 | 50 | 2 |
. I trust that your journey from London has been a |
6 | 251 | 50 | 2 |
happy one, and that you will enjoy your stay in m |
7 | 301 | 50 | 2 |
y beautiful land. Your friend, DRACULA |
8 | 351 | 38 | 2 |
Példák
Egy. Rögzített típusú és 100 karakter hosszúságú szövegoszlop beírása
Az alábbi példa egy szövegoszlop beírására használható AI_GENERATE_CHUNKS . 100 karakterből chunk_type és 100 karakterből álló karaktert FIXED használchunk_size.
SELECT c.chunk
FROM docs_table AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = text_column, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100) AS c;
B. Átfedő szövegoszlop összeállítása
Az alábbi példa egy szövegoszlop átfedéssel történő beszedésére használható AI_GENERATE_CHUNKS . A RÖGZÍTETT chunk_type, a 100 karakterből álló chunk_size és a 10%-os átfedést használja.
SELECT c.chunk
FROM docs_table AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = text_column, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100, OVERLAP = 10) AS c;
C. AI_GENERATE_EMBEDDINGS használata AI_GENERATE_CHUNKS
Ez a példa a szövegtömbökből történő beágyazásokat használja AI_GENERATE_EMBEDDINGSAI_GENERATE_CHUNKS , majd beszúrja a visszaadott vektortömböket az AI-modell végpontjából egy táblába.
INSERT INTO my_embeddings (chunked_text, vector_embeddings)
SELECT c.chunk,
AI_GENERATE_EMBEDDINGS(c.chunk USE MODEL MyAzureOpenAIModel)
FROM table_with_text AS t
CROSS APPLY
AI_GENERATE_CHUNKS (SOURCE = t.text_to_chunk, CHUNK_TYPE = FIXED, CHUNK_SIZE = 100) AS c;