Compétence Mise en page du document

La compétence Disposition du document utilise le modèle de disposition d’Azure Document Intelligence dans Foundry Tools pour analyser un document, détecter sa structure et ses caractéristiques et produire une représentation syntactique au format Markdown ou texte. Cette compétence prend en charge l’extraction de texte et d’image, qui inclut les métadonnées d’emplacement qui conservent la position de l’image dans un document. La proximité de l’image avec le contenu associé est bénéfique dans les scénarios de recherche asynchrone (RAG) et de récupération augmentée.

Pour les transactions qui dépassent 20 documents par indexeur par jour, cette compétence vous oblige à attacher une ressource Microsoft Foundry facturable à votre ensemble de compétences. L’exécution des compétences intégrées est facturée au prix standard des outils Foundry existants.

Cet article est la documentation de référence pour la compétence Disposition du document. Pour plus d’informations sur l’utilisation, consultez Comment segmenter et vectoriser par disposition de document.

Tip

Il est courant d’utiliser cette compétence sur le contenu qui a une structure et des images, telles que des fichiers PDF. Le didacticiel Modal illustre la verbalisation d’image avec deux stratégies de segmentation de données différentes.

Limitations

Cette compétence présente les limitations suivantes :

  • La compétence ne convient pas aux documents volumineux nécessitant plus de cinq minutes de traitement dans le modèle de disposition Azure Document Intelligence. La compétence expire, mais les frais s’appliquent toujours à la ressource Foundry si elle est attachée à l’ensemble de compétences à des fins de facturation. Assurez-vous que les documents sont optimisés pour rester dans les limites de traitement pour éviter les coûts inutiles.

  • Étant donné que cette compétence appelle le modèle de disposition Azure Document Intelligence, tous les comportements de service documentés pour différents types de documents pour différents types de fichiers s’appliquent à sa sortie. Par exemple, les fichiers Word (DOCX) et PDF peuvent produire des résultats différents en raison de différences dans la façon dont les images sont gérées. Si le comportement cohérent de l’image dans DOCX et PDF est requis, envisagez de convertir des documents au format PDF ou d’examiner la documentation de recherche modale pour obtenir d’autres approches.

Supported regions

La compétence Disposition du document appelle v4.0 (2024-11-30) de l’API REST Azure Document Intelligence.

Les régions prises en charge varient selon la modalité et la façon dont la compétence se connecte au modèle de disposition Azure Document Intelligence. Actuellement, la version implémentée du modèle de disposition ne prend pas en charge les régions 21Vianet .

Approach Requirement
Assistant Importation de données Créez un service Recherche d’IA Azure et un compte multiservices Azure AI dans l’une des régions suivantes : USA Est, Europe Ouest 2 ou USA Centre Nord.
Programmatique, à l’aide d’une clé de ressource Microsoft Foundry pour la facturation Créez un service Recherche d’IA Azure et une ressource Microsoft Foundry dans la même région. La région doit prendre en charge Azure AI Search et Azure Document Intelligence.
Programmatique, à l’aide de l’authentification Microsoft Entra ID (préversion) pour la facturation Aucune exigence de région identique. Créez un service Recherche d’IA Azure et une ressource Microsoft Foundry dans n’importe quelle région où chaque service est disponible.

Formats de fichiers pris en charge

Cette compétence reconnaît les formats de fichier suivants :

  • .PDF
  • .JPEG
  • .JPG
  • .PNG
  • .BMP
  • .TIFF
  • .DOCX
  • .XLSX
  • .PPTX
  • .HTML

Supported languages

Pour le texte imprimé, consultez les langues prises en charge par le modèle de disposition Azure Document Intelligence.

@odata.type

Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill

Data limits

  • Pour PDF et TIFF, jusqu’à 2 000 pages peuvent être traitées (avec un abonnement de niveau gratuit, seules les deux premières pages sont traitées).
  • Même si la taille de fichier pour l’analyse des documents est de 500 Mo pour le niveau Payant (S0) Azure Document Intelligence et de 4 Mo pour le niveau Gratuit Azure Document Intelligence (F0), l’indexation est soumise aux limites d’indexeur de votre niveau de service de recherche.
  • Les dimensions de l’image doivent être comprises entre 50 pixels x 50 pixels ou 10 000 pixels x 10 000 pixels.
  • Si vos fichiers PDF sont verrouillés par mot de passe, supprimez le verrou avant d’exécuter l’indexeur.

Skill parameters

Les paramètres respectent la casse. Plusieurs paramètres ont été introduits dans des versions préliminaires spécifiques de l’API REST. Nous vous recommandons d’utiliser la version en disponibilité générale (2025-09-01) ou la dernière préversion (2025-11-01-preview) pour un accès complet à tous les paramètres.

Parameter name Allowed Values Description
outputMode oneToMany Contrôle la cardinalité de la sortie produite par la compétence.
markdownHeaderDepth h1, , h2, h3h4, , h5h6(default) S’applique uniquement si outputFormat la valeur est définie markdownsur . Ce paramètre décrit le niveau d’imbrication le plus profond qui doit être pris en compte. Par exemple, si markdownHeaderDepth est h3, toutes les sections qui sont plus approfondies telles que h4, sont roulées dans h3.
outputFormat markdown(default), text New. Contrôle le format de la sortie générée par la compétence.
extractionOptions ["images"], , ["images", "locationMetadata"]["locationMetadata"] New. Identifiez tout contenu supplémentaire extrait du document. Définissez un tableau d’énumérations qui correspondent au contenu à inclure dans la sortie. Par exemple, si la extractionOptions valeur est ["images", "locationMetadata"], la sortie inclut des images et des métadonnées d’emplacement qui fournissent des informations d’emplacement de page relatives à l’emplacement où le contenu a été extrait, tel qu’un numéro de page ou une section. Ce paramètre s’applique aux deux formats de sortie.
chunkingProperties See below. New. S’applique uniquement si outputFormat la valeur est définie textsur . Options qui encapsulent le contenu du texte en bloc lors de la recomputation d’autres métadonnées.
ChunkingProperties Parameter Version Allowed Values Description
unit Characters. actuellement la seule valeur autorisée. La longueur du bloc est mesurée en caractères, par opposition aux mots ou aux jetons New. Contrôle la cardinalité de l’unité de segment.
maximumLength Entier compris entre 300-50000 New. Longueur maximale de bloc en caractères mesurée par String.Length.
overlapLength Integer. La valeur doit être inférieure à la moitié de la maximumLength New. Longueur du chevauchement fourni entre deux blocs de texte.

Skill inputs

Input name 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"
}

Il peut également être défini 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 l’une des manières suivantes :

  • Définition du paramètre sur la allowSkillsetToReadFileData valeur true de votre définition d’indexeur. Ce paramètre crée un chemin d’accès /document/file_data qui représente les données de 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 du stockage Blob Azure.

  • Avoir une compétence personnalisée retournant une définition d’objet JSON qui fournit $type, dataou url et sastoken. Le $type paramètre doit être défini filesur , et data doit être le tableau d’octets codé en base 64 du contenu du fichier. Le url paramètre doit être une URL valide avec accès pour télécharger le fichier à cet emplacement.

Skill outputs

Output name Description
markdown_document S’applique uniquement si outputFormat la valeur est définie markdownsur . Collection d’objets « sections », qui représentent chaque section individuelle dans le document Markdown.
text_sections S’applique uniquement si outputFormat la valeur est définie textsur . Collection d’objets de bloc de texte, qui représentent le texte dans les limites d’une page (factoring dans un plus grand nombre de blocs configurés), inclus tous les en-têtes de section eux-mêmes. L’objet bloc de texte inclut locationMetadata le cas échéant.
normalized_images S’applique uniquement si outputFormat elle est définie text et extractionOptions inclut images. Collection d’images extraites du document, y compris locationMetadata le cas échéant.

Exemple de définition pour le mode de sortie Markdown

{
  "skills": [
    {
      "description": "Analyze a document",
      "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
      "context": "/document",
      "outputMode": "oneToMany", 
      "markdownHeaderDepth": "h3", 
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        {
          "name": "markdown_document", 
          "targetName": "markdown_document" 
        }
      ]
    }
  ]
}

Exemple de sortie pour le mode de sortie Markdown

{
  "markdown_document": [
    { 
      "content": "Hi this is Jim \r\nHi this is Joe", 
      "sections": { 
        "h1": "Foo", 
        "h2": "Bar", 
        "h3": "" 
      },
      "ordinal_position": 0
    }, 
    { 
      "content": "Hi this is Lance",
      "sections": { 
         "h1": "Foo", 
         "h2": "Bar", 
         "h3": "Boo" 
      },
      "ordinal_position": 1,
    } 
  ] 
}

La valeur du markdownHeaderDepth contrôle le nombre de clés dans le dictionnaire « sections ». Dans l’exemple de définition de compétence, étant donné que « markdownHeaderDepth h3 », il existe trois clés dans le dictionnaire « sections » : h1, h2, h3.

Exemple pour le mode de sortie de texte et l’extraction d’images et de métadonnées

Cet exemple montre comment générer du contenu de texte en blocs de taille fixe et extraire des images, ainsi que des métadonnées d’emplacement à partir du document.

Exemple de définition pour le mode de sortie de texte et l’extraction d’images et de métadonnées

{
  "skills": [
    {
      "description": "Analyze a document",
      "@odata.type": "#Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill",
      "context": "/document",
      "outputMode": "oneToMany",
      "outputFormat": "text",
      "extractionOptions": ["images", "locationMetadata"],
      "chunkingProperties": {     
          "unit": "characters",
          "maximumLength": 2000, 
          "overlapLength": 200
      },
      "inputs": [
        {
          "name": "file_data",
          "source": "/document/file_data"
        }
      ],
      "outputs": [
        { 
          "name": "text_sections", 
          "targetName": "text_sections" 
        }, 
        { 
          "name": "normalized_images", 
          "targetName": "normalized_images" 
        } 
      ]
    }
  ]
}

Exemple de sortie pour le mode de sortie de texte et l’extraction d’images et de métadonnées

{
  "text_sections": [
      {
        "id": "1_7e6ef1f0-d2c0-479c-b11c-5d3c0fc88f56",
        "content": "the effects of analyzers using Analyze Text (REST). For more information about analyzers, see Analyzers for text processing.During indexing, an indexer only checks field names and types. There's no validation step that ensures incoming content is correct for the corresponding search field in the index.Create an indexerWhen you're ready to create an indexer on a remote search service, you need a search client. A search client can be the Azure portal, a REST client, or code that instantiates an indexer client. We recommend the Azure portal or REST APIs for early development and proof-of-concept testing.Azure portal1. Sign in to the Azure portal 2, then find your search service.2. On the search service Overview page, choose from two options:· Import data wizard: The wizard is unique in that it creates all of the required elements. Other approaches require a predefined data source and index.All services > Azure Al services | Al Search >demo-search-svc Search serviceSearchAdd indexImport dataImport and vectorize dataOverviewActivity logEssentialsAccess control (IAM)Get startedPropertiesUsageMonitoring· Add indexer: A visual editor for specifying an indexer definition.",
        "locationMetadata": {
          "pageNumber": 1,
          "ordinalPosition": 0,
          "boundingPolygons": "[[{\"x\":1.5548,\"y\":0.4036},{\"x\":6.9691,\"y\":0.4033},{\"x\":6.9691,\"y\":0.8577},{\"x\":1.5548,\"y\":0.8581}],[{\"x\":1.181,\"y\":1.0627},{\"x\":7.1393,\"y\":1.0626},{\"x\":7.1393,\"y\":1.7363},{\"x\":1.181,\"y\":1.7365}],[{\"x\":1.1923,\"y\":2.1466},{\"x\":3.4585,\"y\":2.1496},{\"x\":3.4582,\"y\":2.4251},{\"x\":1.1919,\"y\":2.4221}],[{\"x\":1.1813,\"y\":2.6518},{\"x\":7.2464,\"y\":2.6375},{\"x\":7.2486,\"y\":3.5913},{\"x\":1.1835,\"y\":3.6056}],[{\"x\":1.3349,\"y\":3.9489},{\"x\":2.1237,\"y\":3.9508},{\"x\":2.1233,\"y\":4.1128},{\"x\":1.3346,\"y\":4.111}],[{\"x\":1.5705,\"y\":4.5322},{\"x\":5.801,\"y\":4.5326},{\"x\":5.801,\"y\":4.7311},{\"x\":1.5704,\"y\":4.7307}]]"
        },
        "sections": []
      },
      {
        "id": "2_25134f52-04c3-415a-ab3d-80729bd58e67",
        "content": "All services > Azure Al services | Al Search >demo-search-svc | Indexers Search serviceSearch0«Add indexerRefreshDelete:selected: TagsFilter by name ...:selected: Diagnose and solve problemsSearch managementStatusNameIndexesIndexers*Data sourcesRun the indexerBy default, an indexer runs immediately when you create it on the search service. You can override this behavior by setting disabled to true in the indexer definition. Indexer execution is the moment of truth where you find out if there are problems with connections, field mappings, or skillset construction.There are several ways to run an indexer:· Run on indexer creation or update (default).. Run on demand when there are no changes to the definition, or precede with reset for full indexing. For more information, see Run or reset indexers.· Schedule indexer processing to invoke execution at regular intervals.Scheduled execution is usually implemented when you have a need for incremental indexing so that you can pick up the latest changes. As such, scheduling has a dependency on change detection.Indexers are one of the few subsystems that make overt outbound calls to other Azure resources. In terms of Azure roles, indexers don't have separate identities; a connection from the search engine to another Azure resource is made using the system or user- assigned managed identity of a search service. If the indexer connects to an Azure resource on a virtual network, you should create a shared private link for that connection. For more information about secure connections, see Security in Azure Al Search.Check results",
        "locationMetadata": {
          "pageNumber": 2,
          "ordinalPosition": 1,
          "boundingPolygons": "[[{\"x\":2.2041,\"y\":0.4109},{\"x\":4.3967,\"y\":0.4131},{\"x\":4.3966,\"y\":0.5505},{\"x\":2.204,\"y\":0.5482}],[{\"x\":2.5042,\"y\":0.6422},{\"x\":4.8539,\"y\":0.6506},{\"x\":4.8527,\"y\":0.993},{\"x\":2.5029,\"y\":0.9845}],[{\"x\":2.3705,\"y\":1.1496},{\"x\":2.6859,\"y\":1.15},{\"x\":2.6858,\"y\":1.2612},{\"x\":2.3704,\"y\":1.2608}],[{\"x\":3.7418,\"y\":1.1709},{\"x\":3.8082,\"y\":1.171},{\"x\":3.8081,\"y\":1.2508},{\"x\":3.7417,\"y\":1.2507}],[{\"x\":3.9692,\"y\":1.1445},{\"x\":4.0541,\"y\":1.1445},{\"x\":4.0542,\"y\":1.2621},{\"x\":3.9692,\"y\":1.2622}],[{\"x\":4.5326,\"y\":1.2263},{\"x\":5.1065,\"y\":1.229},{\"x\":5.106,\"y\":1.346},{\"x\":4.5321,\"y\":1.3433}],[{\"x\":5.5508,\"y\":1.2267},{\"x\":5.8992,\"y\":1.2268},{\"x\":5.8991,\"y\":1.3408},{\"x\":5.5508,\"y\":1.3408}]]"
        },
        "sections": []
       }
    ],
    "normalized_images": [ 
        { 
            "id": "1_550e8400-e29b-41d4-a716-446655440000", 
            "data": "SGVsbG8sIFdvcmxkIQ==", 
            "imagePath": "aHR0cHM6Ly9henNyb2xsaW5nLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsaXR5L0NyZWF0ZUluZGV4ZXJwNnA3LnBkZg2/normalized_images_0.jpg",  
            "locationMetadata": {
              "pageNumber": 1,
              "ordinalPosition": 0,
              "boundingPolygons": "[[{\"x\":2.0834,\"y\":6.2245},{\"x\":7.1818,\"y\":6.2244},{\"x\":7.1816,\"y\":7.9375},{\"x\":2.0831,\"y\":7.9377}]]"
            }
        },
        { 
            "id": "2_123e4567-e89b-12d3-a456-426614174000", 
            "data": "U29tZSBtb3JlIGV4YW1wbGUgdGV4dA==", 
            "imagePath": "aHR0cHM6Ly9henNyb2xsaW5nLmJsb2IuY29yZS53aW5kb3dzLm5ldC9tdWx0aW1vZGFsaXR5L0NyZWF0ZUluZGV4ZXJwNnA3LnBkZg2/normalized_images_1.jpg",  
            "locationMetadata": {
              "pageNumber": 2,
              "ordinalPosition": 1,
              "boundingPolygons": "[[{\"x\":2.0784,\"y\":0.3734},{\"x\":7.1837,\"y\":0.3729},{\"x\":7.183,\"y\":2.8611},{\"x\":2.0775,\"y\":2.8615}]]"
            } 
        }
    ] 
}

Notez que l’exemple “sections” de sortie ci-dessus apparaît vide. Pour les remplir, vous devez ajouter une compétence supplémentaire configurée pour outputFormatmarkdownvous assurer que les sections sont correctement remplies.

La compétence utilise Azure Document Intelligence pour calculer locationMetadata. Reportez-vous au modèle de disposition Azure Document Intelligence pour plus d’informations sur la façon dont les pages et les coordonnées de polygones englobantes sont définies.

Représente imagePath le chemin relatif d’une image stockée. Si la projection du fichier du magasin de connaissances est configurée dans l’ensemble de compétences, ce chemin correspond au chemin relatif de l’image stockée dans la base de connaissances.

See also