Compartir a través de


Aptitud de Diseño de documento

La aptitud Diseño de documento analiza un documento para detectar la estructura y las características, y genera una representación sintáctica del documento en formato Markdown o Text. Puede usarlo para extraer texto e imágenes, donde la extracción de imágenes incluye metadatos de ubicación que conservan la posición de la imagen dentro del documento. La proximidad de imágenes al contenido relacionado es beneficiosa en cargas de trabajo de generación aumentada de recuperación (RAG) y escenarios de búsqueda incremental .

Este artículo es la documentación de referencia de la aptitud Diseño de documento. Para obtener información de uso, vea Cómo fragmentar y vectorizar por diseño de documento.

Esta aptitud usa el modelo de diseño de Azure Document Intelligence en Foundry Tools.

Esta aptitud está enlazada a un recurso facturable de Microsoft Foundry para transacciones que superan los 20 documentos por indexador al día. La ejecución de aptitudes integradas se cobra por el precio estándar de Las herramientas de foundry existentes.

Tip

Es habitual usar esta aptitud en contenido como archivos PDF que tienen estructura e imágenes. En los tutoriales siguientes se muestra la verbalización de imágenes con dos técnicas de fragmentación de datos diferentes:

Limitations

Esta aptitud tiene las siguientes limitaciones:

  • La aptitud no es adecuada para documentos grandes que requieren más de 5 minutos de procesamiento en el modelo de diseño de Azure Document Intelligence. La aptitud agota el tiempo de espera, pero los cargos se siguen aplicando al recurso Foundry si está asociado al conjunto de aptitudes con fines de facturación. Asegúrese de que los documentos están optimizados para mantenerse dentro de los límites de procesamiento para evitar costos innecesarios.

  • Dado que esta aptitud llama al modelo de diseño de Azure Document Intelligence, todos los comportamientos de servicio documentados para diferentes tipos de documento para distintos tipos de archivo se aplican a su salida. Por ejemplo, los archivos Word (DOCX) y PDF pueden generar resultados diferentes debido a diferencias en la forma en que se controlan las imágenes. Si se requiere un comportamiento coherente de la imagen entre DOCX y PDF, considere la posibilidad de convertir documentos en PDF o revisar la documentación de búsqueda horizontal para obtener enfoques alternativos.

Regiones soportadas

La aptitud Diseño de documento llama a la versión V4.0 de la API de Azure Document Intelligence 2024-11-30.

Las regiones admitidas varían según la modalidad y cómo se conecta la aptitud al modelo de diseño de Azure Document Intelligence.

Approach Requirement
Asistente para importación de datos (nuevo) Cree un recurso Foundry en una de estas regiones para obtener la experiencia del portal: Este de EE. UU., Oeste de Europa, Centro-norte de EE. UU.
Mediante programación, con la autenticación de Id. de Entra de Microsoft (versión preliminar) para la facturación Cree Azure AI Search en una de las regiones en las que se admite el servicio, según la disponibilidad del producto por región.
Cree el recurso Foundry en cualquier región que aparezca en la tabla Disponibilidad del producto por región .
Mediante programación, mediante una clave de recurso foundry para la facturación Cree el servicio Azure AI Search y el recurso Foundry en la misma región. Esto significa que la región elegida debe tener compatibilidad con Azure AI Search y los servicios de Azure Document Intelligence.

La versión implementada del modelo de diseño de documento no admite regiones de 21Vianet en este momento.

Formatos de archivos admitidos

Esta aptitud reconoce los siguientes formatos de archivo.

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

Idiomas compatibles

Consulte los idiomas admitidos del modelo de diseño de Azure Document Intelligence para el texto impreso.

@odata.type

Microsoft.Skills.Util.DocumentIntelligenceLayoutSkill

Límites de datos

  • Para PDF y TIFF, se pueden procesar hasta 2000 páginas (con una suscripción de nivel gratis, solo se procesan las dos primeras páginas).
  • Incluso si el tamaño de archivo para analizar documentos es de 500 MB para el nivel de pago (S0) de Azure Document Intelligence y 4 MB para el nivel gratis (F0) de Azure Document Intelligence, la indexación está sujeta a los límites del indexador del nivel de servicio de búsqueda.
  • Las dimensiones de imagen deben estar entre 50 x 50 píxeles o 10 000 píxeles x 10 000 píxeles.
  • Si los archivos PDF están bloqueados con contraseña, quite el bloqueo antes de ejecutar el indexador.

Parámetros de la aptitud

Los parámetros distinguen mayúsculas de minúsculas. Se introdujeron varios parámetros en versiones preliminares específicas de la API REST. Se recomienda usar la versión disponible con carácter general (2025-09-01) o la versión preliminar más reciente (2025-11-01-preview) para obtener acceso completo a todos los parámetros.

Nombre del parámetro Valores permitidos Description
outputMode oneToMany Controla la cardinalidad de la salida generada por la aptitud.
markdownHeaderDepth h1, h2, h3, h4, , h5, h6(default) Solo se aplica si outputFormat está establecido en markdown. Este parámetro describe el nivel de anidamiento más profundo que se debe tener en cuenta. Por ejemplo, si markdownHeaderDepth es h3, las secciones más profundas, como h4, se inscriben en h3.
outputFormat markdown(default), text New. Controla el formato de la salida generada por la aptitud.
extractionOptions ["images"], , ["images", "locationMetadata"], ["locationMetadata"] New. Identifique cualquier contenido adicional extraído del documento. Defina una matriz de enumeraciones que corresponden al contenido que se incluirá en la salida. Por ejemplo, si extractionOptions es ["images", "locationMetadata"], la salida incluye imágenes y metadatos de ubicación que proporcionan información de ubicación de página relacionada con dónde se extrajo el contenido, como un número de página o una sección. Este parámetro se aplica a ambos formatos de salida.
chunkingProperties Consulte a continuación. New. Solo se aplica si outputFormat está establecido en text. Opciones que encapsulan cómo fragmentar el contenido de texto al volver a calcular otros metadatos.
Parámetro ChunkingProperties Version Valores permitidos Description
unit Characters. actualmente el único valor permitido. La longitud del fragmento se mide en caracteres, en lugar de palabras o tokens. New. Controla la cardinalidad de la unidad de fragmento.
maximumLength Cualquier entero entre 300-50000 New. Longitud máxima del fragmento en caracteres medida por String.Length.
overlapLength Integer. El valor debe ser menor que la mitad del maximumLength New. Longitud de superposición proporcionada entre dos fragmentos de texto.

Entradas de la aptitud

Nombre de entrada Description
file_data Archivo del que se debe extraer el contenido.

La entrada "file_data" debe ser un objeto definido así:

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

Como alternativa, se puede definir como:

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

El objeto de referencia de archivo se puede generar de una de las maneras siguientes:

  • Establezca el parámetro en la allowSkillsetToReadFileData definición del indexador en true. Esta configuración crea una ruta de acceso /document/file_data que representa los datos de archivo originales descargados del origen de datos del blob. Este parámetro solo se aplica a los archivos de Azure Blob Storage.

  • Tener una aptitud personalizada que devuelva una definición de objeto JSON que proporcione $type, datao url y sastoken. El $type parámetro debe establecerse fileen y data debe ser la matriz de bytes codificada en base 64 del contenido del archivo. El url parámetro debe ser una dirección URL válida con acceso para descargar el archivo en esa ubicación.

Salidas de la aptitud

Nombre de salida Description
markdown_document Solo se aplica si outputFormat está establecido en markdown. Colección de objetos "secciones", que representan cada sección individual del documento markdown.
text_sections Solo se aplica si outputFormat está establecido en text. Colección de objetos de fragmento de texto, que representan el texto dentro de los límites de una página (factorización en cualquier otra fragmentación configurada), incluido cualquier encabezado de sección. El objeto de fragmento de texto incluye locationMetadata si procede.
normalized_images Solo se aplica si outputFormat está establecido text en e extractionOptions incluye images. Colección de imágenes extraídas del documento, incluido locationMetadata si procede.

Definición de ejemplo para el modo de salida 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" 
        }
      ]
    }
  ]
}

Salida de ejemplo para el modo de salida 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,
    } 
  ] 
}

El valor de controla markdownHeaderDepth el número de claves del diccionario de "secciones". En la definición de aptitud de ejemplo, dado que markdownHeaderDepth es "h3", hay tres claves en el diccionario de "secciones": h1, h2, h3.

Ejemplo de modo de salida de texto y extracción de imágenes y metadatos

En este ejemplo se muestra cómo generar contenido de texto en fragmentos de tamaño fijo y extraer imágenes junto con metadatos de ubicación del documento.

Definición de ejemplo para el modo de salida de texto y la extracción de imágenes y metadatos

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

Salida de ejemplo para el modo de salida de texto y la extracción de imágenes y metadatos

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

Tenga en cuenta que en “sections” la salida de ejemplo anterior aparecen en blanco. Para rellenarlas, deberá agregar una aptitud adicional configurada con outputFormat establecida para markdownasegurarse de que las secciones se rellenan correctamente.

La aptitud usa Azure Document Intelligence para calcular locationMetadata. Consulte el modelo de diseño de Azure Document Intelligence para más información sobre cómo se definen las páginas y las coordenadas de polígono delimitador.

imagePath representa la ruta de acceso relativa de una imagen almacenada. Si la proyección de archivos del almacén de conocimiento está configurada en el conjunto de aptitudes, esta ruta coincide con la ruta de acceso relativa de la imagen almacenada en el almacén de conocimiento.

Consulte también