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.
Nota
Pencarian Azure AI tersedia melalui portal Azure, REST API, dan Azure SDK. Ini juga mendukung Foundry IQ, lapisan pengetahuan terkelola yang mengubah konten perusahaan menjadi pangkalan pengetahuan yang dapat digunakan kembali dan sadar izin untuk agen di portal Microsoft Foundry.
Important
Fitur, kemampuan, atau properti yang ditandai (pratinjau) tidak tercakup dalam perjanjian tingkat layanan, tidak disarankan untuk beban kerja produksi, dan mungkin berubah atau dibatasi sebelum tersedia secara umum. Ketentuan pratinjau Pencarian Azure AI berlaku untuk semua fungsionalitas pratinjau, baik itu mandiri atau bagian dari fitur yang tersedia secara umum.
Keterampilan Pemisahan Teks memecah teks menjadi potongan-potongan teks. Anda dapat menentukan apakah Anda ingin memecah teks menjadi kalimat atau menjadi halaman dengan panjang tertentu. Metadata posisi seperti offset dan posisi ordinal juga tersedia sebagai output. Keterampilan ini berguna jika ada persyaratan panjang teks maksimum dalam keterampilan lain di hilir, seperti keterampilan penyematan yang meneruskan potongan data ke model penyematan di Azure OpenAI dan penyedia model lainnya. Untuk informasi selengkapnya tentang skenario ini, lihat Dokumen potongan untuk pencarian vektor.
Nota
Keterampilan ini tidak terikat pada Alat Pengecoran. Ini tidak dapat ditagih dan tidak memiliki persyaratan kunci Alat Pengecoran.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parameter keterampilan
Parameter peka huruf besar/kecil.
| Nama Parameter | Deskripsi |
|---|---|
textSplitMode |
Salah satu pages atau sentences. Halaman memiliki panjang maksimum yang dapat dikonfigurasi, tetapi keterampilan mencoba untuk menghindari pemotongan kalimat sehingga panjang sebenarnya mungkin lebih kecil. Kalimat adalah string yang diakhiri pada tanda baca akhir kalimat, seperti titik, tanda tanya, atau tanda seru, dengan asumsi bahasa tersebut memiliki tanda baca akhir kalimat. |
maximumPageLength |
Hanya berlaku jika textSplitMode diatur ke pages. Untuk unit set to characters, parameter ini mengacu pada panjang halaman maksimum dalam karakter yang diukur dengan String.Length. Nilai minimum adalah 300, maksimum adalah 50000, dan nilai defaultnya adalah 5000. Algoritme melakukan yang terbaik untuk mematahkan teks pada batas kalimat, sehingga ukuran setiap potongan mungkin sedikit kurang dari maximumPageLength. Untuk unit diatur ke azureOpenAITokens, panjang halaman maksimum adalah batas panjang token model. Untuk model penyematan teks, rekomendasi umum untuk panjang halaman adalah 512 token. |
defaultLanguageCode |
(opsional) Salah satu kode bahasa berikut: am, bs, cs, da, de, en, es, et, fr, he, hi, hr, hu, fi, id, is, it, ja, ko, lv, no, nl, pl, pt-PT, pt-BR, ru, sk, sl, sr, sv, tr, ur, zh-Hans. Defaultnya adalah bahasa Inggris (en). Beberapa hal yang perlu dipertimbangkan:
|
pageOverlapLength |
Hanya berlaku jika textSplitMode diatur ke pages. Setiap halaman dimulai dengan jumlah karakter atau token ini dari akhir halaman sebelumnya. Jika parameter ini diatur ke 0, tidak ada teks yang tumpang tindih pada halaman berturut-turut.
Contoh ini mencakup parameter. |
maximumPagesToTake |
Hanya berlaku jika textSplitMode diatur ke pages. Jumlah halaman yang akan dikembalikan. Defaultnya adalah 0, yang berarti mengembalikan semua halaman. Anda harus menetapkan nilai ini jika hanya sebagian halaman yang diperlukan.
Contoh ini mencakup parameter. |
unit (pratinjau) |
Hanya berlaku jika textSplitMode diatur ke pages. Menentukan apakah akan dipotong dengan characters (default) atau azureOpenAITokens. Mengatur unit memengaruhi maximumPageLength dan pageOverlapLength. |
azureOpenAITokenizerParameters (pratinjau) |
Objek yang menyediakan parameter tambahan untuk azureOpenAITokens unit. encoderModelName adalah tokenizer yang ditunjuk yang digunakan untuk mengubah teks menjadi token, penting untuk tugas pemrosesan bahasa alami (NLP). Model yang berbeda menggunakan tokenizer yang berbeda. Nilai yang valid termasuk cl100k_base (default) yang digunakan oleh GPT-4. Nilai valid lainnya adalah r50k_base, p50k_base, dan p50k_edit. Keterampilan ini mengimplementasikan pustaka tiktoken melalui SharpToken dan Microsoft.ML.Tokenizers tetapi tidak mendukung setiap encoder. Misalnya, saat ini tidak ada dukungan untuk pengkodean o200k_base yang digunakan oleh GPT-4o. allowedSpecialTokens mendefinisikan kumpulan token khusus yang diizinkan dalam proses tokenisasi. Token khusus adalah string yang ingin Anda perlakukan secara unik, memastikannya tidak terbelah selama tokenisasi. Misalnya, ["[START"], "[END]"]. Jika tiktoken pustaka tidak melakukan tokenisasi seperti yang diharapkan, baik karena batasan khusus bahasa atau perilaku tak terduga lainnya, disarankan untuk menggunakan pemisahan teks sebagai gantinya. |
Masukan keterampilan
| Nama Parameter | Deskripsi |
|---|---|
text |
Teks yang akan dibagi menjadi substring. |
languageCode |
(Opsional) Kode bahasa untuk dokumen. Jika Anda tidak mengetahui bahasa input teks (misalnya, jika Anda menggunakan LanguageDetectionSkill untuk mendeteksi bahasa), Anda dapat menghilangkan parameter ini. Jika Anda menyetel languageCode ke bahasa tidak ada dalam daftar yang didukung untuk defaultLanguageCode, peringatan akan dipancarkan dan teks tidak dibagi. |
Keluaran Keterampilan
| Nama Parameter | Deskripsi |
|---|---|
textItems |
Output adalah array substring yang diekstraksi.
textItems adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
offsets |
Output adalah susunan offset yang diekstraksi. Nilai pada setiap indeks adalah objek yang berisi offset item teks pada indeks tersebut dalam tiga pengkodean: UTF-8, UTF-16, dan CodePoint.
offsets adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
lengths |
Output adalah susunan panjang yang diekstraksi. Nilai pada setiap indeks adalah objek yang berisi offset item teks pada indeks tersebut dalam tiga pengkodean: UTF-8, UTF-16, dan CodePoint.
lengths adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
ordinalPositions |
Output adalah array posisi ordinal yang sesuai dengan posisi item teks dalam teks sumber.
ordinalPositions adalah nama default output. targetName opsional, tetapi jika Anda memiliki beberapa keterampilan Pemisahan Teks, pastikan untuk mengatur targetName agar Anda tidak menimpa data dari keterampilan pertama dengan keterampilan kedua. Jika targetName diatur, gunakan dalam pemetaan bidang output atau dalam keterampilan hilir yang menggunakan output keterampilan, seperti keterampilan penyematan. |
Contoh definisi
{
"name": "SplitSkill",
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"description": "A skill that splits text into chunks",
"context": "/document",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"unit": "azureOpenAITokens",
"azureOpenAITokenizerParameters":{
"encoderModelName":"cl100k_base",
"allowedSpecialTokens": [
"[START]",
"[END]"
]
},
"maximumPageLength": 512,
"inputs": [
{
"name": "text",
"source": "/document/text"
},
{
"name": "languageCode",
"source": "/document/language"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "pages"
}
]
}
Input contoh
{
"values": [
{
"recordId": "1",
"data": {
"text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
"languageCode": "en"
}
},
{
"recordId": "2",
"data": {
"text": "This is the second document, which will be broken into several pages...",
"languageCode": "en"
}
}
]
}
Contoh keluaran
{
"values": [
{
"recordId": "1",
"data": {
"pages": [
"This is the loan...",
"In the next section, we continue..."
],
"offsets": [
{
"utf8": 0,
"utf16": 0,
"codePoint": 0
},
{
"utf8": 146,
"utf16": 146,
"codePoint": 146
}
],
"lengths": [
{
"utf8": 146,
"utf16": 146,
"codePoint": 146
},
{
"utf8": 211,
"utf16": 211,
"codePoint": 211
}
],
"ordinalPositions" : [
1,
2
]
}
},
{
"recordId": "2",
"data": {
"pages": [
"This is the second document...",
"In the next section of the second doc..."
],
"offsets": [
{
"utf8": 0,
"utf16": 0,
"codePoint": 0
},
{
"utf8": 115,
"utf16": 115,
"codePoint": 115
}
],
"lengths": [
{
"utf8": 115,
"utf16": 115,
"codePoint": 115
},
{
"utf8": 209,
"utf16": 209,
"codePoint": 209
}
],
"ordinalPositions" : [
1,
2
]
}
}
]
}
Nota
Contoh ini diatur textItems ke pages melalui targetName. Karena targetName ditetapkan, pages adalah nilai yang harus Anda gunakan untuk memilih output dari keterampilan Pemisahan Teks. Gunakan /document/pages/* dalam keterampilan hilir, pemetaan bidang keluaran pengindeks, proyeksi penyimpanan pengetahuan, dan proyeksi indeks.
Contoh ini tidak menetapkan offsets, lengths, atau ordinalPosition ke nama lain, sehingga nilai yang harus Anda gunakan dalam keterampilan hilir tidak akan berubah.
offsets dan lengths merupakan jenis kompleks daripada primitif, karena berisi nilai untuk beberapa jenis pengkodean. Nilai yang harus Anda gunakan untuk mendapatkan pengkodean tertentu, misalnya UTF-8, akan terlihat seperti ini: /document/offsets/*/utf8.
Contoh untuk pemotongan dan vektorisasi
Contoh ini untuk vektorisasi terintegrasi.
pageOverlapLength: Teks yang tumpang tindih berguna dalam skenario pemotongan data karena menjaga kontinuitas antara potongan yang dihasilkan dari dokumen yang sama.maximumPagesToTake: Batas asupan halaman berguna dalam skenario vektorisasi karena membantu Anda tetap berada di bawah batas input maksimum model penyematan yang menyediakan vektorisasi.
Contoh definisi
Definisi ini menambahkan pageOverlapLength 100 karakter dan maximumPagesToTake satu.
Dengan asumsi 5.000 maximumPageLength karakter (default), maka "maximumPagesToTake": 1 proses 5.000 karakter pertama dari setiap dokumen sumber.
Contoh ini diatur textItems ke myPages melalui targetName. Karena targetName ditetapkan, myPages adalah nilai yang harus Anda gunakan untuk memilih output dari keterampilan Pemisahan Teks. Gunakan /document/myPages/* dalam keterampilan hilir, pemetaan bidang keluaran pengindeks, proyeksi penyimpanan pengetahuan, dan proyeksi indeks.
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"textSplitMode" : "pages",
"maximumPageLength": 1000,
"pageOverlapLength": 100,
"maximumPagesToTake": 1,
"defaultLanguageCode": "en",
"inputs": [
{
"name": "text",
"source": "/document/content"
},
{
"name": "languageCode",
"source": "/document/language"
}
],
"outputs": [
{
"name": "textItems",
"targetName": "myPages"
}
]
}
Contoh input (sama seperti contoh sebelumnya)
{
"values": [
{
"recordId": "1",
"data": {
"text": "This is the loan application for Joe Romero, a Microsoft employee who was born in Chile and who then moved to Australia...",
"languageCode": "en"
}
},
{
"recordId": "2",
"data": {
"text": "This is the second document, which will be broken into several sections...",
"languageCode": "en"
}
}
]
}
Output sampel (perhatikan tumpang tindihnya)
Dalam setiap array "textItems", teks di belakang dari item pertama disalin ke awal item kedua.
{
"values": [
{
"recordId": "1",
"data": {
"myPages": [
"This is the loan...Here is the overlap part",
"Here is the overlap part...In the next section, we continue..."
]
}
},
{
"recordId": "2",
"data": {
"myPages": [
"This is the second document...Here is the overlap part...",
"Here is the overlap part...In the next section of the second doc..."
]
}
}
]
}
Kasus kesalahan
Jika bahasa tidak didukung, peringatan akan dibuat.