Enviar una solicitud de procesamiento

Una vez que haya configurado su Google Cloud cuenta y creado un procesador, podrá enviar una solicitud a su procesador de Document AI.

El código usado para enviar la solicitud es el mismo para todos los procesadores. Observas diferencias en el funcionamiento del procesador en la información que genera cada procesador.

Si usas la versión v1 de la API de Document AI o la consola, Google Cloud puedes enviar solicitudes de procesamiento a esa versión específica del procesador. Si no especificas una versión del procesador, se usará la versión predeterminada. Para obtener más información, consulta Gestionar versiones de procesador.

Procesamiento online

Las solicitudes online (síncronas) te permiten enviar un solo documento para procesarlo. Document AI procesa inmediatamente la solicitud y devuelve un document.

Enviar una solicitud a un encargado del tratamiento

En los siguientes ejemplos de código se muestra cómo enviar una solicitud a un procesador.

REST

En este ejemplo se muestra cómo proporcionar contenido de un documento (contenido sin formato en bytes a través de una cadena codificada en base64) en el objeto rawDocument.

También puedes especificar inlineDocument, que es el mismo formato JSON Document que devuelve Document AI. Esto te permite encadenar solicitudes pasando el mismo formato de un lado a otro (por ejemplo, si clasificas un documento y, después, extraes su contenido).

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu procesador, por ejemplo:
    • us - Estados Unidos
    • eu - Unión Europea
  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • PROCESSOR_ID: el ID de tu procesador personalizado.
  • skipHumanReview: booleano para inhabilitar la revisión humana (solo admitido por los procesadores con intervención humana).
    • true - omite la revisión humana
    • false: habilita la revisión humana (opción predeterminada).
  • MIME_TYPE: una de las opciones válidas de tipo MIME.
  • IMAGE_CONTENT: uno de los valores válidos Contenido del documento insertado, representado como un flujo de bytes. En el caso de las representaciones JSON, la codificación base64 (cadena ASCII) de los datos de imagen binarios. Esta cadena debe ser similar a la siguiente:
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    Para obtener más información, consulta el tema sobre la codificación Base64.
  • FIELD_MASK: especifica los campos que se incluirán en el resultado de Document. Se trata de una lista separada por comas de nombres completos de campos en formato FieldMask.
    • Ejemplo: text,entities,pages.pageNumber
  • INDIVIDUAL_PAGES: lista de páginas concretas que se van a procesar.
    • También puede proporcionar los campos fromStart o fromEnd para procesar una cantidad específica de páginas desde el principio o el final del documento.

† Este contenido también se puede especificar mediante contenido codificado en base64 en el objeto inlineDocument.

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:

{
  "skipHumanReview": skipHumanReview,
  "rawDocument": {
    "mimeType": "MIME_TYPE",
    "content": "IMAGE_CONTENT"
  },
  "fieldMask": "FIELD_MASK",
  "processOptions": {
    "individualPageSelector" {
      "pages": [INDIVIDUAL_PAGES]
    }
  }
}

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-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:

$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-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve un código de estado HTTP 200 OK y la respuesta en formato JSON. El cuerpo de la respuesta contiene una instancia de Document.

Enviar una solicitud a una versión de procesador

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • LOCATION: la ubicación de tu procesador, por ejemplo:
    • us - Estados Unidos
    • eu - Unión Europea
  • PROJECT_ID: tu ID de proyecto Google Cloud .
  • PROCESSOR_ID: el ID de tu procesador personalizado.
  • PROCESSOR_VERSION: el identificador de la versión del procesador. Consulta Seleccionar una versión del procesador para obtener más información. Por ejemplo:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • skipHumanReview: booleano para inhabilitar la revisión humana (solo admitido por los procesadores con intervención humana).
    • true - omite la revisión humana
    • false: habilita la revisión humana (opción predeterminada).
  • MIME_TYPE: una de las opciones válidas de tipo MIME.
  • IMAGE_CONTENT: uno de los valores válidos Contenido del documento insertado, representado como un flujo de bytes. En el caso de las representaciones JSON, la codificación base64 (cadena ASCII) de los datos de imagen binarios. Esta cadena debe ser similar a la siguiente:
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    Para obtener más información, consulta el tema sobre la codificación Base64.
  • FIELD_MASK: especifica los campos que se incluirán en el resultado de Document. Se trata de una lista separada por comas de nombres completos de campos en formato FieldMask.
    • Ejemplo: text,entities,pages.pageNumber

† Este contenido también se puede especificar mediante contenido codificado en base64 en el objeto inlineDocument.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "skipHumanReview": skipHumanReview,
  "rawDocument": {
    "mimeType": "MIME_TYPE",
    "content": "IMAGE_CONTENT"
  },
  "fieldMask": "FIELD_MASK"
}

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-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process"

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-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process" | Select-Object -Expand Content

Si la solicitud se realiza de forma correcta, el servidor devuelve un código de estado HTTP 200 OK y la respuesta en formato JSON. El cuerpo de la respuesta contiene una instancia de Document.

C#

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

Para autenticarte en Document AI, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo local.


using Google.Cloud.DocumentAI.V1;
using Google.Protobuf;
using System;
using System.IO;

public class QuickstartSample
{
    public Document Quickstart(
        string projectId = "your-project-id",
        string locationId = "your-processor-location",
        string processorId = "your-processor-id",
        string localPath = "my-local-path/my-file-name",
        string mimeType = "application/pdf"
    )
    {
        // Create client
        var client = new DocumentProcessorServiceClientBuilder
        {
            Endpoint = $"{locationId}-documentai.googleapis.com"
        }.Build();

        // Read in local file
        using var fileStream = File.OpenRead(localPath);
        var rawDocument = new RawDocument
        {
            Content = ByteString.FromStream(fileStream),
            MimeType = mimeType
        };