Dokumentlayoutfärdighet

Färdigheten Document Layout använder layoutmodellen från Azure Document Intelligence in Foundry Tools för att analysera ett dokument, upptäcka dess struktur och egenskaper samt producera en syntaktisk representation i Markdown- eller textformat. Denna färdighet stödjer text- och bildextraktion, där den senare inkluderar platsmetadata som bevarar bildpositionen i ett dokument. Bildnärhet till relaterat innehåll är fördelaktigt i retrieval-augmented generation (RAG) och multimodala sökscenarier .

För transaktioner som överstiger 20 dokument per indexerare per dag kräver denna färdighet att du bifogar en debiterbar Microsoft Foundry-resurs till din kompetens. Utförandet av inbyggda färdigheter debiteras till det befintliga Foundry Tools Standard-priset.

Den här artikeln är referensdokumentationen för färdigheten Dokumentlayout. För användningsinformation, se Hur man chunkar och vektoriserar efter dokumentlayout.

Tip

Det är vanligt att använda denna färdighet på innehåll som har struktur och bilder, som PDF:er. Den multimodala handledningen demonstrerar bildverbalisering med två olika strategier för datasegmentering.

Limitations

Denna färdighet har följande begränsningar:

  • Färdigheten är inte lämplig för stora dokument som kräver mer än fem minuters bearbetning i Azure Document Intelligence-layoutmodellen. Färdigheten går ut på tidtagning, men avgifter tillkommer fortfarande Foundry-resursen om den är kopplad till kompetensen för fakturering. Se till att dokumenten är optimerade för att hålla sig inom behandlingsgränserna för att undvika onödiga kostnader.

  • Eftersom denna färdighet anropar Azure Document Intelligence-layoutmodellen, gäller alla dokumenterade servicebeteenden för olika dokumenttyper för olika filtyper för dess utdata. Till exempel kan Word (DOCX) och PDF-filer ge olika resultat på grund av skillnader i hur bilder hanteras. Om konsekvent bildbeteende krävs över DOCX och PDF, överväg att konvertera dokument till PDF eller granska dokumentationen för multimodal sökning för alternativa metoder.

Supported regions

Document Layout-färdigheten anropar v4.0 (2024-11-30) av Azure Document Intelligence REST API.

Stödda regioner varierar beroende på modalitet och hur färdigheten kopplas till Azure Document Intelligence-layoutmodellen. För närvarande stöder den implementerade versionen av layoutmodellen inte 21Vianet-regioner .

Approach Requirement
Importdata-guiden Skapa en Azure AI-sökning tjänst och Azure AI-multiservicekonto i någon av följande regioner: östra USA, Västeuropa 2 eller norra centrala USA.
Programmatisk, med en Microsoft Foundry resource key för fakturering Skapa en Azure AI-sökning-tjänst och en Microsoft Foundry-resurs i samma region. Regionen måste stödja både Azure AI-sökning och Azure Document Intelligence.
Programmatisk, med Microsoft Entra ID autentisering (förhandsvisning) för fakturering Inget krav på samma region. Skapa en Azure AI-sökning tjänst och Microsoft Foundry-resurs i vilken region som helst där varje tjänst är tillgänglig.

Stödda filformat

Denna färdighet känner igen följande filformat:

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

Supported languages

För tryckt text, se Azure Document Intelligence layout model supported languages.

@odata.type

Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill

Data limits

  • För PDF och TIFF kan upp till 2 000 sidor bearbetas (med en prenumeration på den kostnadsfria nivån bearbetas endast de två första sidorna).
  • Även om filstorleken för att analysera dokument är 500 MB för Azure Document Intelligence betald (S0)-tier och 4 MB för Azure Document Intelligence free (F0)-tier, omfattas indexeringen av indexer-gränserna i din söktjänstnivå.
  • Bilddimensionerna måste vara mellan 50 pixlar x 50 pixlar eller 10 000 pixlar x 10 000 pixlar.
  • Om dina PDF-filer är lösenordslåsta, ta bort låset innan du kör indexeraren.

Skill parameters

Parametrar är skiftlägeskänsliga.

Parameter name Allowed values Description
outputMode oneToMany Styr kardinaliteten på det resultat som produceras av färdigheten.
markdownHeaderDepth h1, h2, h3, h4, , h5, ( h6 standard) Endast gäller om outputFormat är satt till markdown. Denna parameter beskriver den djupaste nästlingsnivån som bör beaktas. Till exempel, om markdownHeaderDepth är , rullas alla sektioner som är djupare, såsom h4, in i h3h3.
outputFormat markdown (standard), text Styr formatet på det resultat som genereras av färdigheten.
extractionOptions ["images"], , ["images", "locationMetadata"]["locationMetadata"] Identifiera eventuellt extra innehåll som extraherats från dokumentet. Definiera en array av enum som motsvarar innehållet som ska inkluderas i utdatan. Till exempel, om extractionOptions är ["images", "locationMetadata"], innehåller utdata bilder och platsmetadata som ger sidinformation relaterad till var innehållet extraherades, såsom ett sidnummer eller en sektion. Denna parameter gäller för båda utdataformaten.
chunkingProperties Se följande tabell. Endast gäller om outputFormat är satt till text. Alternativ som kapslar in hur man delar textinnehåll samtidigt som man beräknar om annan metadata.
chunkingProperties Parameter Allowed values Description
unit characters Styr kardinaliteten på chunk-enheten. Chunk-längd mäts i tecken, till skillnad från ord eller tokens.
maximumLength Ett heltal mellan 300 och 50 000. Den maximala chunklängden i tecken mätt med String.Length.
overlapLength Ett heltal mindre än hälften av maximumLength. Längden på överlappning som anges mellan två textbitar.

Skill inputs

Input name Description
file_data Filen som innehållet ska extraheras från.

"file_data"-inmatningen måste vara ett objekt definierat som:

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

Alternativt kan den definieras som:

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

Filreferensobjektet kan genereras på ett av följande sätt:

  • Att sätta parametern allowSkillsetToReadFileData i din indexerdefinition till true. Denna inställning skapar en sökväg /document/file_data som är ett objekt som representerar den ursprungliga fildatan nedladdad från din blob-datakälla. Denna parameter gäller endast filer i Azure Blob-lagring.

  • Att ha en anpassad färdighet som returnerar en JSON-objektdefinition som tillhandahåller $type, data, eller url och sastoken. Parametern $type måste sättas till file, och data måste vara den bas-64-kodade bytearrayen för filinnehållet. Parametern url måste vara en giltig URL med åtkomst för att ladda ner filen på den platsen.

Skill outputs

Output name Description
markdown_document Endast gäller om outputFormat är satt till markdown. En samling "sektioner"-objekt som representerar varje enskild sektion i Markdown-dokumentet.
text_sections Endast gäller om outputFormat är satt till text. En samling textchunk-objekt, som representerar texten inom en sides gränser (med hänsyn till ytterligare chunking konfigurerad), inklusive eventuella sektionsrubriker själva. Textchunk-objektet inkluderar om det är locationMetadata tillämpligt.
normalized_images Endast gäller om outputFormat är satt till text och extractionOptions inkluderar images. En samling bilder som extraherats från dokumentet, inklusive locationMetadata om tillämpligt.

Exempeldefinition för markdown-utgångsläge

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

Exempelutgång för markdown-utgångsläge

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

Värdet på styr markdownHeaderDepth antalet tangenter i "sektioner"-ordboken. I exempelfärdighetsdefinitionen, eftersom är markdownHeaderDepth "h3", finns det tre nycklar i "sektioner"-ordboken: h1, h2, h3.

Exempel för textutmatningsläge samt bild- och metadataextraktion

Detta exempel visar hur man kan exportera textinnehåll i fasta delar och extrahera bilder tillsammans med platsmetadata från dokumentet.

Exempeldefinition för textutmatningsläge samt bild- och metadatautvinning

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

Exempelutdata för textutdata och bild- och metadatautvinning

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

Observera att i “sections” exempelutdata ovan visas tomt. För att fylla dem måste du lägga till en extra färdighet konfigurerad med outputFormat satt till markdownför att säkerställa att sektionerna är korrekt fyllda.

Färdigheten använder Azure Document Intelligence för att beräkna platsmetadata. Se Azure Document Intelligence layout model för detaljer om hur sidor och begränsningspolygonkoordinater definieras.

Representerar imagePath den relativa vägen för en lagrad bild. Om projektionen av kunskapsfilen är konfigurerad i skillset, matchar denna väg den relativa vägen för bilden som lagras i kunskapslagringen.