Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Önemli
Bazı parametreler Ek Kullanım Şartları kapsamında önizleme aşamasındadır. Önizleme REST API'si bu parametreleri destekler.
Metin Bölme yeteneği metni metin parçalarına böler. Metni cümlelere mi yoksa belirli uzunluktaki sayfalara mı bölmek istediğinizi belirleyebilirsiniz. Ofset ve ordinal konum gibi konumsal meta veriler de çıktı olarak mevcuttur. Bu beceri, Azure OpenAI ve diğer model sağlayıcılarında veri parçalarını gömüme modellerine aktaran diğer becerilerde maksimum metin uzunluğu gereksinimleri varsa faydalıdır. Bu senaryo hakkında daha fazla bilgi için, vektör arama için Chunk belgeleri'ne bakınız.
Birkaç parametre sürüme özeldir. Beceri parametre tablosu, bir parametrenin tanıtıldığı API sürümünü not eder, böylece sürüm yükseltmesi gerekip gerekmediğini öğrenebilirsiniz. 2024-09-01-preview içinde token chunking gibi sürüm özel özellikleri kullanmak için Azure portalını kullanabilir, REST API sürümünü hedefleyebilir veya Azure SDK değişiklik günlüğüne bakarak özelliği destekleyip desteklemediğini kontrol edebilirsiniz.
Azure portalı çoğu önizleme özelliğini destekler ve bir beceri seti oluşturmak veya güncellemek için kullanılabilir. Metin Bölme yeteneğine yapılan güncellemeler için, JSON tanımını düzenleyerek yeni önizleme parametreleri ekleyin.
Uyarı
Bu beceri Foundry Tools'a bağlı değil. Faturalandırılabilir değil ve Foundry Tools anahtarı gereksinimi yok.
@odata.type
Microsoft.Skills.Text.SplitSkill
Beceri Parametreleri
Parametreler büyük/küçük harfe duyarlıdır.
| Parametre adı | Açıklama |
|---|---|
textSplitMode |
Ya da pagessentencesya da . Sayfaların yapılandırılabilir maksimum uzunluğu vardır, ancak beceri cümleyi kısaltmaktan kaçınmaya çalışır, bu yüzden gerçek uzunluğu daha küçük olabilir. Cümleler, cümle sonu noktası veya ünlem işareti gibi nokta noktalarında sona eren bir dizidir; dilin cümle sonu noktası veya ünlem işareti varsayarsa. |
maximumPageLength |
Yalnızca ayarlıysa textSplitMode , pagesgeçerlidir. Olarak ayarlandığındaunit, bu parametre karakterlerdeki maksimum sayfa uzunluğunu ifade eder ve ile ölçülürcharacters.String.Length Minimum değer 300, maksimum 50000 ve varsayılan değer 5000'dir. Algoritma, metni cümle sınırlarında bozmak için elinden geleni yapar, bu yüzden her bölümün boyutu biraz daha az maximumPageLengtholabilir. Ayarlandığında unitazureOpenAITokens, maksimum sayfa uzunluğu modelin token uzunluk sınırıdır. Metin göme modelleri için genel olarak sayfa uzunluğu önerisi 512 tokendır. |
defaultLanguageCode |
(isteğe bağlı) Aşağıdaki dil kodlarından biri: 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. Varsayılan İngilizce (en). Dikkate alınması gereken birkaç şey:
|
pageOverlapLength |
Yalnızca ayarlıysa textSplitMode , pagesgeçerlidir. Her sayfa, önceki sayfanın sonundan bu sayıda karakter veya jeton ile başlar. Bu parametre 0 olarak ayarlanmışsa, ardışık sayfalarda örtüşen metin yoktur. Bu örnek parametreyi içerir. |
maximumPagesToTake |
Yalnızca ayarlıysa textSplitMode , pagesgeçerlidir. Geri dönecek sayfa sayısı. Varsayılan 0'dır, yani tüm sayfaları geri döndürür. Bu değeri sadece bir alt sayfa kümesi gerekiyorsa ayarlamalısın. Bu örnek parametreyi içerir. |
unit |
Yalnızca ayarlıysa textSplitMode , pagesgeçerlidir. Chunk by characters (varsayılan) mı yoksa azureOpenAITokens. Birimi ayarlamak ve maximumPageLengthve etkiliyorpageOverlapLength. |
azureOpenAITokenizerParameters Birim için azureOpenAITokens ek parametreler sağlayan bir nesne. encoderModelName metni token'a dönüştürmek için kullanılan belirlenmiş bir tokenizer'dir ve doğal dil işleme (NLP) görevleri için gereklidir. Farklı modeller farklı tokenizerler kullanır. Geçerli değerler arasında GPT-4 tarafından kullanılan cl100k_base (varsayılan) bulunur. Diğer geçerli değerler r50k_base, p50k_base ve p50k_edit'dir. Yetenek, tiktoken kütüphanesini SharpToken ve Microsoft.ML.Tokenizers üzerinden uygular ancak her kodlayıcıyı desteklemez. Örneğin, şu anda GPT-4o tarafından kullanılan o200k_base kodlama desteği yok. allowedSpecialTokens tokenizasyon sürecinde izin verilen özel token koleksiyonunu tanımlar. Özel tokenlar, tokenizasyon sırasında bölünmemelerini sağlamak için benzersiz şekilde işlenmek istediğiniz dizidir. Örneğin ["[START"], "[END]"]. Kütüphane, tiktoken dil sınırlamaları veya beklenmedik davranışlar nedeniyle beklendiği gibi tokenizasyon yapmıyorsa, metin bölme yöntemi kullanılması önerilir. |
Beceri Girişleri
| Parametre adı | Açıklama |
|---|---|
text |
Metni alt dizelere bölmek için kullanılır. |
languageCode |
(İsteğe bağlı) Belgenin dil kodu. Metin girdilerinin dilini bilmiyorsanız (örneğin, dili tespit etmek için LanguageDetectionSkill kullanıyorsanız), bu parametreyi atlayabilirsiniz. Eğer languageCode bir dil için ayarlıyorsanız defaultLanguageCode, desteklenen listede değilse, bir uyarı verilir ve metin bölünmez. |
Beceri Çıkışları
| Parametre adı | Açıklama |
|---|---|
textItems |
Çıktı, çıkarılan alt diziden oluşan bir dizidir.
textItems çıktının varsayılan adıdır. targetName isteğe bağlı, ama birden fazla Metin Bölme yeteneğiniz varsa, ilk becerinin verisini ikinci beceriyle üzerine yazmamanız için ayarlamayı targetName unutmayın. Eğer targetName ayarlandıysa, çıkış alanı haritalamalarında veya beceri çıktısını tüketen sonraki becerilerde, örneğin gömme becerisinde kullanın. |
offsets |
Çıktı, çıkarılan bir ofset dizisidir. Her indeksteki değer, o indeksteki metin öğesinin üç kodlamada yer alan bir nesnedir: UTF-8, UTF-16 ve CodePoint.
offsets çıktının varsayılan adıdır. targetName isteğe bağlı, ama birden fazla Metin Bölme yeteneğiniz varsa, ilk becerinin verisini ikinci beceriyle üzerine yazmamanız için ayarlamayı targetName unutmayın. Eğer targetName ayarlandıysa, çıkış alanı haritalamalarında veya beceri çıktısını tüketen sonraki becerilerde, örneğin gömme becerisinde kullanın. |
lengths |
Çıktı, çıkarılan uzunluklar dizisidir. Her indeksteki değer, o indeksteki metin öğesinin üç kodlamada yer alan bir nesnedir: UTF-8, UTF-16 ve CodePoint.
lengths çıktının varsayılan adıdır. targetName isteğe bağlı, ama birden fazla Metin Bölme yeteneğiniz varsa, ilk becerinin verisini ikinci beceriyle üzerine yazmamanız için ayarlamayı targetName unutmayın. Eğer targetName ayarlandıysa, çıkış alanı haritalamalarında veya beceri çıktısını tüketen sonraki becerilerde, örneğin gömme becerisinde kullanın. |
ordinalPositions |
Çıktı, kaynak metin içindeki metin öğesinin konumuna karşılık gelen bir sıra pozisyonları dizisidir.
ordinalPositions çıktının varsayılan adıdır. targetName isteğe bağlı, ama birden fazla Metin Bölme yeteneğiniz varsa, ilk becerinin verisini ikinci beceriyle üzerine yazmamanız için ayarlamayı targetName unutmayın. Eğer targetName ayarlandıysa, çıkış alanı haritalamalarında veya beceri çıktısını tüketen sonraki becerilerde, örneğin gömme becerisinde kullanın. |
Örnek tanım
{
"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"
}
]
}
Örnek girdi
{
"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"
}
}
]
}
Örnek çıkış verisi
{
"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
]
}
}
]
}
Uyarı
Bu örnek 'den itibaren textItems'yi seçer.pagestargetName Çünkü targetName ayarlanır, pages Metin Bölme yeteneğinden çıktıyı seçmek için kullanmanız gereken değerdir.
/document/pages/* Aşağı akış becerilerinde kullanımı, indeksleyici çıktı alanı haritalamaları, bilgi deposu projeksiyonları ve indeks projeksiyonları.
Bu örnek offsets, lengths, veya ordinalPosition başka bir isim belirlemez, bu yüzden sonraki becerilerde kullanmanız gereken değer değişmez.
offsets ve lengths ilkel değil, karmaşık tiplerdir; çünkü birden fazla kodlama tipi için değerleri içerirler. Belirli bir kodlama, örneğin UTF-8, elde etmek için kullanmanız gereken değer şöyle görünecektir: /document/offsets/*/utf8.
Parçalama ve vektörleşme için örnek
Bu örnek entegre vektörleşme içindir.
pageOverlapLength: Örtüşen metin, veri parçalama senaryolarında faydalıdır çünkü aynı belgeden üretilen parçalar arasındaki sürekliliği korur.maximumPagesToTake: Sayfa alımındaki sınırlamalar, vektörleşme senaryolarında faydalıdır çünkü vektörizasyonu sağlayan gömü modellerinin maksimum giriş sınırlarının altında kalmanıza yardımcı olur.
Örnek tanım
Bu tanım 100 karakter ve pageOverlapLength bir karakter eklermaximumPagesToTake.
maximumPageLength 5.000 karakter varsayarsak (varsayılan olarak), "maximumPagesToTake": 1 her kaynak belgenin ilk 5.000 karakterini işliyor.
Bu örnek 'den itibaren textItems'yi seçer.myPagestargetName Çünkü targetName ayarlanır, myPages Metin Bölme yeteneğinden çıktıyı seçmek için kullanmanız gereken değerdir.
/document/myPages/* Aşağı akış becerilerinde kullanımı, indeksleyici çıktı alanı haritalamaları, bilgi deposu projeksiyonları ve indeks projeksiyonları.
{
"@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"
}
]
}
Örnek girdisi (önceki örnekle aynı)
{
"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"
}
}
]
}
Örnek çıktısı (örtüşmeye dikkat edin)
Her "textItems" dizisi içinde, ilk öğeden takip eden metin ikinci öğenin başına kopyalanır.
{
"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..."
]
}
}
]
}
Hata durumları
Bir dil desteklenmezse, uyarı oluşturulur.