Aracılığıyla paylaş


AI_GENERATE_CHUNKS (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2025 (17.x) Azure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

AI_GENERATE_CHUNKS bir tür, boyut ve kaynak ifadeye göre öbekler veya metin parçaları oluşturan tablo değerli bir işlevdir.

Uyarı

AI_GENERATE_CHUNKS , SQL Server 2025 veya Always-up-to-dategüncelleştirme ilkesiyle Azure SQL Yönetilen Örneği'nde kullanılabilir.

AI_GENERATE_CHUNKS uyumluluk düzeyinin en az 170 olmasını gerektirir. Düzey 170'ten küçük olduğunda, Veritabanı Altyapısı işlevi bulamaz AI_GENERATE_CHUNKS .

Veritabanının uyumluluk düzeyini değiştirmek için veritabanının uyumluluk düzeyini görüntüleme veya değiştirme bölümüne bakın.

Sözdizimi

Transact-SQL söz dizimi kuralları

AI_GENERATE_CHUNKS (SOURCE = text_expression
                   , CHUNK_TYPE = FIXED
                   [ , CHUNK_SIZE = numeric_expression ]
                   [ , OVERLAP = numeric_expression ]
                   [ , ENABLE_CHUNK_SET_ID = numeric_expression ]
)

Tartışmalar

KAYNAK = text_expression

Herhangi bir karakter türünün ifadesi (örneğin, nvarchar, varchar, nchar veya char).

CHUNK_TYPE = DÜZELTİlDİ

Metni/belgeyi öbeklemek için türü veya yöntemi adlandıran bir dize değişmez değeri. Bu değer veya bir sütundaki bir değer olamaz NULL .

Kabul edilen değerler şunlardır:

  • FIXED

CHUNK_SIZE = numeric_expression

olduğunda CHUNK_TYPEFIXED, bu parametre tinyint, smallint, int veya bigint türünde değişken, değişmez değer veya skaler ifade olarak belirtilen her öbeğin karakter sayısı boyutunu ayarlar. CHUNK_SIZE, negatif veya sıfır (0) olamazNULL. Bu parametre, bir CHUNK_TYPE kullanırken FIXEDgereklidir.

ÇAKıŞMA = numeric_expression

parametresi, OVERLAP geçerli öbekte yer alması gereken önceki metnin yüzdesini belirler. Bu yüzde, karakter cinsinden boyutu hesaplamak için parametresine uygulanır CHUNK_SIZE . Değer OVERLAP tinyint, smallint, int veya bigint türünde bir değişken, değişmez değer veya skaler ifade olarak belirtilebilir. Sıfır (0) ile 50 (dahil) arasında bir tamsayı olmalıdır ve negatif veya negatif olamaz NULL . Varsayılan değer sıfırdır (0 ).

ENABLE_CHUNK_SET_ID = numeric_expression

Çıkış sütununu etkinleştirmek veya devre dışı bırakmak için bayrak işlevi görecek bir int veya chunk_set_id ifadesi; aynı kaynağa ait döndürülen öbekleri gruplandırmaya yardımcı olmak için bir sayı döndüren bir sütun. değeri 1 sütunu etkinleştirir. atlanırsa NULLveya değerine chunk_set_id0sahipseENABLE_CHUNK_SET_ID, sütun devre dışı bırakılır ve döndürülür.

Dönüş türleri

AI_GENERATE_CHUNKS aşağıdaki sütunları içeren bir tablo döndürür:

Sütun adı Veri türü Açıklama
chunk Kaynak ifade veri türüyle aynı Kaynak ifadeden öbeklenmiş metin döndürüldü.
chunk_order bigint ile başlayan ve tarafından artan 1her öbek işlenme sırası ile 1 ilişkili sıralı sayılar dizisi.
chunk_offset bigint Kaynak verilerin/belgenin öbek öbeklerinin öbekleme işleminin başlangıcına göre konumu.
chunk_length Int Döndürülen metin öbeklerinin karakter uzunluğu.
chunk_set_id bigint Kaynak ifadenin, belgenin veya satırın tüm öbeklerini gruplandıran bir kimlik içeren isteğe bağlı sütun . Tek bir işlemde birden çok belge veya satır öbeklenmişse, her birine farklı chunk_set_idbir verilir. Görünürlük parametresi tarafından ENABLE_CHUNK_SET_ID denetlenebilir.

Dönüş örneği

Aşağıda aşağıdaki parametrelerle sonuç döndüren AI_GENERATE_CHUNKS bir örnek verilmiştir:

  • öbek türü FIXED.

  • 50 karakterlik öbek boyutu.

  • chunk_set_id etkindir.

  • Öbek metni: 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.

parça 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

Açıklamalar

AI_GENERATE_CHUNKS birden çok satırı olan bir tabloda kullanılabilir. Öbek boyutuna ve öbeklenen metin miktarına bağlı olarak sonuç kümesi, sütunla yeni bir sütun veya belge başlattığını chunk_set_id gösterir. Aşağıdaki örnekte, ilk satırın chunk_set_id metnini öbeklediğinde değişiklikler yapılır ve ikinci satıra taşınır. ve chunk_order değerleri chunk_offset de yeni bir başlangıç noktasını gösterecek şekilde sıfırlanır.

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
parça 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

Örnekler

A. SABIT türü ve boyutu 100 karakter olan bir metin sütununu öbekle

Aşağıdaki örnek, bir metin sütununu öbeklemek için kullanır AI_GENERATE_CHUNKS . Bir ve 100 karakterden oluşan bir CHUNK_TYPE karakter kullanır.FIXEDCHUNK_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. Çakışan metin sütununu öbekle

Aşağıdaki örnek, çakışma kullanarak bir metin sütununu öbeklemeyi kullanır AI_GENERATE_CHUNKS . 100 karakterden oluşan öğesinin ve yüzde 10'unun çakışmasını kullanır CHUNK_TYPEFIXEDCHUNK_SIZE.

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_CHUNKS ile AI_GENERATE_EMBEDDINGS kullanma

Bu örnek, metin öbeklerinden eklemeler oluşturmak için öğesini AI_GENERATE_EMBEDDINGS kullanır AI_GENERATE_CHUNKS ve ardından yapay zeka modeli çıkarım uç noktasından döndürülen vektör dizilerini bir tabloya ekler.

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;