Szövegfelosztási kognitív képesség
Fontos
Egyes paraméterek nyilvános előzetes verzióban érhetők el a kiegészítő használati feltételek alatt. Az előzetes REST API támogatja ezeket a paramétereket.
A Szöveg felosztása képesség szövegrészekre bontja a szöveget. Megadhatja, hogy a szöveget mondatokra vagy adott hosszúságú oldalakra szeretné-e bontani. Ez a képesség akkor hasznos, ha a szöveghosszra vonatkozó követelmények maximálisak az alsóbb rétegbeli készségekben, például olyan beágyazási képességek, amelyek adattömböket adnak át az Azure OpenAI-beli és más modellszolgáltatók beágyazási modelljeinek. A forgatókönyvről további információt az adattömb-dokumentumokban talál a vektorkereséshez.
Számos paraméter verzióspecifikus. A skills paraméter táblája megjegyzi az API azon verzióját, amelyben egy paramétert bevezettek, így ön tudja, hogy szükséges-e verziófrissítés . Ha verzióspecifikus funkciókat szeretne használni, például a 2024-09-01-es előzetes verziójú jogkivonat-adattömbkezelést, használhatja az Azure Portalt, vagy megcélozhat egy REST API-verziót, vagy ellenőrizheti az Azure SDK változásnaplóját, hogy támogatja-e a funkciót.
Az Azure Portal a legtöbb előzetes verziójú funkciót támogatja, és készségkészletek létrehozásához vagy frissítéséhez használható. A Szöveg felosztása képesség frissítéséhez szerkessze a JSON-definíciót, és adjon hozzá új előzetes verziós paramétereket.
Feljegyzés
Ez a képesség nem kötődik az Azure AI-szolgáltatásokhoz. Nem számlázható, és nincs Azure AI-szolgáltatások kulcskövetelménye.
@odata.type
Microsoft.Skills.Text.SplitSkill
Képességparaméterek
A paraméterek megkülönböztetik a kis- és nagybetűket.
Paraméter neve | Verzió | Leírás |
---|---|---|
textSplitMode |
Az összes verzió | Vagy pages vagy sentences . A lapok maximális hossza konfigurálható, de a képesség megpróbálja elkerülni a mondatok csonkolását, hogy a tényleges hossz kisebb legyen. A mondatok olyan sztringek, amelyek mondatvégződéskor végződnek, például pont, kérdőjel vagy felkiáltójel, feltéve, hogy a nyelv mondatvégződéssel rendelkezik. |
maximumPageLength |
Az összes verzió | Csak akkor érvényes, ha textSplitMode be van állítva pages . A unit beállításnál characters ez a paraméter a karakterek maximális oldalhosszára vonatkozik, a mérték szerint mérve String.Length . A minimális érték 300, a maximum 50000, az alapértelmezett érték pedig 5000. Az algoritmus a lehető legjobban meg tudja törni a szöveget a mondathatárokon, így az egyes adattömbek mérete kissé kisebb lehet, mint maximumPageLength a . A unit beállításnál azureOpenAITokens a maximális oldalhossz a modell jogkivonathossz-korlátja. A szövegbeágyazási modellek esetében az oldalhosszra vonatkozó általános javaslat 512 token. |
defaultLanguageCode |
Az összes verzió | (nem kötelező) Az alábbi nyelvkódok egyike: 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 . Az alapértelmezett érték az angol (en). Néhány megfontolandó szempont:
|
pageOverlapLength |
2024-07-01 | Csak akkor érvényes, ha textSplitMode be van állítva pages . Minden oldal ekkora számú karaktert vagy jogkivonatot tartalmaz az előző oldal végéről. Ha ez a paraméter 0 értékre van állítva, az egymást követő oldalakon nincs átfedésben a szöveg. Ez a példa tartalmazza a paramétert. |
maximumPagesToTake |
2024-07-01 | Csak akkor érvényes, ha textSplitMode be van állítva pages . A visszaadni kívánt lapok száma. Az alapértelmezett érték 0, ami azt jelenti, hogy az összes oldalt visszaadja. Ezt az értéket akkor kell megadnia, ha csak a lapok egy részhalmazára van szükség. Ez a példa tartalmazza a paramétert. |
unit |
2024-09-01-preview |
Új. Csak akkor érvényes, ha textSplitMode be van állítva pages . Megadja, hogy az adattömb characters (alapértelmezett) vagy azureOpenAITokens . Az egység érintett maximumPageLength és pageOverlapLength . |
azureOpenAITokenizerParameters |
2024-09-01-preview |
Új. Egy objektum, amely további paramétereket biztosít az azureOpenAITokens egységhez. encoderModelName a szöveg jogkivonatokká alakításához használt, a természetes nyelvi feldolgozási (NLP) feladatokhoz nélkülözhetetlen tokenizer. A különböző modellek különböző tokenizereket használnak. Az érvényes értékek közé tartozik a GPT-35-Turbo és a GPT-4 által használt cl100k_base (alapértelmezett). Egyéb érvényes értékek a r50k_base, p50k_base és p50k_edit. A képesség a SharpToken használatával implementálja a tiktoken könyvtárat, de Microsoft.ML.Tokenizers nem támogat minden kódolót. Jelenleg például nem támogatott a GPT-4o által használt o200k_base kódolás. allowedSpecialTokens A tokenizálási folyamaton belül engedélyezett speciális jogkivonatok gyűjteményét határozza meg. A speciális jogkivonatok olyan sztringek, amelyeket egyedileg szeretne kezelni, biztosítva, hogy azok ne legyenek felosztva a tokenizálás során. Például : ["[START"], "[END]"]. Az olyan nyelvek esetében, amelyekben a tiktoken-kódtár nem a várt módon végzi el a jogkivonat-készítést, javasoljuk, hogy inkább szövegfelosztást használjon. |
Készségbemenetek
Paraméter neve | Leírás |
---|---|
text |
A részszúrásra felosztandó szöveg. |
languageCode |
(Nem kötelező) A dokumentum nyelvi kódja. Ha nem ismeri a szövegbevitelek nyelvét (például ha a LanguageDetectionSkill használatával észleli a nyelvet), kihagyhatja ezt a paramétert. Ha egy nyelvre van állítva languageCode , akkor a program nem szerepel a defaultLanguageCode támogatott listában, figyelmeztetést ad ki, és a szöveg nem lesz felosztva. |
Képességkimenetek
Paraméter neve | Leírás |
---|---|
textItems |
A kimenet a kinyert részsztringek tömbje.
textItems a kimenet alapértelmezett neve. targetName nem kötelező, de ha több szövegfelosztási képességgel rendelkezik, ügyeljen arra, hogy targetName ne írja felül az első képesség adatait a másodikkal. Ha targetName be van állítva, használja a kimeneti mezőleképezésekben vagy a képességkimenetet használó alsóbb rétegbeli készségekben, például beágyazási képességekben. |
Mintadefiníció
{
"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"
}
]
}
Példabemenet
{
"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"
}
}
]
}
Példakimenet
{
"values": [
{
"recordId": "1",
"data": {
"textItems": [
"This is the loan...",
"In the next section, we continue..."
]
}
},
{
"recordId": "2",
"data": {
"textItems": [
"This is the second document...",
"In the next section of the second doc..."
]
}
}
]
}
Példa adattömb-készítésre és vektorizálásra
Ez a példa az integrált vektorizálásra használható.
pageOverlapLength
: Az átfedésben lévő szöveg az adattömbök esetében hasznos, mert megőrzi az azonos dokumentumból létrehozott adattömbök közötti folytonosságot.maximumPagesToTake
: Az oldalbeadás korlátai a vektorizálási forgatókönyvekben hasznosak, mivel segít a vektorizálást biztosító beágyazási modellek maximális bemeneti korlátainál maradni.
Mintadefiníció
Ez a definíció 100 karaktert és maximumPagesToTake
egy karaktert ad hozzápageOverlapLength
.
Ha az maximumPageLength
érték 5000 karakter (ez az alapértelmezett), akkor "maximumPagesToTake": 1
az egyes forrásdokumentumok első 5000 karakterét dolgozza fel.
Ez a példa a értékre állítja textItems
a targetName
Mert targetName
be van állítva, ez az az érték, myPages
amelyet a Szöveg felosztása képesség kimenetének kiválasztásához kell használnia. Használja /document/mypages/*
az alsóbb rétegbeli készségeket, az indexelő kimeneti mezőleképezéseit, a tudástár-előrejelzéseket és az index-előrejelzéseket.
{
"@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"
}
]
}
Mintabemenet (ugyanaz, mint az előző példában)
{
"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"
}
}
]
}
Mintakimenet (figyelje meg az átfedést)
Az egyes "textItems" tömbökben a program az első elemből származó záró szöveget a második elem elejére másolja.
{
"values": [
{
"recordId": "1",
"data": {
"textItems": [
"This is the loan...Here is the overlap part",
"Here is the overlap part...In the next section, we continue..."
]
}
},
{
"recordId": "2",
"data": {
"textItems": [
"This is the second document...Here is the overlap part...",
"Here is the overlap part...In the next section of the second doc..."
]
}
}
]
}
Hibaesetek
Ha egy nyelv nem támogatott, figyelmeztetés jön létre.