Compétence cognitive Extraction de document

Note

Recherche Azure AI est disponible via le portail Azure, les API REST et les SDK Azure. Il sous-tend également Foundry IQ, la couche de connaissances managée qui transforme le contenu d’entreprise en bases de connaissances réutilisables et prenant en charge les autorisations pour les agents dans le portail Microsoft Foundry.

La compétence Extraction de document extrait le contenu d’un fichier dans le pipeline d’enrichissement. Par défaut, l’extraction ou la récupération de contenu est intégrée au pipeline d’enrichissement. Toutefois, à l’aide de la compétence d’extraction de documents, vous pouvez contrôler la façon dont les paramètres sont définis et comment le contenu extrait est nommé dans l’arborescence d’enrichissement.

Pour la recherche vectorielle et modale, combinez l’extraction de documents avec la compétence Fractionnement de texte pour implémenter une approche configurable de segmentation des données. Le didacticiel Modal illustre ce scénario.

Note

Cette compétence n’est pas liée à Foundry Tools et ne nécessite aucune clé Foundry Tools.

Cette compétence permet d’extraire du texte et des images. L’extraction de texte est gratuite. L’extraction d’images est facturable par la Recherche Azure AI. Sur un service de recherche gratuit, le coût de 20 transactions par indexeur par jour est absorbé, ce qui vous permet de suivre des démarrages rapides, des tutoriels et de petits projets gratuitement. Pour les niveaux de base et supérieurs, l’extraction d’images est facturable.

@odata.type

Microsoft.Skills.Util.DocumentExtractionSkill

Formats de document pris en charge

DocumentExtractionSkill peut extraire du texte à partir des formats de document suivants :

  • CSV (consultez Indexation d’objets blob CSV)
  • EML
  • EPUB
  • GZ
  • HTML
  • JSON (consultez Indexation d’objets blob JSON)
  • KML (XML pour les représentations géographiques)
  • Markdown
  • Formats Microsoft Office : DOCX/DOC/DOCM, XLSX/XLS/XLSM, PPTX/PPT/PPTM, MSG (e-mails Outlook), XML (XML WORD 2003 et 2006)
  • Formats de document ouverts : ODT, ODS, ODP
  • PDF
  • Fichiers de texte brut (voir aussi l’indexation de texte brut)
  • Format de texte enrichi (RTF)
  • XML
  • ZIP

Paramètres de compétence

Les paramètres sont sensibles à la casse.

Entrées Valeurs autorisées Description
parsingMode default
text
json
Défini pour default l’extraction de documents à partir de fichiers qui ne sont pas du texte pur ou json. Pour les fichiers sources qui contiennent des marques de balisage, telles que PDF, HTML, RTF et Microsoft Office fichiers, utilisez la valeur par défaut pour extraire du texte sans langue de balisage ni étiquettes. Si parsingMode elle n’est pas définie explicitement, la valeur est default.

A la valeur text si les fichiers sources sont TXT. Ce mode d’analyse améliore les performances sur les fichiers texte brut. Si les fichiers incluent le balisage, ce mode conserve les balises dans la sortie finale.

Définissez cette option pour json extraire du contenu structuré à partir de fichiers JSON.
dataToExtract contentAndMetadata
allMetadata
Définissez ce paramètre sur contentAndMetadata pour extraire toutes les métadonnées et le contenu textuel de chaque fichier. Si dataToExtract elle n’est pas définie explicitement, la valeur est contentAndMetadata.

Définissez pour allMetadata extraire uniquement les propriétés de métadonnées du type de contenu, telles que les métadonnées uniques aux fichiers PNG.
configuration Voir ci-dessous. Dictionnaire de paramètres facultatifs qui ajustent le mode d’exécution de l’extraction de document. Reportez-vous au tableau ci-dessous pour consulter une description des propriétés de configuration prises en charge.
Paramètre de configuration Valeurs autorisées Description
imageAction none
generateNormalizedImages
generateNormalizedImagePerPage
Définissez cette valeur sur none pour ignorer les images incorporées ou les fichiers image dans le jeu de données, ou si les données sources n’incluent pas de fichiers image. Il s’agit de la valeur par défaut.

Pour la reconnaissance optique de caractères et l’analyse d’image, définissez ce paramètre sur generateNormalizedImages pour que la compétence crée un tableau d’images normalisées dans le cadre du craquage de documents. Cette action nécessite parsingMode la valeur définie default et dataToExtract définie sur contentAndMetadata. Une image normalisée a une sortie uniforme qui est dimensionnée et pivotée pour promouvoir un rendu cohérent dans les résultats de recherche visuelle. La compétence génère ces informations pour chaque image.

Si vous définissez imageActiongenerateNormalizedImagePerPagesur , chaque page PDF est rendue sous forme d’image et normalisée au lieu d’extraire des images incorporées. Les autres types de fichiers sont traités de la même façon que si generateNormalizedImages était défini.
normalizedImageMaxWidth Entier compris entre 50 et 10000 Largeur maximale (en pixels) des images normalisées générées. La valeur par défaut est 2000.
normalizedImageMaxHeight Entier compris entre 50 et 10000 Hauteur maximale (en pixels) des images normalisées générées. La valeur par défaut est 2000.

Note

La valeur par défaut de 2000 pixels pour la hauteur et la largeur maximales des images normalisées est basée sur les tailles maximales prises en charge par la compétence de reconnaissance optique de caractères et la compétence d’analyse d’image. La compétence de reconnaissance optique de caractères (OCR) prend en charge une largeur et une hauteur maximales de 4200 pour les langues autres que l’anglais et de 10000 pour l’anglais. Si vous augmentez les limites maximales, le traitement des images plus volumineuses peut échouer en fonction de la définition de vos compétences et de la langue des documents.

Données de compétences

Nom de saisie Description
file_data Fichier à partir duquel le contenu doit être extrait.

L’entrée « file_data » doit être un objet défini comme suit :

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

Elle peut également être définie comme suit :

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

L’objet de référence de fichier peut être généré de 3 manières :

  • En définissant le paramètre allowSkillsetToReadFileData de votre définition d’indexeur sur la valeur « true ». Cela crée un chemin d’accès /document/file_data qui est un objet représentant les données du fichier d’origine téléchargées à partir de votre source de données d’objet blob. Ce paramètre s’applique uniquement aux fichiers dans le stockage Blob.

    allowSkillsetToReadFileData rend les données de fichier téléchargées disponibles pour la compétence. Il n’augmente pas la taille de fichier de l’indexeur d’objets blob ni les limites de contenu extraites.

  • En définissant le paramètre imageAction de votre définition d’indexeur sur autre valeur que none. Ceci crée un tableau d’images qui suivent la convention nécessaire pour les entrées de cette compétence, si elles sont passées individuellement (c’est-à-dire /document/normalized_images/*).

  • Avoir une compétence personnalisée renvoie un objet JSON défini exactement comme indiqué ci-dessus. Le paramètre $type doit être défini exactement sur file et le paramètre data doit correspondre aux données de tableau d’octets encodé en base 64 du fichier de contenu, ou le paramètre url doit être une URL au format correct avec un accès pour télécharger le fichier à cet emplacement.

Résultats des compétences

Nom de sortie Description
content Contenu textuel du document.
normalized_images Lorsqu’il imageAction est défini sur une valeur autre que none, le nouveau champ normalized_images contient un tableau d’images. Pour plus d’informations sur le format de sortie, consultez Extraire du texte et des informations à partir d’images.

Exemple de définition

 {
    "@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"
      }
    ]
  }

Exemple d’entrée

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

Exemple de résultat

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

Voir aussi