Enviar uma solicitação de processamento

Depois de configurar sua conta doGoogle Cloud e criar um processador, você pode enviar uma solicitação para o processador da Document AI.

O código usado para enviar a solicitação é o mesmo para todos os processadores. Você vai notar diferenças no funcionamento do processador nas informações que cada um gera.

Ao usar a versão da API v1 da Document AI ou no console Google Cloud , você pode enviar solicitações de processamento para essa versão específica do processador. Se você não especificar uma versão do processador, a padrão será usada. Para mais informações, consulte Como gerenciar versões de processadores.

Processamento on-line

Com as solicitações on-line (síncronas), é possível enviar um único documento para processamento. A Document AI processa imediatamente a solicitação e retorna um document.

Enviar solicitação a um processador

Os exemplos de código a seguir mostram como enviar uma solicitação a um processador.

REST

Este exemplo mostra como fornecer conteúdo de documento (conteúdo bruto em bytes usando uma string codificada em base64) no objeto rawDocument.

Como alternativa, você também pode especificar inlineDocument, que é o mesmo formato JSON Document retornado pela Document AI. Isso permite encadear solicitações transmitindo o mesmo formato de volta (por exemplo, se você classificar um documento e extrair o conteúdo dele).

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: a localização do seu processador, por exemplo:
    • us: Estados Unidos
    • eu: União Europeia
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • PROCESSOR_ID: o ID do seu processador personalizado.
  • skipHumanReview: um booleano para desativar a revisão humana. Compatível apenas com processadores human-in-the-loop.
    • true - ignora a revisão humana
    • false: ativa a revisão humana (padrão).
  • MIME_TYPE: uma das opções válidas de tipo MIME.
  • IMAGE_CONTENT: um dos conteúdos de documento inline válidos, representado como um stream de bytes. Para representações JSON, a codificação base64 (string ASCII) dos dados da imagem binária. A string precisa ser semelhante à seguinte:
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    Consulte o tópico Codificação Base64 para mais informações.
  • FIELD_MASK: especifica quais campos incluir na saída Document. É uma lista separada por vírgulas de nomes de campos totalmente qualificados no formato FieldMask.
    • Exemplo: text,entities,pages.pageNumber
  • INDIVIDUAL_PAGES: uma lista de páginas individuais a serem processadas.
    • Outra opção é fornecer o campo fromStart ou fromEnd para processar uma quantidade específica de páginas do início ou do fim do documento.

† Esse conteúdo também pode ser especificado usando conteúdo codificado em base64 no objeto inlineDocument.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON. O corpo da resposta contém uma instância de Document.

Enviar solicitação para uma versão do processador

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: a localização do seu processador, por exemplo:
    • us: Estados Unidos
    • eu: União Europeia
  • PROJECT_ID: o ID do projeto do Google Cloud .
  • PROCESSOR_ID: o ID do seu processador personalizado.
  • PROCESSOR_VERSION: o identificador da versão do processador. Consulte Selecionar uma versão do processador para mais informações. Por exemplo:
    • pretrained-TYPE-vX.X-YYYY-MM-DD
    • stable
    • rc
  • skipHumanReview: um booleano para desativar a revisão humana. Compatível apenas com processadores human-in-the-loop.
    • true - ignora a revisão humana
    • false: ativa a revisão humana (padrão).
  • MIME_TYPE: uma das opções válidas de tipo MIME.
  • IMAGE_CONTENT: um dos conteúdos de documento inline válidos, representado como um stream de bytes. Para representações JSON, a codificação base64 (string ASCII) dos dados da imagem binária. A string precisa ser semelhante à seguinte:
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    Consulte o tópico Codificação Base64 para mais informações.
  • FIELD_MASK: especifica quais campos incluir na saída Document. É uma lista separada por vírgulas de nomes de campos totalmente qualificados no formato FieldMask.
    • Exemplo: text,entities,pages.pageNumber

† Esse conteúdo também pode ser especificado usando conteúdo codificado em base64 no objeto inlineDocument.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:

$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

Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK e a resposta no formato JSON. O corpo da resposta contém uma instância de Document.

C#

Para mais informações, consulte a documentação de referência da API C# da Document AI.

Para autenticar na Document AI, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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
        };

        // Initialize request argument(s)
        var request = new ProcessRequest
        {
            Name = ProcessorName.FromProjectLocationProcessor(projectId, locationId, processorId).ToString(),
            RawDocument = rawDocument
        };

        // Make the request
        var response = client.ProcessDocument(request);