Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De vaardigheid Document Layout gebruikt het layoutmodel uit Azure Document Intelligence in Foundry Tools om een document te analyseren, de structuur en kenmerken te detecteren en een syntactische representatie in Markdown- of tekstformaat te produceren. Deze vaardigheid ondersteunt tekst- en beeldextractie, waarbij de laatste locatiemetadata bevat die de positie van afbeeldingen binnen een document behouden. Beeldnabijheid tot gerelateerde inhoud is gunstig in retrieval-augmented generation (RAG) en multimodale zoekscenario's .
Voor transacties die meer dan 20 documenten per indexeerder per dag bevatten, vereist deze vaardigheid dat je een declarabele Microsoft Foundry-resource toevoegt aan je vaardighedenset. De uitvoering van ingebouwde vaardigheden wordt gerekend tegen de bestaande Foundry Tools Standard-prijs.
Dit artikel is de referentiedocumentatie voor de vaardigheid Document Layout. Voor gebruiksinformatie, zie Hoe je chunkt en vectoriseert per documentlay-out.
Tip
Het is gebruikelijk om deze vaardigheid te gebruiken op inhoud met structuur en afbeeldingen, zoals PDF's. De multimodale tutorial demonstreert beeldverbalisatie met twee verschillende data-chunkingstrategieën.
Limitations
Deze vaardigheid kent de volgende beperkingen:
De vaardigheid is niet geschikt voor grote documenten die meer dan vijf minuten verwerking vereisen in het Azure Document Intelligence-layoutmodel. De vaardigheid loopt uit, maar er blijven kosten op de Foundry-resource als deze aan de skillset is gekoppeld voor facturering. Zorg ervoor dat documenten geoptimaliseerd zijn om binnen verwerkingslimieten te blijven om onnodige kosten te voorkomen.
Omdat deze vaardigheid het Azure Document Intelligence layoutmodel aanroept, gelden alle gedocumenteerde servicegedragingen voor verschillende documenttypes voor verschillende bestandstypen op de output. Zo kunnen Word (DOCX) en PDF-bestanden verschillende resultaten opleveren vanwege verschillen in hoe afbeeldingen worden verwerkt. Als consistent beeldgedrag tussen DOCX en PDF vereist is, overweeg dan documenten om te zetten naar PDF of de multimodale zoekdocumentatie te bekijken voor alternatieve benaderingen.
Supported regions
De Document Layout-vaardigheid roept v4.0 (2024-11-30) van de Azure Document Intelligence REST API.
Ondersteunde regio's verschillen per modaliteit en hoe de vaardigheid aansluit op het Azure Document Intelligence layoutmodel. Momenteel ondersteunt de geïmplementeerde versie van het layoutmodel geen 21Vianet-regio's .
| Approach | Requirement |
|---|---|
| Importgegevenswizard | Maak een Azure AI Zoeken service aan en Azure AI multi-service account in een van de volgende regio's: Oost-VS, West-Europa 2 of Noord-Centraal VS. |
| Programmatisch, met een Microsoft Foundry resource key voor facturering | Maak een Azure AI Zoeken-service en een Microsoft Foundry-bron aan in dezelfde regio. De regio moet zowel Azure AI Zoeken als Azure Document Intelligence ondersteunen. |
| Programmatisch, met gebruik van Microsoft Entra ID authenticatie (preview) voor facturering | Geen vereiste voor dezelfde regio. Maak een Azure AI Zoeken service en Microsoft Foundry-bron in elke regio waar elke service beschikbaar is. |
Ondersteunde bestandsformaten
Deze vaardigheid herkent de volgende bestandsformaten:
- .JPEG
- .JPG
- .PNG
- .BMP
- .TIFF
- .DOCX
- .XLSX
- .PPTX
- .HTML
Supported languages
Voor gedrukte tekst, zie Azure Document Intelligence layoutmodel ondersteunde talen.
@odata.type
Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill
Data limits
- Voor PDF en TIFF kunnen maximaal 2000 pagina's worden verwerkt (met een gratis abonnement worden alleen de eerste twee pagina's verwerkt).
- Zelfs als de bestandsgrootte voor het analyseren van documenten 500 MB is voor Azure Document Intelligence betaalde (S0) tier en 4 MB voor Azure Document Intelligence free (F0) tier, is indexering onderhevig aan de indexerlimieten van je zoekservice-tier.
- De afmetingen van de afbeelding moeten tussen 50 pixels x 50 pixels of 10.000 pixels x 10.000 pixels zijn.
- Als je PDF's met een wachtwoord zijn vergrendeld, verwijder dan het slot voordat je de indexer uitvoert.
Skill parameters
Parameters zijn hoofdlettergevoelig.
| Parameter name | Allowed values | Description |
|---|---|---|
outputMode |
oneToMany |
Regelt de kardinaliteit van de output die door de vaardigheid wordt geproduceerd. |
markdownHeaderDepth |
h1, h2, h3, , h4, h5, ( h6 standaard) |
Alleen geldt als outputFormat is gezet op markdown. Deze parameter beschrijft het diepste nestingsniveau dat overwogen moet worden. Bijvoorbeeld, als markdownHeaderDepth is h3, worden alle secties die dieper zijn, zoals h4, overgespoeld naar h3. |
outputFormat |
markdown (standaard), text |
Beheert het formaat van de output die door de vaardigheid wordt gegenereerd. |
extractionOptions |
["images"], ["images", "locationMetadata"], ["locationMetadata"] |
Identificeer eventuele extra inhoud die uit het document is gehaald. Definieer een array van enums die overeenkomen met de inhoud die in de output moet worden opgenomen. Als extractionOptions bijvoorbeeld , ["images", "locationMetadata"]bevat de output afbeeldingen en locatiemetadata die pagina-locatieinformatie bieden met betrekking tot waar de inhoud is gehaald, zoals een paginanummer of sectie. Deze parameter geldt voor beide uitvoerformaten. |
chunkingProperties |
Zie de volgende tabel. | Alleen geldt als outputFormat is gezet op text. Opties die samenvatten hoe je tekstinhoud in chunk kunt terwijl andere metadata opnieuw wordt berekend. |
chunkingProperties Parameter |
Allowed values | Description |
|---|---|---|
unit |
characters |
Regelt de kardinaliteit van de chunk-eenheid. De lengte van de stukken wordt gemeten in tekens, in plaats van in woorden of tokens. |
maximumLength |
Een geheel getal tussen 300 en 50000. | De maximale chunklengte in karakters gemeten door String.Length. |
overlapLength |
Een geheel getal minder dan de helft van maximumLength. |
De lengte van overlap tussen twee tekstblokken. |
Skill inputs
| Input name | Description |
|---|---|
file_data |
Het bestand waaruit die inhoud moet worden gehaald. |
De "file_data"-invoer moet een object zijn dat wordt gedefinieerd als:
{
"$type": "file",
"data": "BASE64 encoded string of the file"
}
Alternatief kan het worden gedefinieerd als:
{
"$type": "file",
"url": "URL to download file",
"sasToken": "OPTIONAL: SAS token for authentication if the URL provided is for a file in blob storage"
}
Het bestandsreferentieobject kan op een van de volgende manieren worden gegenereerd:
Zet de
allowSkillsetToReadFileDataparameter in je indexerdefinitie op waar. Deze instelling maakt een pad/document/file_dataaan dat een object is dat de originele bestandsgegevens vertegenwoordigt die van je blob-databron is gedownload. Deze parameter geldt alleen voor bestanden in Azure Blob storage.Een aangepaste vaardigheid die een JSON-objectdefinitie teruggeeft die ,
data, ofurlen$typesastokengeeft. De$typeparameter moet worden ingesteld opfile, endatamoet de basis 64-gecodeerde bytearray van de bestandsinhoud zijn. Deurlparameter moet een geldige URL zijn met toegang om het bestand op die locatie te downloaden.
Skill outputs
| Output name | Description |
|---|---|
markdown_document |
Alleen geldt als outputFormat is gezet op markdown. Een verzameling "secties"-objecten, die elke afzonderlijke sectie in het Markdown-document vertegenwoordigen. |
text_sections |
Alleen geldt als outputFormat is gezet op text. Een verzameling tekst-chunk-objecten, die de tekst binnen de grenzen van een pagina vertegenwoordigen (rekening houdend met eventuele extra chunking die wordt geconfigureerd), inclusief eventuele sectiekoppen zelf. Het tekstchunk-object bevat indien locationMetadata van toepassing. |
normalized_images |
Alleen geldt als outputFormat is gezet op text en extractionOptions bevat images. Een verzameling afbeeldingen die uit het document zijn gehaald, inclusief locationMetadata indien van toepassing. |
Voorbeelddefinitie voor markdown-uitvoermodus
{
"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"
}
]
}
]
}
Sample-uitgang voor markdown-uitvoermodus
{
"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,
}
]
}
De waarde van de bepaalt markdownHeaderDepth het aantal sleutels in het "secties" woordenboek. In de voorbeeldvaardigheidsdefinitie, aangezien de markdownHeaderDepth "h3" is, zijn er drie sleutels in het "secties" woordenboek: h1, h2, h3.
Voorbeeld voor tekstuitvoermodus en beeld- en metadata-extractie
Dit voorbeeld laat zien hoe je tekstinhoud in vaste stukken kunt uitvoeren en afbeeldingen kunt extraheren samen met locatiemetadata uit het document.
Voorbeelddefinitie voor tekstuitvoermodus en beeld- en metadata-extractie
{
"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"
}
]
}
]
}
Voorbeelduitvoer voor tekstuitvoermodus en beeld- en metadata-extractie
{
"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}]]"
}
}
]
}
Let op dat de “sections” bovenstaande voorbeelduitvoer leeg lijkt. Om ze te vullen, moet je een extra vaardigheid toevoegen die outputFormat je hebt ingesteld op markdownom ervoor te zorgen dat de secties correct worden ingevuld.
De vaardigheid gebruikt Azure Document Intelligence om locatiemetadata te berekenen. Zie Azure Document Intelligence layout model voor details over hoe pagina's en begrenzende polygoncoördinaten worden gedefinieerd.
De vertegenwoordigt imagePath het relatieve pad van een opgeslagen afbeelding. Als de projectie van het knowledge store-bestand in de skillset is geconfigureerd, komt dit pad overeen met het relatieve pad van de afbeelding die in de knowledge store is opgeslagen.