Aracılığıyla paylaş


AI_GENERATE_CHUNKS (Transact-SQL)

Şunlar için geçerlidir: SQL Server 2025 (17.x) Azure SQL DatabaseSQL database in Microsoft Fabric

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.

Uyumluluk düzeyi 170

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

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

chunk_type

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

Bu sürüm için kabul edilen değerler:

  • FIXED

chunk_size

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 (NULL) olamaz0. Bu parametre, bir kullanırken chunk_typede FIXED.

Örtüş

Çakışma parametresi, 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 . Çakışma değeri 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

Çı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. enable_chunk_set_id atlanırsa NULLveya değerine 0chunk_set_id sahipse, 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' etkin.

  • Ö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 . DÜZELTİlDİ, 100 karakterlik bir chunk_size ve yüzde 10'unun çakışması chunk_type kullanır.

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;