Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2025 (wersja zapoznawcza 17.x)
Uwaga / Notatka
AI_GENERATE_CHUNKS
program SQL Server 2025 jest obecnie w wersji zapoznawczej.
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 FIXED
wartość , 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 FIXED
elementu chunk_type
.
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, NULL
lub 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 1 wartość . |
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_id element . 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 .
FIXED
Rozmiar 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_order
chunk_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 FIXED
chunk_size
z 100 znaków.
SELECT
c.chunk
FROM
docs_table t
CROSS APPLY
AI_GENERATE_CHUNKS(source = text_column, chunk_type = FIXED, chunk_size = 100) 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 t
CROSS APPLY
AI_GENERATE_CHUNKS(source = text_column, chunk_type = FIXED, chunk_size = 100, overlap = 10) 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 t
CROSS APPLY
AI_GENERATE_CHUNKS(source = t.text_to_chunk, chunk_type = FIXED, chunk_size = 100) c