Bibliotecas de cliente de Document AI Toolbox

En esta página se explica cómo empezar a usar las bibliotecas de cliente de Cloud con la API Document AI Toolbox. Las bibliotecas de cliente facilitan el acceso a lasGoogle Cloud APIs desde un lenguaje compatible. Aunque puedes usar las APIs deGoogle Cloud directamente haciendo solicitudes sin formato al servidor, las bibliotecas de cliente ofrecen simplificaciones que reducen significativamente la cantidad de código que tienes que escribir.

Consulta más información sobre las bibliotecas de cliente de Cloud y las bibliotecas de cliente de las APIs de Google anteriores en el artículo Información sobre las bibliotecas de cliente.

Instalar la biblioteca cliente

Python

pip install --upgrade google-cloud-documentai-toolbox

Para obtener más información, consulta Configurar un entorno de desarrollo de Python.

Configurar la autenticación

Para autenticar las llamadas a las APIs de Google Cloud , las bibliotecas de cliente admiten las credenciales predeterminadas de la aplicación (ADC). Las bibliotecas buscan credenciales en un conjunto de ubicaciones definidas y las usan para autenticar las solicitudes a la API. Con ADC, puede poner credenciales a disposición de su aplicación en diversos entornos, como el desarrollo local o la producción, sin necesidad de modificar el código de la aplicación.

En los entornos de producción, la forma de configurar ADC depende del servicio y del contexto. Para obtener más información, consulta Configurar credenciales predeterminadas de la aplicación.

En un entorno de desarrollo local, puedes configurar ADC con las credenciales asociadas a tu cuenta de Google:

  1. Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

    gcloud init

    If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  2. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Aparecerá una pantalla de inicio de sesión. Después de iniciar sesión, tus credenciales se almacenan en el archivo de credenciales local que usa ADC.

Usar la biblioteca de cliente

Document AI Toolbox es un SDK para Python que proporciona funciones de utilidad para gestionar, manipular y extraer información de la respuesta del documento. Crea un objeto de documento "envoltorio" a partir de una respuesta de documento procesado de archivos JSON en Cloud Storage, archivos JSON locales o una salida directamente del método process_document().

Puede realizar las siguientes acciones:

Códigos de ejemplo

En los siguientes ejemplos de código se muestra cómo usar Document AI Toolbox.

Guía de inicio rápido

from typing import Optional

from google.cloud import documentai
from google.cloud.documentai_toolbox import document, gcs_utilities

# TODO(developer): Uncomment these variables before running the sample.
# Given a Document JSON or sharded Document JSON in path gs://bucket/path/to/folder
# gcs_bucket_name = "bucket"
# gcs_prefix = "path/to/folder"

# Or, given a Document JSON in path gs://bucket/path/to/folder/document.json
# gcs_uri = "gs://bucket/path/to/folder/document.json"

# Or, given a Document JSON in path local/path/to/folder/document.json
# document_path = "local/path/to/folder/document.json"

# Or, given a Document object from Document AI
# documentai_document = documentai.Document()

# Or, given a BatchProcessMetadata object from Document AI
# operation = client.batch_process_documents(request)
# operation.result(timeout=timeout)
# batch_process_metadata = documentai.BatchProcessMetadata(operation.metadata)

# Or, given a BatchProcessOperation name from Document AI
# batch_process_operation = "projects/project_id/locations/location/operations/operation_id"


def quickstart_sample(
    gcs_bucket_name: Optional[str] = None,
    gcs_prefix: Optional[str] = None,
    gcs_uri: Optional[str] = None,
    document_path: Optional[str] = None,
    documentai_document: Optional[documentai.Document] = None,
    batch_process_metadata: Optional[documentai.BatchProcessMetadata] = None,
    batch_process_operation: Optional[str] = None,
) -> document.Document:
    if gcs_bucket_name and gcs_prefix:
        # Load from Google Cloud Storage Directory
        print("Document structure in Cloud Storage")
        gcs_utilities.print_gcs_document_tree(
            gcs_bucket_name=gcs_bucket_name, gcs_prefix=gcs_prefix
        )

        wrapped_document = document.Document.from_gcs(
            gcs_bucket_name=gcs_bucket_name, gcs_prefix=gcs_prefix
        )
    elif gcs_uri:
        # Load a single Document from a Google Cloud Storage URI
        wrapped_document = document.Document.from_gcs_uri(gcs_uri=gcs_uri)
    elif document_path:
        # Load from local `Document` JSON file
        wrapped_document = document.Document.from_document_path(document_path)
    elif documentai_document:
        # Load from `documentai.Document` object
        wrapped_document = document.Document.from_documentai_document(
            documentai_document
        )
    elif batch_process_metadata:
        # Load Documents from `BatchProcessMetadata` object
        wrapped_documents = document.Document.from_batch_process_metadata(
            metadata=batch_process_metadata
        )
        wrapped_document = wrapped_documents[0]
    elif batch_process_operation:
        wrapped_documents = document.Document.from_batch_process_operation(
            location="us", operation_name=batch_process_operation
        )
        wrapped_document = wrapped_documents[0]
    else:
        raise ValueError("No document source provided.")

    # For all properties and methods, refer to:
    # https://cloud.google.com/python/docs/reference/documentai-toolbox/latest/google.cloud.documentai_toolbox.wrappers.document.Document

    print("Document Successfully Loaded!")
    print(f"\t Number of Pages: {len(wrapped_document.pages