Mengirim permintaan pemrosesan
Setelah menyiapkan akunGoogle Cloud dan membuat pemroses, Anda dapat mengirim permintaan ke pemroses Document AI.
Kode yang digunakan untuk mengirim permintaan sama untuk semua pemroses. Anda melihat perbedaan fungsi prosesor dalam informasi yang dihasilkan setiap prosesor.
Dengan menggunakan Document AI versi v1
API atau di konsol Google Cloud, Anda dapat mengirim permintaan pemrosesan ke versi prosesor tertentu tersebut. Jika Anda tidak
menentukan versi prosesor, versi default akan digunakan.
Untuk mengetahui informasi selengkapnya, lihat Mengelola versi pemroses.
Pemrosesan online
Permintaan online (sinkron) memungkinkan Anda mengirim satu dokumen untuk diproses.
Document AI akan segera memproses permintaan dan menampilkan document
.
Mengirim permintaan ke pemroses
Contoh kode berikut menunjukkan cara mengirim permintaan ke pemroses.
REST
Contoh ini menunjukkan cara menyediakan konten dokumen (konten dokumen mentah dalam byte
melalui string yang dienkode base64) dalam objek
rawDocument
.
Atau, Anda juga dapat menentukan inlineDocument
,
yang merupakan format JSON Document
yang sama yang ditampilkan
oleh Document AI. Hal ini memungkinkan Anda membuat rantai permintaan dengan meneruskan format yang sama secara bolak-balik
(misalnya, jika Anda mengklasifikasikan dokumen, lalu mengekstrak kontennya).
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Lokasi pemroses Anda, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- PROJECT_ID: project ID Google Cloud Anda.
- PROCESSOR_ID: ID pemroses kustom Anda.
- skipHumanReview: Boolean untuk menonaktifkan peninjauan manual (Hanya didukung oleh pemroses Human-in-the-Loop.)
true
- melewati peninjauan manualfalse
- mengaktifkan peninjauan manual (default)
- MIME_TYPE†: Salah satu opsi jenis MIME yang valid.
- IMAGE_CONTENT†: Salah satu konten dokumen inline yang valid, direpresentasikan sebagai aliran byte. Untuk representasi JSON, encoding base64 (string ASCII) dari data gambar biner Anda. String ini akan terlihat seperti
string berikut:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: Menentukan kolom yang akan disertakan dalam output
Document
. Ini adalah daftar yang dipisahkan koma berisi nama kolom yang sepenuhnya memenuhi syarat dalam formatFieldMask
.- Contoh:
text,entities,pages.pageNumber
- Contoh:
- INDIVIDUAL_PAGES: Daftar setiap halaman yang akan diproses.
† Konten ini juga dapat ditentukan menggunakan konten yang dienkode base64 dalam
objek inlineDocument
.
Metode HTTP dan URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
Isi JSON permintaan:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK", "processOptions": { "individualPageSelector" { "pages": [INDIVIDUAL_PAGES] } } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Jika permintaan berhasil, server akan menampilkan kode status HTTP 200 OK
dan respons dalam format JSON. Isi respons berisi instance
Document
.
Mengirim permintaan ke versi pemroses
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Lokasi pemroses Anda, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- PROJECT_ID: project ID Google Cloud Anda.
- PROCESSOR_ID: ID pemroses kustom Anda.
- PROCESSOR_VERSION: ID versi prosesor. Lihat Memilih versi prosesor untuk mengetahui informasi selengkapnya. Misalnya:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- skipHumanReview: Boolean untuk menonaktifkan peninjauan manual (Hanya didukung oleh pemroses Human-in-the-Loop.)
true
- melewati peninjauan manualfalse
- mengaktifkan peninjauan manual (default)
- MIME_TYPE†: Salah satu opsi jenis MIME yang valid.
- IMAGE_CONTENT†: Salah satu konten dokumen inline yang valid, direpresentasikan sebagai aliran byte. Untuk representasi JSON, encoding base64 (string ASCII) dari data gambar biner Anda. String ini akan terlihat seperti
string berikut:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK: Menentukan kolom yang akan disertakan dalam output
Document
. Ini adalah daftar yang dipisahkan koma berisi nama kolom yang sepenuhnya memenuhi syarat dalam formatFieldMask
.- Contoh:
text,entities,pages.pageNumber
- Contoh:
† Konten ini juga dapat ditentukan menggunakan konten yang dienkode base64 dalam
objek inlineDocument
.
Metode HTTP dan URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
Isi JSON permintaan:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK" }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Jika permintaan berhasil, server akan menampilkan kode status HTTP 200 OK
dan respons dalam format JSON. Isi respons berisi instance
Document
.
C#
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js 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.
Batch processing
Permintaan batch (asinkron) memungkinkan Anda mengirim beberapa dokumen dalam satu permintaan. Document AI akan merespons dengan operation
yang dapat Anda polling untuk mengetahui status permintaan. Setelah selesai, operasi ini akan berisi BatchProcessMetadata
yang mengarah ke bucket Cloud Storage tempat hasil yang diproses disimpan.
Jika file input yang ingin diakses berada dalam bucket di project lain, Anda harus memberikan akses ke bucket tersebut sebelum dapat mengakses file. Lihat menyiapkan akses file.
Mengirim permintaan ke pemroses
Contoh kode berikut menunjukkan cara mengirim permintaan proses batch ke pemroses.
REST
Contoh ini menunjukkan cara mengirim permintaan POST
ke metode
batchProcess
untuk pemrosesan asinkron dokumen besar.
Contoh ini menggunakan token akses untuk akun layanan yang disiapkan untuk project menggunakan Google Cloud CLI. Untuk mengetahui petunjuk cara menginstal Google Cloud CLI, menyiapkan project dengan akun layanan, dan mendapatkan token akses, lihat Sebelum memulai.
Permintaan batchProcess
memulai operasi yang berjalan lama dan
menyimpan hasilnya di bucket Cloud Storage. Contoh ini juga menunjukkan cara
mendapatkan status operasi yang berjalan lama ini setelah dimulai.
Mengirim permintaan proses
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Lokasi pemroses Anda, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- PROJECT_ID: project ID Google Cloud Anda.
- PROCESSOR_ID: ID pemroses kustom Anda.
- INPUT_BUCKET_FOLDER†: Bucket/direktori Cloud Storage
tempat file input dibaca, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- MIME_TYPE: Salah satu opsi jenis MIME yang valid.
- OUTPUT_BUCKET_FOLDER: Bucket/direktori Cloud Storage
tempat file output disimpan, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- skipHumanReview: Boolean untuk menonaktifkan peninjauan manual (Hanya didukung oleh pemroses Human-in-the-Loop.)
true
- melewati peninjauan manualfalse
- mengaktifkan peninjauan manual (default)
- FIELD_MASK: Menentukan kolom yang akan disertakan dalam output
Document
. Ini adalah daftar yang dipisahkan koma berisi nama kolom yang sepenuhnya memenuhi syarat dalam formatFieldMask
.- Contoh:
text,entities,pages.pageNumber
- Contoh:
† Daripada menggunakan gcsPrefix
untuk menyertakan semua file dalam folder GCS, Anda juga dapat
menggunakan documents
untuk mencantumkan setiap file satu per satu:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Metode HTTP dan URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
Isi JSON permintaan:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Mengirim permintaan ke versi pemroses
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Lokasi pemroses Anda, misalnya:
us
- Amerika Serikateu
- Uni Eropa
- PROJECT_ID: project ID Google Cloud Anda.
- PROCESSOR_ID: ID pemroses kustom Anda.
- PROCESSOR_VERSION: ID versi prosesor. Lihat Memilih versi prosesor untuk mengetahui informasi selengkapnya. Misalnya:
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- INPUT_BUCKET_FOLDER†: Bucket/direktori Cloud Storage
tempat file input dibaca, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- MIME_TYPE: Salah satu opsi jenis MIME yang valid.
- OUTPUT_BUCKET_FOLDER: Bucket/direktori Cloud Storage
tempat file output disimpan, yang dinyatakan dalam bentuk berikut:
gs://bucket/directory/
- skipHumanReview: Boolean untuk menonaktifkan peninjauan manual (Hanya didukung oleh pemroses Human-in-the-Loop.)
true
- melewati peninjauan manualfalse
- mengaktifkan peninjauan manual (default)
- FIELD_MASK: Menentukan kolom yang akan disertakan dalam output
Document
. Ini adalah daftar yang dipisahkan koma berisi nama kolom yang sepenuhnya memenuhi syarat dalam formatFieldMask
.- Contoh:
text,entities,pages.pageNumber
- Contoh:
† Daripada menggunakan gcsPrefix
untuk menyertakan semua file dalam folder GCS, Anda juga dapat
menggunakan documents
untuk mencantumkan setiap file satu per satu:
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
Metode HTTP dan URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
Isi JSON permintaan:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
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
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$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
Anda akan melihat respons JSON seperti berikut:
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
Jika permintaan berhasil, Document AI API akan menampilkan nama untuk operasi Anda.
Mendapatkan hasil
Untuk mendapatkan hasil permintaan, Anda harus mengirim permintaan GET
ke resource operations
. Berikut ini cara mengirim permintaan tersebut.
Anda dapat membaca informasi selengkapnya di dokumentasi 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" } }
Isi respons berisi instance Operation
dengan informasi tentang status operasi.
Jika operasi berhasil diselesaikan, kolom metadata
akan diisi dengan instance BatchProcessMetadata
yang berisi informasi tentang dokumen yang diproses.
C#
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API C# Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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.
Java
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Node.js 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.
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.
Ruby
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Ruby Document AI.
Untuk melakukan autentikasi ke Document AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Membuat batch dokumen dengan Python SDK
Pemrosesan batch memungkinkan maksimum 1.000 file per permintaan. Jika Anda memiliki lebih banyak dokumen untuk diproses, Anda harus membagi dokumen menjadi beberapa batch untuk diproses.
Toolbox Document AI adalah SDK untuk Python yang menyediakan fungsi utilitas untuk Document AI. Salah satu fungsinya adalah membuat batch dokumen untuk diproses dari folder Cloud Storage.
Lihat Menangani respons pemrosesan untuk mengetahui informasi selengkapnya tentang cara Document AI Toolbox membantu pascapemrosesan.
Contoh Kode
Contoh kode berikut menunjukkan cara menggunakan Toolbox Document AI.