Depois de configurar a Google Cloud conta e criar um processador, pode enviar um pedido ao seu processador de IA de documentos.
O código usado para enviar o pedido é o mesmo para todos os processadores. Ver diferenças no funcionamento do processador nas informações que cada processador produz.
Se usar a versão da API v1
do Document AI ou a Google Cloud consola, pode enviar pedidos de processamento para essa versão específica do processador. Se não especificar uma versão do processador, é usada a versão predefinida.
Para mais informações, consulte o artigo Gerir versões do processador.
Processamento online
Os pedidos online (síncronos) permitem-lhe enviar um único documento para processamento.
O Document AI processa imediatamente o pedido e devolve um document
.
Envie o pedido a um processador
Os seguintes exemplos de código mostram como enviar um pedido a um processador.
REST
Este exemplo mostra como fornecer conteúdo do documento (conteúdo do documento não processado em bytes
através de uma string codificada em base64) no objeto rawDocument
.
Em alternativa, também pode especificar inlineDocument
, que é o mesmo formato JSON Document
devolvido pelo Document AI. Isto permite-lhe encadear pedidos transmitindo o mesmo formato em ambas as direções
(por exemplo, se classificar um documento e, em seguida, extrair o respetivo conteúdo).
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a localização do seu processador, por exemplo:
us
– Estados Unidoseu
- União Europeia
- PROJECT_ID: o ID do seu Google Cloud projeto.
- PROCESSOR_ID: o ID do seu processador personalizado.
- skipHumanReview: um valor booleano para desativar a revisão humana (apenas suportado por processadores humanos no circuito).
true
– Ignora a revisão humanafalse
: ativa a revisão humana (predefinição)
- MIME_TYPE†: Uma das opções de tipo MIME válidas.
- IMAGE_CONTENT†: um dos seguintes elementos válidos:
conteúdo do documento inline, representado como
uma stream de bytes. Para representações JSON, a codificação base64 (string ASCII) dos dados da imagem binária. Esta string deve ser semelhante à
seguinte string:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: especifica os campos a incluir na saída
Document
. Esta é uma lista separada por vírgulas de nomes totalmente qualificados de campos no formatoFieldMask
.- Exemplo:
text,entities,pages.pageNumber
- Exemplo:
- INDIVIDUAL_PAGES: uma lista de páginas individuais a processar.
† Também pode especificar este conteúdo através de 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 do pedido:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK", "processOptions": { "individualPageSelector" { "pages": [INDIVIDUAL_PAGES] } } }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Se o pedido for bem-sucedido, o servidor devolve um código de estado HTTP 200 OK
e a resposta no formato JSON. O corpo da resposta contém uma instância de
Document
.
Envie o pedido para uma versão do processador
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a localização do seu processador, por exemplo:
us
– Estados Unidoseu
- União Europeia
- PROJECT_ID: o ID do seu Google Cloud projeto.
- PROCESSOR_ID: o ID do seu processador personalizado.
- PROCESSOR_VERSION: o identificador da versão do processador. Consulte o artigo Selecione uma versão do processador para mais informações. Por exemplo:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- skipHumanReview: um valor booleano para desativar a revisão humana (apenas suportado por processadores humanos no circuito).
true
– Ignora a revisão humanafalse
: ativa a revisão humana (predefinição)
- MIME_TYPE†: Uma das opções de tipo MIME válidas.
- IMAGE_CONTENT†: um dos seguintes elementos válidos:
conteúdo do documento inline, representado como
uma stream de bytes. Para representações JSON, a codificação base64 (string ASCII) dos dados da imagem binária. Esta string deve ser semelhante à
seguinte string:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: especifica os campos a incluir na saída
Document
. Esta é uma lista separada por vírgulas de nomes totalmente qualificados de campos no formatoFieldMask
.- Exemplo:
text,entities,pages.pageNumber
- Exemplo:
† Também pode especificar este conteúdo através de 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 do pedido:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK" }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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
Se o pedido for bem-sucedido, o servidor devolve um código de estado 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# Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Java Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Python Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Processamento em lote
Os pedidos em lote (assíncronos) permitem-lhe enviar vários documentos num único pedido. O Document AI responde com um operation
que pode sondar para saber o estado do pedido. Quando esta operação terminar, contém um BatchProcessMetadata
que aponta para o contentor do Cloud Storage onde os resultados processados são armazenados.
Se os ficheiros de entrada aos quais quer aceder estiverem num contentor noutro projeto, tem de conceder acesso a esse contentor antes de poder aceder aos ficheiros. Consulte o artigo Configure o acesso a ficheiros.
Envie o pedido a um processador
Os seguintes exemplos de código mostram como enviar um pedido de processo em lote a um processador.
REST
Este exemplo mostra como enviar um pedido POST
para o método
batchProcess
para o processamento assíncrono de documentos grandes.
O exemplo usa o token de acesso para uma conta de serviço configurada para o projeto através da CLI do Google Cloud. Para ver instruções sobre a instalação da CLI Google Cloud, a configuração de um projeto com uma conta de serviço e a obtenção de um token de acesso, consulte a secção Antes de começar.
Um pedido batchProcess
inicia uma operação de longa duração e
armazena os resultados num contentor do Cloud Storage. Este exemplo também mostra como obter o estado desta operação de longa duração depois de iniciada.
Envie o pedido de processamento
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a localização do seu processador, por exemplo:
us
– Estados Unidoseu
- União Europeia
- PROJECT_ID: o ID do seu Google Cloud projeto.
- PROCESSOR_ID: o ID do seu processador personalizado.
- INPUT_BUCKET_FOLDER†: Um contentor/diretório do Cloud Storage a partir do qual ler ficheiros de entrada, expresso no seguinte formato:
gs://bucket/directory/
- MIME_TYPE: uma das opções de tipo MIME válidas.
- OUTPUT_BUCKET_FOLDER: um contentor/diretório do Cloud Storage
para guardar os ficheiros de saída, expresso no seguinte formato:
gs://bucket/directory/
- skipHumanReview: um valor booleano para desativar a revisão humana (apenas suportado por processadores humanos no circuito).
true
– Ignora a revisão humanafalse
: ativa a revisão humana (predefinição)
- FIELD_MASK: especifica os campos a incluir na saída
Document
. Esta é uma lista separada por vírgulas de nomes totalmente qualificados de campos no formatoFieldMask
.- Exemplo:
text,entities,pages.pageNumber
- Exemplo:
† Em vez de usar gcsPrefix
para incluir todos os ficheiros numa pasta do GCS, também pode usar documents
para listar individualmente cada ficheiro:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Método HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
Corpo JSON do pedido:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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:batchProcess"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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:batchProcess" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Envie o pedido para uma versão do processador
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- LOCATION: a localização do seu processador, por exemplo:
us
– Estados Unidoseu
- União Europeia
- PROJECT_ID: o ID do seu Google Cloud projeto.
- PROCESSOR_ID: o ID do seu processador personalizado.
- PROCESSOR_VERSION: o identificador da versão do processador. Consulte o artigo Selecione uma versão do processador para mais informações. Por exemplo:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- INPUT_BUCKET_FOLDER†: Um contentor/diretório do Cloud Storage a partir do qual ler ficheiros de entrada, expresso no seguinte formato:
gs://bucket/directory/
- MIME_TYPE: uma das opções de tipo MIME válidas.
- OUTPUT_BUCKET_FOLDER: um contentor/diretório do Cloud Storage
para guardar os ficheiros de saída, expresso no seguinte formato:
gs://bucket/directory/
- skipHumanReview: um valor booleano para desativar a revisão humana (apenas suportado por processadores humanos no circuito).
true
– Ignora a revisão humanafalse
: ativa a revisão humana (predefinição)
- FIELD_MASK: especifica os campos a incluir na saída
Document
. Esta é uma lista separada por vírgulas de nomes totalmente qualificados de campos no formatoFieldMask
.- Exemplo:
text,entities,pages.pageNumber
- Exemplo:
† Em vez de usar gcsPrefix
para incluir todos os ficheiros numa pasta do GCS, também pode usar documents
para listar individualmente cada ficheiro:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Método HTTP e URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
Corpo JSON do pedido:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Para enviar o seu pedido, escolha uma destas opções:
curl
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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:batchProcess"
PowerShell
Guarde o corpo do pedido num ficheiro com o nome request.json
,
e execute o seguinte 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:batchProcess" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Se o pedido for bem-sucedido, a API Document AI devolve o nome da sua operação.
Obtenha os resultados
Para receber os resultados do seu pedido, tem de enviar um pedido GET
para o recurso operations
. A imagem seguinte mostra como enviar um pedido deste tipo.
Pode ler mais informações na documentação sobre operações de longa duração.
Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:
- PROJECT_ID: o ID do seu Google Cloud projeto.
- LOCATION: a localização onde a LRO está a ser executada, por exemplo:
us
– Estados Unidoseu
- União Europeia
- OPERATION_ID: o ID da sua operação. O ID é o último elemento do nome
da sua operação. Por exemplo:
- Nome da operação:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- ID da operação:
bc4e1d412863e626
- Nome da operação:
Método HTTP e URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessMetadata", "state": "SUCCEEDED", "stateMessage": "Processed 1 document(s) successfully", "createTime": "TIMESTAMP", "updateTime": "TIMESTAMP", "individualProcessStatuses": [ { "inputGcsSource": "INPUT_BUCKET_FOLDER/DOCUMENT1.ext", "status": {}, "outputGcsDestination": "OUTPUT_BUCKET_FOLDER/OPERATION_ID/0", "humanReviewStatus": { "state": "ERROR", "stateMessage": "Sharded document protos are not supported for human review." } } ] }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessResponse" } }
O corpo da resposta contém uma instância de Operation
com informações sobre o estado da operação.
Se a operação tiver sido concluída com êxito,
o campo metadata
é preenchido com uma instância de BatchProcessMetadata
que contém informações sobre os documentos processados.
C#
Para mais informações, consulte a documentação de referência da API C# Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Go Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Java Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Node.js Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Python Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Go Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Ruby Document AI.
Para se autenticar no Document AI, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Crie lotes de documentos com o SDK Python
O processamento em lote permite um máximo de 1000 ficheiros por pedido. Se tiver mais documentos para processar, tem de dividi-los em vários lotes para processamento.
A Document AI Toolbox é um SDK para Python que fornece funções de utilidade para a Document AI. Uma das funções é criar lotes de documentos para processamento a partir de uma pasta do Cloud Storage.
Consulte o artigo Processar a resposta de processamento para mais informações sobre como a Document AI Toolbox ajuda no pós-processamento.
Exemplos de código
Os exemplos de código seguintes demonstram como usar o Document AI Toolbox.