Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Навык макета документов использует модель макета из Azure Document Intelligence в инструментах Foundry для анализа документа, определения структуры и характеристик и создания синтаксического представления в формате Markdown или текста. Этот навык поддерживает извлечение текста и изображения, в том числе метаданные расположения, сохраняющие положение изображения в документе. Близость изображений к связанному содержимому полезна в сценариях извлечения с дополнением генерации (RAG) и многомодального поиска.
Для транзакций, превышающих 20 документов на индексатор в день, этот навык требует подключения оплачиваемого ресурса Microsoft Foundry к набору навыков. Выполнение встроенных навыков взимается по существующей цене средств Foundry Standard.
В этой статье приведена справочная документация по навыку макета документов. Сведения об использовании см. в разделе "Как фрагментировать и векторизировать по макету документа".
Tip
Обычно этот навык используется для содержимого с структурой и изображениями, такими как PDF-файлы. В руководстве по многомодальному анализу показана словизация изображений с двумя разными стратегиями блокирования данных.
Limitations
Этот навык имеет следующие ограничения:
Навык не подходит для больших документов, требующих более пяти минут обработки в модели макета аналитики документов Azure. Время ожидания навыка, но плата по-прежнему применяется к ресурсу Foundry, если он подключен к набору навыков для выставления счетов. Убедитесь, что документы оптимизированы для поддержания в пределах ограничений обработки, чтобы избежать ненужных затрат.
Поскольку этот навык вызывает модель макета Azure Document Intelligence, все задокументированные сервисные поведения для различных типов документов и файлов применяются к его выходным данным. Например, файлы Word (DOCX) и PDF могут создавать различные результаты из-за различий в обработке изображений. Если требуется согласованное поведение изображения в DOCX и PDF, рекомендуется преобразовать документы в PDF или просмотреть документацию по многомодальному поиску для альтернативных подходов.
Поддерживаемые регионы
Навык макета документов использует REST API анализа документов Azure версии 4.0 (2024-11-30).
Поддерживаемые регионы зависят от модальности и способа подключения навыка к модели макета аналитики документов Azure. В настоящее время текущая версия модели макета не поддерживает регионы 21Vianet.
| Approach | Requirement |
|---|---|
| Мастер импорта данных | Создайте службу поиска ИИ Azure и учетную запись нескольких служб Azure в одном из следующих регионов: восточная часть США, Западная Европа или Северная часть США. |
| Программное использование ключа ресурса Microsoft Foundry для выставления счетов | Создайте службу поиска ИИ Azure и ресурс Microsoft Foundry в том же регионе. Регион должен поддерживать поиск ИИ Azure и Аналитику документов Azure. |
| Программное использование проверки подлинности идентификатора Microsoft Entra (предварительная версия) для выставления счетов | Нет требования к нахождению в одном регионе. Создайте службу поиска ИИ Azure и ресурс Microsoft Foundry в любом регионе, где доступна каждая служба. |
Поддерживаемые форматы файлов
Этот навык распознает следующие форматы файлов:
- .JPEG
- .JPG
- .PNG
- .BMP
- .TIFF
- .DOCX
- .XLSX
- .PPTX
- .HTML
Поддерживаемые языки
Сведения о печатном тексте см. в поддерживаемых языках модели макета аналитики документов Azure.
@odata.type
Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill
Ограничения данных
- Для PDF и TIFF можно обрабатывать до 2000 страниц (с подпиской на бесплатный уровень только первые две страницы обрабатываются).
- Даже если размер файла для анализа документов составляет 500 МБ для платного уровня Azure Document Intelligence (S0) и 4 МБ для бесплатного уровня аналитики документов Azure (F0), индексирование зависит от ограничений индексатора уровня службы поиска.
- Размеры изображения должны составлять от 50 пикселей до 50 пикселей или 10 000 пикселей x 10 000 пикселей.
- Если pdf-файлы заблокированы паролем, удалите блокировку перед запуском индексатора.
Параметры навыков
Параметры чувствительны к регистру. В конкретных предварительных версиях REST API появились несколько параметров. Мы рекомендуем использовать общедоступную версию (2025-09-01) или последнюю предварительную версию (2025-11-01-preview) для полного доступа ко всем параметрам.
| Имя параметра | Допустимые значения | Description |
|---|---|---|
outputMode |
oneToMany |
Управляет кратностью выходных данных, созданных навыком. |
markdownHeaderDepth |
h1, , h2h3h4h5,h6(default) |
Применяется, только если для параметра outputFormat задано значение markdown. Этот параметр описывает самый глубокий уровень вложения, который следует учитывать. Например, если markdownHeaderDepth имеет h3значение , все разделы, которые более глубоки, например h4, свернуты в h3. |
outputFormat |
markdown(default), text |
New. Управляет форматом выходных данных, созданных навыком. |
extractionOptions |
["images"], , ["images", "locationMetadata"]["locationMetadata"] |
New. Определите любое дополнительное содержимое, извлеченное из документа. Определите массив перечислений, соответствующих содержимому, который должен быть включен в выходные данные. Например, если это extractionOptions["images", "locationMetadata"]так, выходные данные включают изображения и метаданные расположения, предоставляющие сведения о расположении страниц, связанные с местом извлечения содержимого, например номер страницы или раздел. Этот параметр применяется к обоим выходным форматам. |
chunkingProperties |
См. ниже. |
New. Применяется, только если для параметра outputFormat задано значение text. Параметры, которые инкапсулируют, как фрагментировать текстовое содержимое при повторной компиляции других метаданных. |
| Параметр ChunkingProperties | Version | Допустимые значения | Description |
|---|---|---|---|
unit |
Characters. в настоящее время единственно допустимое значение. Длина блока измеряется в символах, а не в словах или маркерах |
New. Управляет кратностью единицы блока. | |
maximumLength |
Любое целое число от 300 до 50000 | New. Максимальная длина блока в символах, измеряемая string.Length. | |
overlapLength |
Integer. Значение должно быть меньше половины maximumLength |
New. Длина перекрытия между двумя фрагментами текста. |
Входные данные навыков
| Входное имя | Description |
|---|---|
file_data |
Файл, из которого должно быть извлечено содержимое. |
Входные данные "file_data" должны быть объектом, определенным как:
{
"$type": "file",
"data": "BASE64 encoded string of the file"
}
Кроме того, его можно определить следующим образом:
{
"$type": "file",
"url": "URL to download file",
"sasToken": "OPTIONAL: SAS token for authentication if the URL provided is for a file in blob storage"
}
Объект ссылки на файл можно создать одним из следующих способов:
При задании
allowSkillsetToReadFileDataпараметра для определения индексатора задано значение true. Этот параметр создает путь/document/file_data, представляющий исходные данные файла, скачанные из источника данных BLOB-объектов. Этот параметр применяется только к файлам в хранилище BLOB-объектов Azure.Наличие настраиваемого навыка, возвращающего определение объекта JSON, которое предоставляет
$type,dataилиurlsastoken. Параметр$typeдолжен иметь значение , иfileдолжен бытьdataбазовым 64-кодированным массивом байтов содержимого файла. Параметрurlдолжен быть допустимым URL-адресом с доступом для скачивания файла в этом расположении.
Выходные данные навыка
| Название вывода | Description |
|---|---|
markdown_document |
Применяется, только если для параметра outputFormat задано значение markdown. Коллекция объектов sections, представляющих каждый отдельный раздел в документе Markdown. |
text_sections |
Применяется, только если для параметра outputFormat задано значение text. Коллекция объектов фрагментов текста, представляющая текст в границах страницы (факторинг в любом более настроенном фрагменте), включая все заголовки разделов. Объект фрагмента текста включает в себя locationMetadata , если применимо. |
normalized_images |
Применяется только в том случае, если outputFormat задано text значение и extractionOptions включается images. Коллекция изображений, извлеченных из документа, включая locationMetadata , если применимо. |
Пример определения для режима вывода 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"
}
]
}
]
}
Пример выходных данных для режима вывода 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,
}
]
}
Значение markdownHeaderDepth элемента управления числом ключей в словаре "разделов". В примере определения навыка, так как markdownHeaderDepth это "h3", в словаре "разделы" есть три ключа: h1, h2, h3.
Пример для вывода текста и извлечения изображений и метаданных
В этом примере показано, как выводить текстовое содержимое в блоках фиксированного размера и извлекать изображения вместе с метаданными расположения из документа.
Пример определения для режима вывода текста и извлечения изображений и метаданных
{
"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"
}
]
}
]
}
Пример выходных данных для режима вывода текста и извлечения изображений и метаданных
{
"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}]]"
}
}
]
}
Обратите внимание, что “sections” в приведенном выше примере выходных данных отображается пустое значение. Чтобы заполнить их, необходимо добавить дополнительный навык, настроенный с outputFormat набором, чтобы markdownубедиться, что разделы заполнены правильно.
Навык использует аналитику документов Azure для вычислений расположенияMetadata. Дополнительные сведения о том, как определяются страницы и ограничивающие координаты многоугольников, см. в модели макета аналитики документов Azure .
Представляет imagePath относительный путь к сохраненном изображению. Если проекция файла хранилища знаний настроена в наборе навыков, этот путь соответствует относительному пути изображения, хранящегося в хранилище знаний.