As operações de longa duração são devolvidas por chamadas de métodos de processamento em lote porque demoram mais tempo a concluir do que o adequado para uma resposta da API. Isto serve para que a thread de chamadas não fique aberta enquanto são processados muitos documentos. A API Document AI cria um LRO sempre que
chama projects.locations.processors.batchProcess
através da API ou das bibliotecas cliente. O LRO acompanha o estado da tarefa de processamento.
Pode usar os métodos de operações
que a API Document AI fornece para verificar o
estado das LROs. Também pode listar, consultar ou cancelar LROs. As bibliotecas cliente que chamam o método assíncrono sondam internamente, o que permite a chamada de retorno. (Para Python, a funcionalidade await
está ativada.) Também
incluem um parâmetro de tempo limite. No LRO principal devolvido por .batchProcess, é criado um LRO para cada documento (porque os limites de contagem de páginas em lote são muito superiores aos da chamada process
síncrona e podem demorar um tempo significativo a processar). Quando o LRO principal termina, é fornecido o estado detalhado de cada LRO de documento.
As LROs são geridas ao Google Cloud nível do projeto e da localização. Quando fizer um pedido à API, inclua o Google Cloud projeto e a localização em que a LRO está a ser executada.
O registo de uma LRO é mantido durante aproximadamente 30 dias após a conclusão da LRO, o que significa que não pode ver nem listar uma LRO após esse período.
Obter detalhes sobre uma operação de longa duração
Os exemplos seguintes mostram como obter detalhes sobre um LRO.
REST
Para obter o estado e ver detalhes sobre uma LRO, chame o método projects.locations.operations.get
.
Suponha que recebe a seguinte resposta depois de ligar para
projects.locations.processors.batchProcess
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
O valor name
na resposta mostra que a API Document AI criou um LRO denominado projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
.
Também pode obter o nome da LRO listando as 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" } }
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.
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.
Apresentar operações de longa duração
Os exemplos seguintes mostram como listar os LROs num Google Cloud projeto e localização.
REST
Para listar as LROs num Google Cloud projeto e localização, chame o método projects.locations.operations.list
.
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 uma ou mais LROs estão a ser executadas, por exemplo:
us
– Estados Unidoseu
- União Europeia
- FILTER: (Obrigatório) Consulta para devolver LROs. Opções:
- TYPE: (obrigatório) Tipo de LRO a listar. Opções:
BATCH_PROCESS_DOCUMENTS
CREATE_PROCESSOR_VERSION
DELETE_PROCESSOR
ENABLE_PROCESSOR
DISABLE_PROCESSOR
UPDATE_HUMAN_REVIEW_CONFIG
HUMAN_REVIEW_EVENT
CREATE_LABELER_POOL
UPDATE_LABELER_POOL
DELETE_LABELER_POOL
DEPLOY_PROCESSOR_VERSION
UNDEPLOY_PROCESSOR_VERSION
DELETE_PROCESSOR_VERSION
SET_DEFAULT_PROCESSOR_VERSION
EVALUATE_PROCESSOR_VERSION
EXPORT_PROCESSOR_VERSION
UPDATE_DATASET
IMPORT_DOCUMENTS
ANALYZE_HITL_DATA
BATCH_MOVE_DOCUMENTS
RESYNC_DATASET
BATCH_DELETE_DOCUMENTS
DELETE_DATA_LABELING_JOB
EXPORT_DOCUMENTS
Método HTTP e URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
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?filter=TYPE=TYPE"
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?filter=TYPE=TYPE" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{ "operations": [ { "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" } }, ... ] }
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.
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.
Consultar uma operação de longa duração
Os exemplos seguintes mostram como sondar o estado de um LRO.
REST
Para sondar um LRO, chame repetidamente o método projects.locations.operations.get
até que a operação termine. Use uma retirada entre cada pedido de sondagem, como 10 segundos.
Antes de usar qualquer um dos dados de pedidos abaixo, 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
- OPERATION_ID: o identificador da LRO
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 para verificar o estado de um LRO a cada 10 segundos:
while true; \ do 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"; \ sleep 10; \ done
Deve receber uma resposta JSON a cada 10 segundos.
Enquanto a operação estiver em execução, a resposta vai conter "state": "RUNNING"
.
Quando a operação terminar, a resposta vai conter "state": "SUCCEEDED"
e "done": true
.
PowerShell
Execute o seguinte comando para verificar o estado de um LRO a cada dez segundos:
$cred = gcloud auth print-access-token $headers = @{ Authorization = "Bearer $cred" } Do { 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 sleep 10 } while ($true)
Deve receber uma resposta JSON a cada 10 segundos.
Enquanto a operação estiver em execução, a resposta vai conter "state": "RUNNING"
.
Quando a operação terminar, a resposta vai conter "state": "SUCCEEDED"
e "done": true
.
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.
Cancelar uma operação de longa duração
Os exemplos seguintes mostram como cancelar uma LRO enquanto está em execução.
REST
Para cancelar uma LRO, chame o método projects.locations.operations.cancel
.
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:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Para enviar o seu pedido, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel"
PowerShell
Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
Deve receber uma resposta JSON semelhante à seguinte:
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
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.
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.