Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Note
Pesquisa de IA do Azure está disponível por meio do portal Azure, APIs REST e SDKs do Azure. Ele também sustenta o IQ do Foundry, a camada de conhecimento gerenciado que transforma o conteúdo da empresa em bases de conhecimento reutilizáveis e com reconhecimento de permissão para agentes no portal do Microsoft Foundry.
Importante
Alguns parâmetros estão em prévia sob Termos Suplementares de Uso. A API REST de pré-visualização suporta esses parâmetros.
A habilidade Text Split divide o texto em pedaços de texto. Você pode especificar se quer dividir o texto em frases ou em páginas de um determinado tamanho. Metadados posicionais como deslocamento e posição ordinal também estão disponíveis como saídas. Essa habilidade é útil se houver requisitos de comprimento máximo de texto em outras habilidades posteriores, como incorporar habilidades que passam chunks de dados para modelos de incorporação no Azure OpenAI e outros provedores de modelos. Para mais informações sobre esse cenário, veja documentos Chunks para busca vetorial.
Vários parâmetros são específicos de cada versão. A tabela de parâmetros de habilidades indica a versão da API na qual um parâmetro foi introduzido, para que você saiba se uma atualização de versão é necessária. Para usar recursos específicos de versão, como token chunking em 2024-09-01-preview, você pode usar o portal Azure, ou direcionar uma versão da API REST, ou verificar um registro de alterações de SDK do Azure para ver se suporta o recurso.
O portal do Azure suporta a maioria dos recursos de pré-visualização e pode ser usado para criar ou atualizar um conjunto de habilidades. Para atualizações da habilidade Text Split, edite a definição do conjunto de habilidades JSON para adicionar novos parâmetros de pré-visualização.
Note
Essa habilidade não está limitada às Ferramentas de Fundição. Não é faturável e não exige chave do Foundry Tools.
@odata.type
Microsoft.Skills.Text.SplitSkill
Parâmetros de habilidades
Os parâmetros são sensíveis a maiúsculas minúsculas.
| Nome do parâmetro | Descrição |
|---|---|
textSplitMode |
Ou pages .sentences As páginas têm um comprimento máximo configurável, mas a habilidade tenta evitar truncar uma frase para que o tamanho real possa ser menor. Frases são uma sequência que termina na pontuação que termina a frase, como ponto, ponto de interrogação ou ponto de exclamação, assumindo que a linguagem tenha pontuação que encerra a frase. |
maximumPageLength |
Só se aplica se textSplitMode for definido como pages. Para unit o conjunto como characters, esse parâmetro refere-se ao comprimento máximo da página em caracteres, conforme medido por String.Length. O valor mínimo é 300, o máximo é 50000 e o valor padrão é 5000. O algoritmo faz o possível para quebrar o texto nos limites das frases, então o tamanho de cada bloco pode ser um pouco menor que maximumPageLength. Para unit definir como azureOpenAITokens, o comprimento máximo da página é o limite de comprimento do token do modelo. Para modelos de embedding de texto, uma recomendação geral para o comprimento da página é 512 tokens. |
defaultLanguageCode |
(opcional) Um dos seguintes códigos de idioma: 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. O padrão é inglês (en). Algumas coisas a considerar:
|
pageOverlapLength |
Só se aplica se textSplitMode for definido como pages. Cada página começa com esse número de caracteres ou fichas do final da página anterior. Se esse parâmetro estiver definido em 0, não há texto sobreposto em páginas sucessivas. Este exemplo inclui o parâmetro. |
maximumPagesToTake |
Só se aplica se textSplitMode for definido como pages. Número de páginas para devolver. O padrão é 0, o que significa devolver todas as páginas. Você deve definir esse valor se apenas um subconjunto de páginas for necessário. Este exemplo inclui o parâmetro. |
unit |
Só se aplica se textSplitMode for definido como pages. Especifica se deve fazer chunk por characters (padrão) ou azureOpenAITokens. Definir a unidade afeta maximumPageLength e pageOverlapLength. |
azureOpenAITokenizerParameters Um objeto que fornece parâmetros extras para a azureOpenAITokens unidade. encoderModelName é um tokenizador designado usado para converter texto em tokens, essencial para tarefas de processamento de linguagem natural (PLN). Modelos diferentes usam tokenizadores diferentes. Valores válidos incluem cl100k_base (padrão) usado pelo GPT-4. Outros valores válidos são r50k_base, p50k_base e p50k_edit. A habilidade implementa a biblioteca tiktoken por meio de SharpToken e Microsoft.ML.Tokenizers, mas não suporta todos os codificadores. Por exemplo, atualmente não há suporte para o200k_base codificação usada pelo GPT-4o. allowedSpecialTokens define uma coleção de tokens especiais que são permitidos dentro do processo de tokenização. Tokens especiais são strings que você deve tratar de forma única, garantindo que não sejam divididos durante a tokenização. Por exemplo, [[START"], "[FIM]"]. Se a tiktoken biblioteca não realizar a tokenização como esperado, seja por limitações específicas da linguagem ou outros comportamentos inesperados, recomenda-se usar a divisão de texto. |
Entradas de habilidades
| Nome do parâmetro | Descrição |
|---|---|
text |
O texto para dividir em substrings. |
languageCode |
(Opcional) Código de idioma para o documento. Se você não souber o idioma das entradas de texto (por exemplo, se estiver usando o LanguageDetectionSkill para detectar o idioma), pode omitir esse parâmetro. Se você definir languageCode como um idioma que não está na lista suportada para , defaultLanguageCodeum aviso é emitido e o texto não é dividido. |
Saídas de habilidades
| Nome do parâmetro | Descrição |
|---|---|
textItems |
A saída é um array de substrings que foram extraídos.
textItems é o nome padrão da saída. targetName é opcional, mas se você tiver várias habilidades de División de Texto, certifique-se de configurar targetName para não sobrescrever os dados da primeira habilidade pela segunda. Se targetName for definido, use-o em mapeamentos de campo de saída ou em habilidades posteriores que consomem a saída da habilidade, como uma habilidade de embedding. |
offsets |
A saída é um array de deslocamentos que foram extraídos. O valor em cada índice é um objeto contendo o deslocamento do item de texto nesse índice em três codificações: UTF-8, UTF-16 e CodePoint.
offsets é o nome padrão da saída. targetName é opcional, mas se você tiver várias habilidades de División de Texto, certifique-se de configurar targetName para não sobrescrever os dados da primeira habilidade pela segunda. Se targetName for definido, use-o em mapeamentos de campo de saída ou em habilidades posteriores que consomem a saída da habilidade, como uma habilidade de embedding. |
lengths |
A saída é um array de comprimentos que foram extraídos. O valor em cada índice é um objeto contendo o deslocamento do item de texto nesse índice em três codificações: UTF-8, UTF-16 e CodePoint.
lengths é o nome padrão da saída. targetName é opcional, mas se você tiver várias habilidades de División de Texto, certifique-se de configurar targetName para não sobrescrever os dados da primeira habilidade pela segunda. Se targetName for definido, use-o em mapeamentos de campo de saída ou em habilidades posteriores que consomem a saída da habilidade, como uma habilidade de embedding. |
ordinalPositions |
Saída é um array de posições ordinais correspondentes à posição do item do texto dentro do texto fonte.
ordinalPositions é o nome padrão da saída. targetName é opcional, mas se você tiver várias habilidades de División de Texto, certifique-se de configurar targetName para não sobrescrever os dados da primeira habilidade pela segunda. Se targetName for definido, use-o em mapeamentos de campo de saída ou em habilidades posteriores que consomem a saída da habilidade, como uma habilidade de embedding. |
Definição de exemplo
{
"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 exemplo
{
"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"
}
}
]
}
Saída de exemplo
{
"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
]
}
}
]
}
Note
Este exemplo define textItems para pages através de targetName. Como targetName está definido, pages é o valor que você deve usar para selecionar a saída da habilidade Text Split. Uso /document/pages/* em habilidades a jusante, mapeamentos de campo de saída do indexador, projeções de armazenamento de conhecimento e projeções de índice.
Este exemplo não define offsets, lengths, nem ordinalPosition qualquer outro nome, então o valor que você deve usar em habilidades posteriores permaneceria inalterado.
offsets e lengths são tipos complexos em vez de primitivos, porque contêm os valores para múltiplos tipos de codificação. O valor que você deve usar para obter uma codificação específica, por exemplo UTF-8, seria o seguinte: /document/offsets/*/utf8.
Exemplo para fragmentação e vetorização
Este exemplo é para vetorização integrada.
pageOverlapLength: Texto sobreposto é útil em cenários de fragmentação de dados porque preserva a continuidade entre blocos gerados a partir do mesmo documento.maximumPagesToTake: Limites na entrada de páginas são úteis em cenários de vetorização porque ajudam a permanecer abaixo dos limites máximos de entrada dos modelos de embedding que fornecem a vetorização.
Definição de exemplo
Essa definição soma pageOverlapLength 100 caracteres e maximumPagesToTake de um.
Assumindo que maximumPageLength são 5.000 caracteres (o padrão), então "maximumPagesToTake": 1 processa os primeiros 5.000 caracteres de cada documento fonte.
Este exemplo define textItems para myPages através de targetName. Como targetName está definido, myPages é o valor que você deve usar para selecionar a saída da habilidade Text Split. Uso /document/myPages/* em habilidades a jusante, mapeamentos de campo de saída do indexador, projeções de armazenamento de conhecimento e projeções de índice.
{
"@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 amostra (igual ao exemplo 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"
}
}
]
}
Saída de amostra (note a sobreposição)
Dentro de cada array "textItems", o texto que segue o primeiro item é copiado para o início do 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 erro
Se uma linguagem não for suportada, um aviso é gerado.