Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy do: SQL Server 2025 (17.x)
Azure SQL Database
SQL database in Microsoft Fabric
AI_GENERATE_CHUNKS to funkcja wartości tabeli, która tworzy "fragmenty" lub fragmenty tekstu na podstawie typu, rozmiaru i wyrażenia źródłowego.
Poziom zgodności 170
AI_GENERATE_CHUNKS wymaga, aby poziom zgodności był co najmniej 170. Jeśli poziom jest mniejszy niż 170, aparat bazy danych nie może odnaleźć AI_GENERATE_CHUNKS funkcji.
Aby zmienić poziom zgodności bazy danych, zobacz Wyświetlanie lub zmienianie poziomu zgodności bazy danych.
Składnia
Transact-SQL konwencje składni
AI_GENERATE_CHUNKS (source = text_expression
, chunk_type = FIXED
[ , chunk_size = numeric_expression ]
[ , overlap = numeric_expression ]
[ , enable_chunk_set_id = numeric_expression ]
)
Argumenty (w programowaniu)
źródło
Wyrażenie dowolnego typu znaku (na przykład nvarchar, varchar, nchar lub char).
chunk_type
Literał ciągu nazewnictwa typu lub metody do fragmentowania tekstu/dokumentu i nie może być NULL ani wartością z kolumny.
Zaakceptowane wartości dla tej wersji:
FIXED
chunk_size
Gdy chunk_type parametr ma FIXEDwartość , ustawia rozmiar liczby znaków każdego fragmentu określonego jako zmienna, literał lub wyrażenie skalarne typu tinyint, smallint, int lub bigint.
chunk_size nie może być NULL, ujemna lub zero (0). Ten parametr jest również wymagany w przypadku używania chunk_typeelementu FIXED .
zachodzić na siebie
Parametr nakładający się określa wartość procentową poprzedniego tekstu, który powinien zostać uwzględniony w bieżącym fragcie. Ta wartość procentowa jest stosowana do parametru w celu obliczenia rozmiaru chunk_size w znakach.
Nakładające się wartości można określić jako zmienną, literał lub wyrażenie skalarne typu tinyint, smallint, int lub bigint. Musi to być liczba całkowita z zakresu od zera (0) do 50, włącznie i nie może być NULL ani ujemna. Wartość domyślna to zero (0).
enable_chunk_set_id
Wyrażenie typu int lub bit , które służy jako flaga umożliwiająca włączenie lub wyłączenie chunk_set_id kolumny wyjściowej; kolumna zwracająca liczbę, która ułatwia grupowanie zwracanych fragmentów należących do tego samego źródła. Wartość parametru 1 umożliwia kolumnę. Jeśli enable_chunk_set_id zostanie pominięta, NULLlub ma wartość 0, kolumna chunk_set_id jest wyłączona i nie jest zwracana.
Typy zwracane
AI_GENERATE_CHUNKS zwraca tabelę z następującymi kolumnami:
| Nazwa kolumny | Typ danych | Opis |
|---|---|---|
chunk |
Taki sam jak typ danych wyrażenia źródłowego | Zwrócony tekst, który został fragmentowany z wyrażenia źródłowego. |
chunk_order |
bigint | Sekwencja uporządkowanych liczb odnoszących się do kolejności przetwarzania każdego fragmentu, zaczynając od 1 i zwiększająca się o 1wartość . |
chunk_offset |
bigint | Pozycja fragmentu danych/dokumentu źródłowego w odniesieniu do początku procesu fragmentowania. |
chunk_length |
Int | Długość znaków zwracanego fragmentu tekstu. |
chunk_set_id |
bigint |
Opcjonalna kolumna zawierająca identyfikator grupujący wszystkie fragmenty wyrażenia źródłowego, dokumentu lub wiersza. Jeśli wiele dokumentów lub wierszy jest fragmentowanych w jednej transakcji, każda z nich ma inny chunk_set_idelement . Widoczność jest kontrolowana enable_chunk_set_id przez parametr . |
Przykład zwracany
Oto przykład zwracanych wyników AI_GENERATE_CHUNKS z następującymi parametrami:
Typ fragmentu .
FIXEDRozmiar fragmentu wynosi 50 znaków.
Opcja "chunk_set_id" jest włączona.
Tekst fragmentu:
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.
| kawałek | 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 |
Uwagi
AI_GENERATE_CHUNKS można używać w tabeli z wieloma wierszami. W zależności od rozmiaru fragmentu i ilości fragmentu tekstu zestaw wyników wskazuje, kiedy rozpoczyna nową kolumnę lub dokument z kolumną chunk_set_id . W poniższym przykładzie chunk_set_id zmiany po zakończeniu fragmentowania tekstu pierwszego wiersza i przechodzą do drugiego. Wartości i chunk_orderchunk_offset resetuj, aby wskazać nowy punkt początkowy.
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
| kawałek | 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 |
Przykłady
Odp. Fragmentowanie kolumny tekstowej o stałym typie i rozmiarze 100 znaków
W poniższym przykładzie użyto AI_GENERATE_CHUNKS metody do fragmentowania kolumny tekstowej. Używa symbolu chunk_type i FIXEDchunk_size z 100 znaków.
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. Fragmentowanie kolumny tekstowej z nakładającymi się na siebie
W poniższym przykładzie użyto AI_GENERATE_CHUNKS metody do fragmentowania kolumny tekstowej przy użyciu nakładania się. Używa chunk_type STAŁYCH, chunk_size 100 znaków i nakładają się na siebie 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. Używanie AI_GENERATE_EMBEDDINGS z AI_GENERATE_CHUNKS
W tym przykładzie użyto polecenia AI_GENERATE_EMBEDDINGS , AI_GENERATE_CHUNKS aby utworzyć osadzanie z fragmentów tekstu, a następnie wstawia zwracane tablice wektorowe z punktu końcowego wnioskowania modelu sztucznej inteligencji do tabeli.
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;