Usar el analizador de diseño de Document AI con el motor de RAG de Vertex AI

En esta página se presenta el analizador de diseño de Document AI y cómo se usa con el motor RAG.

Document AI

Document AI es una plataforma de procesamiento y comprensión de documentos que toma datos no estructurados de documentos y los transforma en campos que se pueden almacenar en una base de datos. Los datos estructurados permiten comprender, analizar y consumir los datos.

Document AI se basa en productos de Vertex AI con IA generativa para ayudarte a crear aplicaciones de procesamiento de documentos basadas en la nube, integrales y escalables. No se requiere experiencia especializada en aprendizaje automático para usar estos productos.

Analizador de diseño de Document AI

El analizador de diseño extrae elementos de contenido del documento, como texto, tablas y listas. A continuación, el analizador de diseño crea fragmentos contextualizados que facilitan la recuperación de información en aplicaciones de IA generativa y de descubrimiento.

Cuando se usa para la recuperación y la generación de LLMs, el diseño del documento se tiene en cuenta durante el proceso de fragmentación, lo que mejora la coherencia semántica y reduce el ruido en el contenido. Todo el texto de un fragmento procede de la misma entidad de diseño, como el encabezado, el subtítulo o la lista.

Para ver los tipos de archivo que usa la detección de diseño, consulta Detección de diseño por tipo de archivo.

Usar el analizador de diseño en el motor de RAG de Vertex AI

Para usar el analizador de diseño en Vertex AI RAG Engine, debes crear un corpus. Para crear un corpus, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página RAG Engine.

    Ir a Motor de RAG

  2. Selecciona Crear corpus.

  3. En el campo Región, selecciona tu región.

  4. En el campo Nombre del corpus, introduce el nombre del corpus.

  5. En el campo Descripción, introduce una descripción.

  6. En la sección Datos, selecciona dónde quieres subir los datos.

  7. Expande la sección Opciones avanzadas.

    1. En la sección Estrategia de fragmentación, se recomiendan los siguientes tamaños predeterminados:

      • Tamaño de los fragmentos: 1024
      • Solapamiento de fragmentos: 256
    2. En la sección Analizador de diseño, selecciona la opción Analizador LLM, que es la que ofrece la mayor precisión en documentos con imágenes o gráficos.

      1. En el campo Modelo, selecciona el modelo que quieras.

      2. Opcional: En el campo Número máximo de solicitudes de análisis por minuto, introduce el número máximo de solicitudes de análisis.

      3. Opcional: En el campo Petición de análisis personalizado, introduce tu petición de análisis.

      4. Haz clic en Continuar.

  8. En la página Configurar almacén de vectores, haz lo siguiente:

    1. En el campo Modelo de inserción, selecciona el modelo de inserción.

    2. En la sección Base de datos de vectores, selecciona tu base de datos.

  9. Haz clic en Crear corpus.

Limitaciones

La API ImportRagFiles admite el analizador de diseño, pero se aplican las siguientes limitaciones:

  • Introduce el tamaño máximo de archivo de 20 MB para todos los tipos de archivo.
  • El número máximo de páginas por archivo PDF es de 500.

Se aplican las cuotas y los precios de Document AI.

Habilitar la API de Document AI

Debes habilitar la API Document AI en tu proyecto. Para obtener más información sobre cómo habilitar APIs, consulta la documentación de Uso de Servicio.

Enable the Document AI API.

Roles required to enable APIs

To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

Enable the API

Activar el analizador de diseño

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

  1. Crea un analizador de diseño siguiendo las instrucciones de Crear y gestionar procesadores.

    El nombre del tipo de procesador es LAYOUT_PARSER_PROCESSOR.

  2. Habilita Layout Parser siguiendo las instrucciones de Habilitar un procesador.

Tu base de conocimientos de RAG (corpus)

Si no tienes un corpus de RAG, crea uno. Por ejemplo, consulta Crear un ejemplo de corpus de RAG.

Si ya tienes un corpus de RAG, los archivos importados sin un analizador de diseño no se volverán a importar cuando importes archivos con el analizador de diseño. Si quieres usar un analizador de diseño con tus archivos, primero debes eliminarlos. Por ejemplo, consulta el ejemplo de eliminación de un archivo RAG.

Importar archivos con el analizador de diseño

Los archivos y las carpetas de varias fuentes se pueden importar mediante el analizador de diseño.

Python

Para saber cómo instalar o actualizar el SDK de Vertex AI para Python, consulta el artículo Instalar el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de Python.

Sustituye las siguientes variables que se usan en el código de ejemplo:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: ID del recurso de corpus de RAG.
  • GCS_URIS: lista de ubicaciones de Cloud Storage. Por ejemplo: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: ruta del recurso al procesador del analizador de diseño que se ha creado. Por ejemplo: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: opcional. Número de tokens que debe tener cada fragmento.
from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Cloud Storage and Google Drive.

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
    llm_parser=rag.LlmParserConfig(
      model_name="gemini-2.5-pro-preview-05-06",
      max_parsing_requests_per_min=100,
    ),  # Optional
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files} files.")

REST

En el ejemplo de código se muestra cómo importar archivos de Cloud Storage mediante el analizador de diseño. Para ver más opciones de configuración, como importar archivos de otra fuente, consulta la ImportRagFilesConfigreferencia.

Antes de usar los datos de la solicitud, sustituya las siguientes variables que se utilizan en el código de ejemplo:

  • PROJECT_ID: tu ID de proyecto.
  • LOCATION: la región en la que se procesará la solicitud.
  • RAG_CORPUS_ID: ID del recurso de corpus de RAG.
  • GCS_URIS: lista de ubicaciones de Cloud Storage. Por ejemplo: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: ruta del recurso al procesador del analizador de diseño que se ha creado. Por ejemplo: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: opcional. Número de tokens que debe tener cada fragmento.
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Cuerpo JSON de la solicitud:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_transformation_config": {
      "rag_file_chunking_config": {
        "fixed_length_chunking": {
          "chunk_size": CHUNK_SIZE
        }
      }
    },
  }
}

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 "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

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

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

Consulta de recuperación

Cuando un usuario hace una pregunta o proporciona una petición, el componente de recuperación de RAG busca en su base de conocimientos información relevante para la consulta.

Para ver un ejemplo de cómo obtener archivos RAG de un corpus en función de un texto de consulta, consulta Consulta de recuperación.

Predicción

La predicción genera una respuesta fundamentada usando los contextos recuperados. Para ver un ejemplo, consulta Generación.

Siguientes pasos