Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x)
Database SQL Azure SQL database
di Microsoft Fabric
AI_GENERATE_CHUNKS adalah fungsi bernilai tabel yang membuat "potongan", atau fragmen teks berdasarkan jenis, ukuran, dan ekspresi sumber.
Tingkat kompatibilitas 170
AI_GENERATE_CHUNKS membutuhkan tingkat kompatibilitas setidaknya 170. Ketika tingkat kurang dari 170, Mesin Database tidak dapat menemukan AI_GENERATE_CHUNKS fungsi.
Untuk mengubah tingkat kompatibilitas database, lihat Menampilkan atau mengubah tingkat kompatibilitas database.
Sintaksis
AI_GENERATE_CHUNKS (source = text_expression
, chunk_type = FIXED
[ , chunk_size = numeric_expression ]
[ , overlap = numeric_expression ]
[ , enable_chunk_set_id = numeric_expression ]
)
Argumen
sumber
Ekspresi jenis karakter apa pun (misalnya, nvarchar, varchar, nchar, atau char).
chunk_type
String yang secara harfiah memberi nama jenis atau metode untuk memotong teks/dokumen dan tidak boleh NULL atau nilai dari kolom.
Nilai yang diterima untuk rilis ini:
FIXED
chunk_size
Ketika chunk_type adalah FIXED, parameter ini mengatur ukuran jumlah karakter dari setiap gugus yang ditentukan sebagai variabel, harfiah, atau ekspresi skalar tipe kecil, smallint, int, atau bigint.
chunk_size tidak boleh NULL, negatif, atau nol (0). Parameter ini juga diperlukan saat menggunakan chunk_type .FIXED
Tumpang tindih
Parameter tumpang tindih menentukan persentase teks sebelumnya yang harus disertakan dalam gugus saat ini. Persentase ini diterapkan ke chunk_size parameter untuk menghitung ukuran dalam karakter. Nilai tumpang tindih dapat ditentukan sebagai variabel, harfiah, atau ekspresi skalar jenis tinyint, smallint, int, atau bigint. Ini harus berupa bilangan buletin antara nol (0) dan 50, inklusif, dan tidak boleh NULL atau negatif. Nilai defaultnya adalah nol (0).
enable_chunk_set_id
Ekspresi int atau bit yang berfungsi sebagai bendera untuk mengaktifkan atau menonaktifkan chunk_set_id kolom output; kolom yang mengembalikan angka untuk membantu grup mengembalikan potongan milik sumber yang sama. Nilai 1 mengaktifkan kolom. Jika enable_chunk_set_id dihilangkan, NULL, atau memiliki nilai 0, kolom dinonaktifkan chunk_set_id dan tidak dikembalikan.
Tipe pengembalian
AI_GENERATE_CHUNKS mengembalikan tabel dengan kolom berikut:
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
chunk |
Sama seperti jenis data ekspresi sumber | Teks yang dikembalikan yang dipotong dari ekspresi sumber. |
chunk_order |
bigint | Urutan angka yang diurutkan yang berkaitan dengan urutan setiap gugus diproses dimulai dengan dan meningkat oleh 11. |
chunk_offset |
bigint | Posisi potongan data/dokumen sumber sehubungan dengan awal proses penggugusan. |
chunk_length |
Int | Panjang karakter dari potongan teks yang dikembalikan. |
chunk_set_id |
bigint |
Kolom opsional yang berisi ID yang mengelompokkan semua gugus ekspresi sumber, dokumen, atau baris. Jika beberapa dokumen atau baris dipotong dalam satu transaksi, masing-masing diberikan yang berbeda chunk_set_id. Visibilitas dikontrol oleh enable_chunk_set_id parameter . |
Contoh pengembalian
Berikut adalah contoh hasil AI_GENERATE_CHUNKS pengembalian dengan parameter berikut:
Jenis potongan .
FIXEDUkuran potongan 50 karakter.
'chunk_set_id' diaktifkan.
Teks potongan:
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.
| potongan | 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 |
Komentar
AI_GENERATE_CHUNKS dapat digunakan pada tabel dengan beberapa baris. Bergantung pada ukuran potongan dan jumlah teks yang dipotong, kumpulan hasil menunjukkan kapan memulai kolom atau dokumen baru dengan chunk_set_id kolom. Dalam contoh berikut, chunk_set_id perubahan ketika selesai memotong teks baris pertama dan berpindah ke baris kedua. Nilai untuk chunk_order dan chunk_offset juga mengatur ulang untuk menunjukkan titik awal baru.
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
| potongan | 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 |
Contoh
Sebuah. Memotong kolom teks dengan jenis TETAP dan ukuran 100 karakter
Contoh berikut menggunakan AI_GENERATE_CHUNKS untuk memotong kolom teks. Ini menggunakan chunk_type dari FIXED dan chunk_size 100 karakter.
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. Memotong kolom teks dengan tumpang tindih
Contoh berikut menggunakan AI_GENERATE_CHUNKS untuk memotong kolom teks menggunakan tumpang tindih. Ini menggunakan chunk_type FIXED, chunk_size 100 karakter, dan tumpang tindih 10 persen.
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. Menggunakan AI_GENERATE_EMBEDDINGS dengan AI_GENERATE_CHUNKS
Contoh ini menggunakan AI_GENERATE_EMBEDDINGS dengan AI_GENERATE_CHUNKS untuk membuat penyematan dari potongan teks lalu menyisipkan array vektor yang dikembalikan dari titik akhir inferensi model AI ke dalam tabel.
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;