Mengelola operasi yang berjalan lama (LRO)
Operasi yang Berjalan Lama ditampilkan oleh panggilan metode pemrosesan
batch karena memerlukan waktu lebih lama untuk diselesaikan daripada yang sesuai
untuk respons API. Hal ini agar thread panggilan tidak tetap terbuka saat banyak
dokumen diproses. Document AI API membuat LRO setiap kali Anda memanggil projects.locations.processors.batchProcess
melalui API atau Library Klien. LRO melacak status tugas pemrosesan.
Anda dapat menggunakan metode operasi
yang disediakan Document AI API untuk memeriksa
status LRO. Anda juga dapat
mencantumkan, melakukan polling,
atau membatalkan LRO. Library klien memanggil
polling metode asinkron secara internal, yang memungkinkan callback. (Untuk Python, await
diaktifkan.) Fungsi ini juga
memiliki parameter waktu tunggu. Dalam LRO utama yang ditampilkan oleh .batchProcess, LRO
dibuat untuk setiap dokumen (karena batas jumlah halaman batch jauh lebih tinggi daripada
panggilan process
sinkronisasi dan dapat memerlukan waktu yang signifikan untuk diproses). Saat LRO utama berakhir, status mendetail dari setiap LRO dokumen akan diberikan.
LRO dikelola di tingkat project dan lokasi Google Cloud . Saat membuat permintaan ke API, sertakan project Google Cloud dan lokasi tempat LRO berjalan.
Data LRO disimpan selama sekitar 30 hari setelah LRO selesai, yang berarti Anda tidak dapat melihat atau mencantumkan LRO setelah titik tersebut.
Mendapatkan detail tentang operasi yang berjalan lama
Contoh berikut menunjukkan cara mendapatkan detail tentang LRO.
REST
Untuk mendapatkan status dan melihat detail tentang LRO, panggil metode projects.locations.operations.get
.
Misalkan Anda menerima respons berikut setelah memanggil
projects.locations.processors.batchProcess
:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID" }
Nilai name
dalam respons menunjukkan bahwa Document AI API
membuat LRO bernama projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID
.
Anda juga dapat mengambil nama LRO dengan mencantumkan operasi yang berjalan lama.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda.
- LOCATION: lokasi tempat LRO berjalan, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- OPERATION_ID: ID operasi Anda. ID adalah elemen terakhir dari nama
operasi Anda. Contoh:
- Nama operasi:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- ID operasi:
bc4e1d412863e626
- Nama operasi:
Metode HTTP dan URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{ "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
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Mencantumkan operasi yang berjalan lama
Contoh berikut menunjukkan cara mencantumkan LRO di project dan lokasi Google Cloud .
REST
Untuk mencantumkan LRO di project dan lokasi Google Cloud , panggil metode projects.locations.operations.list
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda.
- LOCATION: lokasi tempat satu atau beberapa LRO berjalan, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- FILTER: (Wajib) Kueri untuk menampilkan LRO. Opsi:
- TYPE: (Wajib) Jenis LRO yang akan dicantumkan. Opsi:
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
Metode HTTP dan URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations?filter=TYPE=TYPE
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{ "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
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Melakukan polling operasi yang berjalan lama
Contoh berikut menunjukkan cara melakukan polling status LRO.
REST
Untuk melakukan polling pada LRO, panggil metode projects.locations.operations.get
berulang kali hingga operasi selesai. Gunakan backoff di antara setiap permintaan polling,
seperti 10 detik.
Sebelum menggunakan salah satu data permintaan di bawah, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda
- LOCATION: lokasi tempat LRO berjalan
- OPERATION_ID: ID untuk LRO
Metode HTTP dan URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut untuk melakukan polling status LRO setiap 10 detik:
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
Anda akan menerima respons JSON setiap 10 detik.
Saat operasi berjalan, respons akan berisi "state": "RUNNING"
.
Setelah operasi selesai, respons akan berisi "state": "SUCCEEDED"
dan "done": true
.
PowerShell
Jalankan perintah berikut untuk melakukan polling status LRO setiap sepuluh detik:
$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)
Anda akan menerima respons JSON setiap 10 detik.
Saat operasi berjalan, respons akan berisi "state": "RUNNING"
.
Setelah operasi selesai, respons akan berisi "state": "SUCCEEDED"
dan "done": true
.
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Membatalkan operasi yang berjalan lama
Contoh berikut menunjukkan cara membatalkan LRO saat sedang berjalan.
REST
Untuk membatalkan LRO, panggil metode projects.locations.operations.cancel
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: project ID Google Cloud Anda.
- LOCATION: lokasi tempat LRO berjalan, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- OPERATION_ID: ID operasi Anda. ID adalah elemen terakhir dari nama
operasi Anda. Contoh:
- Nama operasi:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- ID operasi:
bc4e1d412863e626
- Nama operasi:
Metode HTTP dan URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID:cancel
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
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
Jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{}
"error": { "code": 400, "message": "Operation has completed and cannot be cancelled: 'PROJECT_ID/locations/LOCATION/operations/OPERATION_ID'.", "status": "FAILED_PRECONDITION" }
Go
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Go Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.