Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL Database v Microsoft Fabric
AI_GENERATE_CHUNKS je funkce s hodnotou tabulky, která vytváří bloky dat nebo fragmenty textu na základě typu, velikosti a zdrojového výrazu.
Poznámka:
AI_GENERATE_CHUNKSje k dispozici ve službě Azure SQL Managed Instance se zásadami aktualizaceSQL Serveru 2025 nebo Always-up-to-date.
AI_GENERATE_CHUNKS vyžaduje úroveň kompatibility minimálně 170. Pokud je úroveň menší než 170, databázový stroj nemůže najít AI_GENERATE_CHUNKS funkci.
Pokud chcete změnit úroveň kompatibility databáze, přečtěte si článek Zobrazení nebo změna úrovně kompatibility databáze.
Syntaxe
AI_GENERATE_CHUNKS (SOURCE = text_expression
, CHUNK_TYPE = FIXED
[ , CHUNK_SIZE = numeric_expression ]
[ , OVERLAP = numeric_expression ]
[ , ENABLE_CHUNK_SET_ID = numeric_expression ]
)
Argumenty
ZDROJ = text_expression
Výraz libovolného typu znaku (například nvarchar, varchar, nchar nebo char).
CHUNK_TYPE = OPRAVENO
Řetězcový literál pojmenování typu nebo metody pro vytvoření bloku textu nebo dokumentu. Tato hodnota nemůže být NULL ani hodnota ze sloupce.
Přijaté hodnoty jsou:
FIXED
CHUNK_SIZE = numeric_expression
Pokud CHUNK_TYPE je tento FIXEDparametr, nastaví velikost počtu znaků každého bloku určeného jako proměnná, literál nebo skalární výraz typu tinyint, smallint, int nebo bigint.
CHUNK_SIZE nemůže být NULL, záporná ani nula (0). Tento parametr je vyžadován při použití parametru CHUNK_TYPEFIXED.
PŘEKRYTÍ = numeric_expression
Parametr OVERLAP určuje procento předchozího textu, které by se mělo zahrnout do aktuálního bloku dat. Toto procento se použije u parametru CHUNK_SIZE k výpočtu velikosti znaků. Hodnotu OVERLAP lze zadat jako proměnnou, literál nebo skalární výraz typu tinyint, smallint, int nebo bigint. Musí to být celé číslo mezi nulou (0) a 50 včetně a nesmí být NULL ani záporné. Výchozí hodnota je nula (0).
ENABLE_CHUNK_SET_ID = numeric_expression
Int nebo bitový výraz, který slouží jako příznak pro povolení nebo zakázání výstupního chunk_set_id sloupce; sloupec, který vrací číslo, které pomáhá seskupit vrácené bloky dat patřící do stejného zdroje. Hodnota 1 povolí sloupec. Pokud ENABLE_CHUNK_SET_ID tento parametr vynecháte nebo NULLmá hodnotu 0, chunk_set_id sloupec se zakáže a nevrátí se.
Návratové typy
AI_GENERATE_CHUNKS vrátí tabulku s následujícími sloupci:
| Název sloupce | Datový typ | Popis |
|---|---|---|
chunk |
Stejný jako datový typ zdrojového výrazu | Vrátil text, který byl blokován ze zdrojového výrazu. |
chunk_order |
bigint | Posloupnost seřazených čísel, která se vztahují k pořadí, které se jednotlivé bloky dat zpracovávají, počínaje 1 a se zvyšující o 1. |
chunk_offset |
bigint | Umístění bloku zdrojových dat nebo dokumentu vzhledem k začátku procesu vytváření bloků dat. |
chunk_length |
Int | Délka znaku vráceného textového bloku |
chunk_set_id |
bigint |
Volitelný sloupec obsahující ID, který seskupuje všechny bloky zdrojového výrazu, dokumentu nebo řádku. Pokud je v jedné transakci blokováno více dokumentů nebo řádků, každý z nich má jiný chunk_set_id. Viditelnost je řízena parametrem ENABLE_CHUNK_SET_ID . |
Příklad vrácení
Tady je příklad vrácených AI_GENERATE_CHUNKS výsledků s následujícími parametry:
Typ
FIXEDbloku dat .Velikost bloku bloku je 50 znaků.
Tato možnost je povolená
chunk_set_id.Text bloku dat:
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.
| kus | 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 |
Poznámky
AI_GENERATE_CHUNKS lze použít v tabulce s více řádky. V závislosti na velikosti bloku dat a množství textu, který je blokovaný, sada výsledků označuje, kdy spustí nový sloupec nebo dokument se sloupcem chunk_set_id . V následujícím příkladu se chunk_set_id změny po dokončení bloků textu prvního řádku a přesunou se na druhý. Hodnoty pro chunk_order a chunk_offset také resetovat tak, aby označily nový výchozí bod.
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
| kus | 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říklady
A. Vytvoření bloku textového sloupce s typem FIXED a velikostí 100 znaků
Následující příklad používá AI_GENERATE_CHUNKS k vytvoření bloku textového sloupce. Používá CHUNK_TYPEFIXED 100 znaků.CHUNK_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. Vytvoření bloku textového sloupce s překrytím
Následující příklad používá AI_GENERATE_CHUNKS k vytvoření bloku textového sloupce s použitím překrytí. Používá CHUNK_TYPEFIXEDCHUNK_SIZE 100 znaků a překrytí 10 procent.
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. Použití AI_GENERATE_EMBEDDINGS s AI_GENERATE_CHUNKS
Tento příklad používá AI_GENERATE_EMBEDDINGSAI_GENERATE_CHUNKS k vytvoření vkládání z textových bloků a následné vložení vrácených vektorových polí z koncového bodu odvozování modelu AI do tabulky.
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;