Habilidade cognitiva de Extração de Documento

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.

A habilidade Extração de Documento extrai conteúdo de um arquivo no pipeline de enriquecimento. Por padrão, a extração ou recuperação de conteúdo é incorporada ao pipeline de enriquecimento. Contudo, a habilidade de Extração de Documento permite controlar como os parâmetros são definidos e como o conteúdo extraído é nomeado na árvore de enriquecimento.

Para pesquisa vetor e multimodal, combine a Extração de Documentos com a habilidade de Divisão de Texto para implementar uma abordagem de agrupamento de dados configurável. O tutorial multimodal demonstra esse cenário.

Note

Essa habilidade não está associada ao Foundry Tools e não apresenta um requisito essencial do Foundry Tools.

Essa habilidade extrai texto e imagens. A extração de texto é gratuita. A extração de imagem é cobrável pela Pesquisa de IA do Azure. Em um serviço de pesquisa gratuita, o custo de 20 transações por indexador por dia é reduzido para que você possa concluir inícios rápidos, tutoriais e pequenas atividades sem custo. Para os níveis básicos e superiores, a extração de imagem é cobrável.

@odata.type

Microsoft.Skills.Util.DocumentExtractionSkill

Formatos de documento com suporte

O DocumentExtractionSkill pode extrair texto dos seguintes formatos de documento:

  • CSV (consulte Indexando BLOBs CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (consulte Indexando BLOBs JSON)
  • KML (XML para representações geográficas)
  • Markdown
  • Formatos do Microsoft Office: DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (emails do Outlook) e XML (WORD XML 2003 e 2006)
  • Abrir formatos de documento: ODT, ODS, ODP
  • PDF
  • Arquivos de texto sem formatação (consulte também Como indexar texto sem formatação)
  • RTF
  • XML
  • ZIP

Parâmetros de habilidade

Os parâmetros diferenciam maiúsculas de minúsculas.

Inputs Valores permitidos Description
parsingMode default
text
json
Definido como para default extração de documentos de arquivos que não são texto puro ou JSON. Para arquivos de origem que contêm marcação, como ARQUIVOS PDF, HTML, RTF e Microsoft Office, use o padrão para extrair texto sem o idioma de marcação ou marcas. Se parsingMode não for definido explicitamente, o valor será default.

Defina-o como text se os arquivos de origem forem txt. Esse modo de análise melhora o desempenho em arquivos de texto sem formatação. Se os arquivos incluirem marcação, esse modo preservará as marcas na saída final.

Defina para json extrair conteúdo estruturado de arquivos JSON.
dataToExtract contentAndMetadata
allMetadata
Defina essa propriedade como contentAndMetadata para extrair todos os metadados e o conteúdo textual de cada arquivo. Se dataToExtract não for definido explicitamente, o valor será contentAndMetadata.

Defina para allMetadata extrair apenas as propriedades de metadados para o tipo de conteúdo, como metadados exclusivos para arquivos PNG.
configuration Consulte abaixo. Um dicionário de parâmetros opcionais que ajustam a forma como a extração de documento é executada. Consulte a tabela abaixo para obter descrições das propriedades de configuração com suporte.
Parâmetro de Configuração Valores permitidos Description
imageAction none
generateNormalizedImages
generateNormalizedImagePerPage
Defina como none para ignorar imagens inseridas ou arquivos de imagem no conjunto de dados ou se os dados de origem não incluírem os arquivos de imagem. Este é o valor padrão.

Para análise de imagem e OCR, defina como generateNormalizedImages para que a habilidade crie uma matriz de imagens normalizadas como parte da quebra de documento. Essa ação requer parsingMode definir default e dataToExtract definir como contentAndMetadata. Uma imagem normalizada tem uma saída uniforme que é dimensionada e girada para promover a renderização consistente nos resultados da pesquisa visual. A habilidade gera essas informações para cada imagem.

Se você definir imageAction como generateNormalizedImagePerPage, cada página PDF será renderizada como uma imagem e normalizada em vez de extrair imagens inseridas. Os tipos de arquivo que não são PDF serão tratados da mesma forma que seria se generateNormalizedImages tivesse sido definido.
normalizedImageMaxWidth Qualquer inteiro entre 50-10000 A largura máxima (em pixels) para as imagens normalizadas geradas. O padrão é 2000.
normalizedImageMaxHeight Qualquer inteiro entre 50-10000 A altura máxima (em pixels) para as imagens normalizadas geradas. O padrão é 2000.

Note

O padrão de 2000 pixels para a largura e altura máximas das imagens normalizadas se baseia nos tamanhos máximos compatíveis com a habilidade de OCR e a habilidade de análise de imagem. Habilidades de OCR são compatíveis com a largura e altura máximas de 4.200 para idiomas não inglês e 10.000 para o inglês. Caso aumente os limites máximos, poderá haver uma falha no processamento de imagens maiores, de acordo com a definição do conjunto de habilidades e do idioma dos documentos.

Entradas de competências

Nome do campo de entrada Description
file_data O arquivo do qual o conteúdo deve ser extraído.

A entrada "file_data" precisa ser um objeto definido da seguinte forma:

{
  "$type": "file",
  "data": "BASE64 encoded string of the file"
}

Alternativamente, ele pode ser definido como:

{
  "$type": "file",
  "url": "URL to download file",
  "sasToken": "OPTIONAL: SAS token for authentication if the URL provided is for a file in blob storage"
}

Esse objeto de referência de arquivo pode ser gerado de três maneiras:

  • Especificar o parâmetro allowSkillsetToReadFileData na definição do indexador como true. Isso cria um caminho /document/file_data que é um objeto que representa os dados de arquivo originais baixados da sua fonte de dados do blob. Esse parâmetro se aplica somente aos arquivos no Armazenamento de blobs.

    allowSkillsetToReadFileData disponibiliza os dados de arquivo baixados para a habilidade. Ele não aumenta o tamanho do arquivo do indexador de blob ou os limites de conteúdo extraído.

  • Definindo o parâmetro imageAction na definição do indexador com um valor diferente de none. Isso cria uma matriz de imagens que segue a convenção necessária para o recebimento de informações para essa habilidade se for aprovada individualmente (ou seja, /document/normalized_images/*).

  • Ter uma habilidade personalizada retorna um objeto json definido EXATAMENTE como acima. O parâmetro $type deve ser definido como exatamente file e o parâmetro data deve ser a base 64 dos dados da matriz de bytes codificados do conteúdo do arquivo ou o parâmetro url deve ser uma URL formatada corretamente com acesso para baixar o arquivo nesse local.

Resultados de competências

Nome do resultado Description
content O conteúdo textual do documento.
normalized_images Quando imageAction é definido como um valor diferente none, o novo campo normalized_images contém uma matriz de imagens. Para obter mais informações sobre o formato de saída, consulte Extrair texto e informações de imagens.

Definição de exemplo

 {
    "@odata.type": "#Microsoft.Skills.Util.DocumentExtractionSkill",
    "parsingMode": "default",
    "dataToExtract": "contentAndMetadata",
    "configuration": {
        "imageAction": "generateNormalizedImages",
        "normalizedImageMaxWidth": 2000,
        "normalizedImageMaxHeight": 2000
    },
    "context": "/document",
    "inputs": [
      {
        "name": "file_data",
        "source": "/document/file_data"
      }
    ],
    "outputs": [
      {
        "name": "content",
        "targetName": "extracted_content"
      },
      {
        "name": "normalized_images",
        "targetName": "extracted_normalized_images"
      }
    ]
  }

Entrada de exemplo

{
  "values": [
    {
      "recordId": "1",
      "data":
      {
        "file_data": {
          "$type": "file",
          "data": "aGVsbG8="
        }
      }
    }
  ]
}

Saída de exemplo

{
  "values": [
    {
      "recordId": "1",
      "data": {
        "content": "hello",
        "normalized_images": []
      }
    }
  ]
}

Consulte também