Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
Búsqueda de Azure AI está disponible a través del portal de Azure, las API REST y los SDK de Azure. También respalda Foundry IQ, la capa de conocimiento administrada que transforma el contenido empresarial en bases de conocimiento reutilizables y compatibles con permisos para agentes en el portal de Microsoft Foundry.
Importante
Algunos parámetros están en vista previa bajo Términos de Uso Suplementarios. La API REST de la vista previa soporta estos parámetros.
La habilidad División de Texto divide el texto en fragmentos. Puedes especificar si quieres dividir el texto en frases o en páginas de una longitud determinada. Metadatos posicionales como desplazamiento y posición ordinal también están disponibles como salidas. Esta habilidad es útil si existen requisitos de longitud máxima de texto en otras habilidades posteriores, como incrustar habilidades que pasan fragmentos de datos a modelos incrustados en Azure OpenAI y otros proveedores de modelos. Para más información sobre este escenario, véase documentos Chunk para búsqueda vectorial.
Varios parámetros son específicos de cada versión. La tabla de parámetros de habilidades indica la versión de la API en la que se introdujo un parámetro para que sepas si se requiere una actualización de versión . Para usar funciones específicas de una versión como token chunking en 2024-09-01-preview, puedes usar el portal de Azure, o dirigirte a una versión de la API REST, o consultar un registro de cambios de SDK de Azure para ver si soporta esta función.
El portal de Azure soporta la mayoría de las funciones de vista previa y puede utilizarse para crear o actualizar un conjunto de habilidades. Para actualizaciones de la habilidad División de Texto, edita la definición de JSON del conjunto de habilidades para añadir nuevos parámetros de previsualización.
Nota:
Esta habilidad no está limitada a Herramientas de Fundición. No es facturable y no requiere clave de Foundry Tools.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parámetros de la aptitud
Los parámetros son sensibles a mayúsculas y mayúsculas.
| Nombre del parámetro | Description |
|---|---|
textSplitMode |
O bien pagessentenceso bien. Las páginas tienen una longitud máxima configurable, pero la habilidad intenta evitar truncar una frase para que la longitud real sea menor. Las oraciones son una cadena que termina en la puntuación que termina la oración, como un punto, signo de interrogación o signo de exclamación, suponiendo que el lenguaje tenga puntuación que termina la oración. |
maximumPageLength |
Solo se aplica si textSplitMode está establecido en pages. Para unit el conjunto a characters, este parámetro se refiere a la longitud máxima de página en caracteres medida por String.Length. El valor mínimo es 300, el máximo es 50000 y el valor por defecto es 5000. El algoritmo hace todo lo posible por descomponer el texto en los límites de las oraciones, por lo que el tamaño de cada fragmento podría ser ligeramente menor que maximumPageLength. Para unit establecer , azureOpenAITokensla longitud máxima de página es el límite de longitud del token del modelo. Para modelos de incrustación de texto, una recomendación general para la longitud de página es 512 tokens. |
defaultLanguageCode |
(opcional) Uno de los siguientes códigos de lenguaje: 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. Por defecto es inglés (en). Algunas cosas a tener en cuenta:
|
pageOverlapLength |
Solo se aplica si textSplitMode está establecido en pages. Cada página comienza con este número de caracteres o fichas del final de la página anterior. Si este parámetro está en 0, no hay texto solapado en páginas sucesivas. Este ejemplo incluye el parámetro. |
maximumPagesToTake |
Solo se aplica si textSplitMode está establecido en pages. Número de páginas para devolver. El valor por defecto es 0, lo que significa devolver todas las páginas. Deberías establecer este valor si solo necesitas un subconjunto de páginas. Este ejemplo incluye el parámetro. |
unit |
Solo se aplica si textSplitMode está establecido en pages. Especifica si se debe hacer un chunk por characters (por defecto) o azureOpenAITokens. Configurar la unidad afecta maximumPageLength a y pageOverlapLength. |
azureOpenAITokenizerParameters Un objeto que proporciona parámetros adicionales para la azureOpenAITokens unidad. encoderModelName es un tokenizador designado utilizado para convertir texto en tokens, esencial para tareas de procesamiento de lenguaje natural (PLN). Diferentes modelos usan distintos tokenizadores. Los valores válidos incluyen cl100k_base (por defecto) usado por GPT-4. Otros valores válidos son r50k_base, p50k_base y p50k_edit. La habilidad implementa la biblioteca tiktoken mediante SharpToken y Microsoft.ML.Tokenizers pero no soporta todos los codificadores. Por ejemplo, actualmente no hay soporte para la codificación o200k_base que usa GPT-4o. allowedSpecialTokens define una colección de tokens especiales que están permitidos dentro del proceso de tokenización. Los tokens especiales son cadenas que quieres tratar de forma única, asegurando que no se dividan durante la tokenización. Por ejemplo, [[START"], "[END]"]. Si la tiktoken biblioteca no realiza la tokenización como se espera, ya sea por limitaciones específicas del idioma u otros comportamientos inesperados, se recomienda usar la división de texto en su lugar. |
Entradas de la aptitud
| Nombre del parámetro | Description |
|---|---|
text |
El texto para dividir en subcadenas. |
languageCode |
(Opcional) Código de lenguaje para el documento. Si no conoces el idioma de las entradas de texto (por ejemplo, si usas LanguageDetectionSkill para detectar el idioma), puedes omitir este parámetro. Si configuras languageCode como que un idioma no está en la lista soportada para , defaultLanguageCodese emite una advertencia y el texto no se divide. |
Salidas de la aptitud
| Nombre del parámetro | Description |
|---|---|
textItems |
La salida es un array de subcadenas que se extrajeron.
textItems es el nombre por defecto de la salida. targetName es opcional, pero si tienes varias habilidades de División de Texto, asegúrate de configurarlo targetName para no sobrescribir los datos de la primera habilidad con la segunda. Si targetName está activado, úsalo en mapeos de campos de salida o en habilidades posteriores que consuman la habilidad de salida, como una habilidad de incrustación. |
offsets |
La salida es un array de desplazamientos que se extrajeron. El valor en cada índice es un objeto que contiene el desplazamiento del elemento de texto en ese índice en tres codificaciones: UTF-8, UTF-16 y CodePoint.
offsets es el nombre por defecto de la salida. targetName es opcional, pero si tienes varias habilidades de División de Texto, asegúrate de configurarlo targetName para no sobrescribir los datos de la primera habilidad con la segunda. Si targetName está activado, úsalo en mapeos de campos de salida o en habilidades posteriores que consuman la habilidad de salida, como una habilidad de incrustación. |
lengths |
La salida es un conjunto de longitudes que se extrayeron. El valor en cada índice es un objeto que contiene el desplazamiento del elemento de texto en ese índice en tres codificaciones: UTF-8, UTF-16 y CodePoint.
lengths es el nombre por defecto de la salida. targetName es opcional, pero si tienes varias habilidades de División de Texto, asegúrate de configurarlo targetName para no sobrescribir los datos de la primera habilidad con la segunda. Si targetName está activado, úsalo en mapeos de campos de salida o en habilidades posteriores que consuman la habilidad de salida, como una habilidad de incrustación. |
ordinalPositions |
La salida es un array de posiciones ordinales correspondientes a la posición del elemento de texto dentro del texto fuente.
ordinalPositions es el nombre por defecto de la salida. targetName es opcional, pero si tienes varias habilidades de División de Texto, asegúrate de configurarlo targetName para no sobrescribir los datos de la primera habilidad con la segunda. Si targetName está activado, úsalo en mapeos de campos de salida o en habilidades posteriores que consuman la habilidad de salida, como una habilidad de incrustación. |
Definición de ejemplo
{
"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"
}
]
}
Entrada de ejemplo
{
"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"
}
}
]
}
Salida de ejemplo
{
"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:
Este ejemplo establece textItems a pages través de targetName. Como targetName está activado, pages es el valor que debes usar para seleccionar la salida de la habilidad División de Texto. Úsalo /document/pages/* en habilidades posteriores, mapeo de campos de salida del indexador, proyecciones de almacenamiento de conocimiento y proyecciones de índices.
Este ejemplo no establece offsets, lengths, ni ordinalPosition ningún otro nombre, así que el valor que deberías usar en habilidades posteriores no cambiaría.
offsets y lengths son tipos complejos en lugar de primitivos, porque contienen los valores para múltiples tipos de codificación. El valor que deberías usar para obtener una codificación específica, por ejemplo UTF-8, sería así: /document/offsets/*/utf8.
Ejemplo de fragmentación y vectorización
Este ejemplo es para vectorización integrada.
pageOverlapLength: El texto superpuesto es útil en escenarios de fragmentación de datos porque preserva la continuidad entre fragmentos generados a partir del mismo documento.maximumPagesToTake: Los límites en la entrada de páginas son útiles en escenarios de vectorización porque ayudan a mantenerte por debajo de los límites máximos de entrada de los modelos de incrustación que proporcionan la vectorización.
Definición de ejemplo
Esta definición suma pageOverlapLength 100 caracteres y maximumPagesToTake de uno.
Asumiendo que maximumPageLength son 5.000 caracteres (el valor por defecto), entonces "maximumPagesToTake": 1 procesa los primeros 5.000 caracteres de cada documento fuente.
Este ejemplo establece textItems a myPages través de targetName. Como targetName está activado, myPages es el valor que debes usar para seleccionar la salida de la habilidad División de Texto. Úsalo /document/myPages/* en habilidades posteriores, mapeo de campos de salida del indexador, proyecciones de almacenamiento de conocimiento y proyecciones de índices.
{
"@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"
}
]
}
Entrada de muestra (igual que en el ejemplo anterior)
{
"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"
}
}
]
}
Salida de muestra (fíjate en la superposición)
Dentro de cada matriz "textItems", el texto que sigue desde el primer elemento se copia al principio del segundo.
{
"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..."
]
}
}
]
}
Casos de error
Si un lenguaje no está soportado, se genera una advertencia.