Procesa documentos con el analizador de diseño

El analizador de diseño extrae elementos de contenido de documentos, como texto, tablas y listas, y crea fragmentos con contexto que facilitan la recuperación de información en la IA generativa y las aplicaciones de descubrimiento.

Funciones del analizador de diseño

  • Analiza diseños de documentos. Puedes ingresar archivos HTML o PDF en el analizador de diseño para identificar elementos de contenido, como bloques de texto, tablas, listas y elementos estructurales, como títulos y encabezados. Estos elementos ayudan a definir la organización y la jerarquía de un documento con contenido enriquecido y elementos estructurales que pueden crear más contexto para la recuperación y el descubrimiento de información.

  • Segmenta los documentos. El analizador de diseño puede dividir los documentos en fragmentos que conservan información contextual sobre la jerarquía de diseño del documento original. Los LLMs que generan respuestas pueden usar fragmentos para mejorar la relevancia y reducir la carga computacional.

    Tener en cuenta el diseño de un documento durante la fragmentación mejora la coherencia semántica y reduce el ruido en el contenido cuando se usa para la recuperación y la generación de LLM. Todo el texto de un fragmento proviene de la misma entidad de diseño, como un encabezado, un subencabezado o una lista.

  • Analizador de diseño de Gemini Vista previa. El analizador de diseño de Gemini ofrece una mejor calidad de diseño en el reconocimiento de tablas, el orden de lectura y el reconocimiento de texto de los archivos PDF. Puedes habilitar la función de forma predeterminada seleccionando la versión del procesador de análisis de diseño pretrained-layout-parser-v1.4-2025-08-25, pretrained-layout-parser-v1.5-2025-08-25 o pretrained-layout-parser-v1.5-pro-2025-08-25 para tu procesador.

  • Analiza imágenes y tablas como anotaciones. Vista previa. El analizador de diseño puede identificar si hay imágenes o tablas en los documentos analizados. Cuando se encuentran, se anotan como un bloque descriptivo de texto con la información que se muestra en la imagen y la tabla.

Limitaciones

Se aplica la siguiente limitación:

  • Procesamiento en línea:
    • El tamaño máximo del archivo de entrada es de 20 MB para todos los tipos de archivos.
    • Un máximo de 15 páginas por archivo PDF
  • Procesamiento por lotes:
    • El tamaño máximo de un solo archivo es de 1 GB para los archivos PDF.
    • Un máximo de 500 páginas por archivo PDF

Detección de diseño por tipo de archivo

En la siguiente tabla, se enumeran los elementos que el analizador de diseño puede detectar por tipo de archivo de documento.

Tipo de archivo Tipo de MIME Elementos detectados Limitaciones
HTML text/html párrafo, tabla, lista, título, encabezado, encabezado de página, pie de página Ten en cuenta que el análisis depende en gran medida de las etiquetas HTML, por lo que es posible que no se capture el formato basado en CSS.
PDF application/pdf párrafo, tabla, título, encabezado, encabezado de página, pie de página Las tablas que abarcan varias páginas pueden dividirse en dos tablas.
DOCX application/vnd.openxmlformats-officedocument.wordprocessingml.document párrafos, tablas en varias páginas, listas, títulos y elementos de encabezado No se admiten las tablas anidadas.
PPTX application/vnd.openxmlformats-officedocument.presentationml.presentation párrafos, tablas, listas, títulos y elementos de encabezado Para que los encabezados se identifiquen con precisión, deben marcarse como tales en el archivo de PowerPoint. No se admiten tablas anidadas ni diapositivas ocultas.
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet Tablas dentro de hojas de cálculo de Excel, que admiten valores INT, FLOAT y STRING No se admite la detección de varias tablas. Las hojas, las filas o las columnas ocultas también pueden afectar la detección. Se pueden procesar archivos con hasta 5 millones de celdas.
XLSM application/vnd.ms-excel.sheet.macroenabled.12 Hoja de cálculo con macro habilitada que admite valores INT, FLOAT y STRING No se admite la detección de varias tablas. Las hojas, las filas o las columnas ocultas también pueden afectar la detección.

Versiones del procesador

Los siguientes modelos están disponibles para el analizador de diseño. Para cambiar las versiones del modelo, consulta Administra versiones de procesadores.

Para realizar una solicitud de aumento de cuota (QIR) para la cuota predeterminada de procesadores, sigue los pasos que se indican en Administra tu cuota.

Versión del modelo Descripción Canal de versiones Fecha de lanzamiento
pretrained-layout-parser-v1.0-2024-06-03 Versión de disponibilidad general para el análisis de diseño de documentos. Esta es la versión predeterminada del procesador previamente entrenado. Estable 3 de junio de 2024
pretrained-layout-parser-v1.5-2025-08-25 Es una versión preliminar potenciada por el LLM de Gemini 2.5 Flash para un mejor análisis de diseño en archivos PDF. Se recomienda para quienes desean experimentar con versiones nuevas. Si se usa para archivos que no son PDF, tendrá el mismo comportamiento que la versión estable de pretrained-layout-parser-v1.0-2024-06-03. Versión candidata para lanzamiento 25 de agosto de 2025
pretrained-layout-parser-v1.5-pro-2025-08-25 Versión preliminar potenciada por el LLM de Gemini 2.5 Pro para un mejor análisis de diseño en archivos PDF. La versión 1.5-pro tiene una latencia más alta que la versión 1.5. Si se usa para archivos que no son PDF, tendrá el mismo comportamiento que la versión estable 1.0. Versión candidata para lanzamiento 25 de agosto de 2025

Antes de comenzar

Para activar el analizador de diseño, sigue estos pasos:

  1. Para crear un analizador de diseño, sigue las instrucciones en Cómo crear y administrar procesadores.

    El nombre del tipo de procesador es LAYOUT_PARSER_PROCESSOR.

  2. Para habilitar el analizador de diseño, sigue las instrucciones en Habilita un procesador.

Envía una solicitud de proceso en línea con el analizador de diseño

  1. Documentos de entrada para el analizador de diseño, que se encarga de analizar y fragmentar.

    Sigue las instrucciones para las solicitudes de procesamiento por lotes en Cómo enviar una solicitud de procesamiento.

    Configura los campos en ProcessOptions.layoutConfig en ProcessDocumentRequest.

    REST

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • LOCATION: La ubicación de tu procesador, por ejemplo:
      • us: Estados Unidos
      • eu: Unión Europea
    • PROJECT_ID: Es el ID del proyecto de Google Cloud .
    • PROCESSOR_ID: Es el ID de tu procesador personalizado.
    • MIME_TYPE: El analizador de diseño admite application/pdf y text/html.
    • DOCUMENT: Es el contenido que se dividirá en fragmentos. El analizador de diseño acepta documentos PDF o HTML sin procesar, o documentos analizados que generó el analizador de diseño.
    • CHUNK_SIZE: Opcional Es el tamaño de fragmento, en tokens, que se usará cuando se dividan los documentos.
    • INCLUDE_ANCESTOR_HEADINGS: Opcional Booleano. Indica si se deben incluir los encabezados de elementos superiores cuando se dividen documentos.

    Método HTTP y URL:

    POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process

    Cuerpo JSON de la solicitud:

    // Sample for inputting raw documents such as PDF or HTML
    {
      "rawDocument": {
        "mimeType": "MIME_TYPE",
        "content": "DOCUMENT"
      },
      "processOptions": {
        "layoutConfig": {
          "chunkingConfig": {
            "chunkSize": "CHUNK_SIZE",
            "includeAncestorHeadings": "INCLUDE_ANCESTOR_HEADINGS",
          }
        }
      }
    }
    

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    curl -X POST \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process"

    PowerShell

    Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

    $headers = @{  }

    Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process" | Select-Object -Expand Content
    La respuesta incluye el documento procesado con información de diseño y fragmentación como Document.documentLayout y Document.chunkedDocument.

    Python

    Para obtener más información, consulta la documentación de referencia de la API de Document AI Python.

    Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

    
    from typing import Optional, Sequence
    
    from google.api_core.client_options import ClientOptions
    from google.cloud import documentai
    
    # TODO(developer): Uncomment these variables before running the sample.
    # project_id = "YOUR_PROJECT_ID"
    # location = "YOUR_PROCESSOR_LOCATION" # Format is "us" or "eu"
    # processor_id = "YOUR_PROCESSOR_ID" # Create processor before running sample
    # processor_version = "rc" # Refer to https://cloud.google.com/document-ai/docs/manage-processor-versions for more information
    # file_path = "/path/to/local/pdf"
    # mime_type = "application/pdf" # Refer to https://cloud.google.com/document-ai/docs/file-types for supported file types
    
    
    def process_document_layout_sample(
        project_id: str,
        location: str,
        processor_id: str,
        processor_version: str,
        file_path: str,
        mime_type: str,
    ) -> documentai.Document:
        process_options = documentai.ProcessOptions(
            layout_config=documentai.ProcessOptions.LayoutConfig(
                chunking_config=documentai.ProcessOptions.LayoutConfig.ChunkingConfig(
                    chunk_size=1000,
                    include_ancestor_headings=True,
                )
            )
        )
    
        document = process_document(
            project_id,
            location,
            processor_id,
            processor_version,
            file_path,
            mime_type,
            process_options=process_options,
        )
    
        print("Document Layout Blocks")
        for block in document.document_layout.blocks:
            print(block)
    
        print("Document Chunks")
        for chunk in document.chunked_document.chunks:
            print(chunk)
    
    
    
    def process_document(
        project_id: str,
        location: str,
        processor_id: str,
        processor_version: str,
        file_path: str,
        mime_type: str,
        process_options: Optional[documentai.ProcessOptions] = None,
    ) -> documentai.Document:
        # You must set the `api_endpoint` if you use a location other than "us".
        client = documentai.DocumentProcessorServiceClient(
            client_options=ClientOptions(
                api_endpoint=f"{location}-documentai.googleapis.com"
            )
        )
    
        # The full resource name of the processor version, e.g.:
        # `projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}`
        # You must create a processor before running this sample.
        name = client.processor_version_path(
            project_id, location, processor_id, processor_version
        )
    
        # Read the file into memory
        with open(file_path, "rb") as image:
            image_content = image.read()
    
        # Configure the process request
        request = documentai.ProcessRequest(
            name=name,
            raw_document=documentai.RawDocument(content=image_content, mime_type=mime_type),
            # Only supported for Document OCR processor
            process_options=process_options,
        )
    
        result = client.process_document(request=request)
    
        # For a full list of `Document` object attributes, reference this page:
        # https://cloud.google.com/document-ai/docs/reference/rest/v1/Document
        return result.document
    
    

Procesa documentos por lotes con el analizador de diseño

Sigue el siguiente procedimiento para analizar y dividir varios documentos en una sola solicitud.

  1. Documentos de entrada para el analizador de diseño, que se encarga de analizar y fragmentar.

    Sigue las instrucciones para las solicitudes de procesamiento por lotes en Cómo enviar una solicitud de procesamiento.

    Configura los campos en ProcessOptions.layoutConfig cuando realices una solicitud de batchProcess.

    Entrada

    En el siguiente ejemplo de JSON, se configura ProcessOptions.layoutConfig.

    "processOptions": {
      "layoutConfig": {
        "chunkingConfig": {
          "chunkSize": "CHUNK_SIZE",
          "includeAncestorHeadings": "INCLUDE_ANCESTOR_HEADINGS_BOOLEAN"
        }
      }
    }
    

    Reemplaza lo siguiente:

    • CHUNK_SIZE: Es el tamaño máximo de fragmento, en cantidad de tokens, que se usará cuando se dividan los documentos.
    • INCLUDE_ANCESTOR_HEADINGS_BOOLEAN: Indica si se deben incluir los encabezados principales cuando se dividen los documentos. Los encabezados principales son los encabezados superiores de los subencabezados en el documento original. Pueden proporcionar un fragmento con contexto adicional sobre su posición en el documento original. Se pueden incluir hasta dos niveles de encabezados con un fragmento.

¿Qué sigue?