Pipeline Penyerapan Cloud Storage

Dokumen ini menjelaskan fungsi pipeline penyerapan Cloud Storage dan cara menjalankan pipeline.

Apa fungsi pipeline penyerapan Cloud Storage?

Pengguna dapat mentransfer dokumen dari Cloud Storage ke Document AI Warehouse. Di sana, pengguna dapat memilih untuk memprosesnya untuk tugas seperti penelusuran, alur kerja pengelolaan dokumen, atau sekadar menguji output Document AI.

Mengapa menggunakan pipeline ini?

Jika banyak dokumen yang harus diserap (dengan atau tanpa pemrosesan), pipeline ini menyediakan alur kerja yang andal. Pipeline ini juga membantu pengguna mempercepat waktu untuk mengaktifkan pelanggan Document AI Warehouse untuk bukti konsep atau beban kerja produksi.

Fitur pipeline

Secara umum, pipeline penyerapan Cloud Storage mendukung tindakan berikut:

  • Menyerap dokumen mentah ke Document AI Warehouse.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
      }
    }
    
  • Menyerap dokumen yang diproses Document AI ke Document AI Warehouse.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        processor_type: "PROCESS_TYPE"
      }
    }
    

    processor_type diperlukan untuk menunjukkan bahwa file input telah diproses oleh Document AI. processor_type (OCR_PROCESSOR, INVOICE_PROCESSOR, FORM_PARSER_PROCESSOR) dapat ditemukan di kolom Type in API di sini.

  • Menyerap dokumen yang diproses Document AI dan dokumen mentah yang sesuai dalam permintaan yang sama.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        processor_type: "PROCESS_TYPE"
      }
    }
    

    Lokasi input_path harus berisi dokumen yang diproses Document AI. Pipeline akan menemukan dokumen mentah yang sesuai untuk setiap dokumen yang diproses Doc AI di jalur URI tersebut.

  • Menyerap satu jenis dokumen mentah dan memicu pemrosesan Document AI dalam pipeline.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_with_doc_ai_processors_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        extract_processor_infos: {
          processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
          schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
        },
        processor_results_folder_path: "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME"
      }
    }
    

    Kolom extract_processor_infos hanya boleh berisi satu pemroses ekstrak. Semua dokumen di kolom input_path dianggap sebagai satu jenis dokumen dan diproses oleh pemroses ekstrak yang sama.

  • Menyerap beberapa jenis dokumen mentah dan memicu pemrosesan Document AI dalam pipeline.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_with_doc_ai_processors_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        split_classify_processor_info: {
          processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID"
        },
        extract_processor_infos: [
          {
            processor_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
            document_type: "DOCUMENT_TYPE",
            schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
          }
        ],
        processor_results_folder_path: "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME"
      }
    }
    

    Kolom split_classify_processor_info mengklasifikasikan dokumen menurut jenis. Kolom extract_processor_infos (diteruskan sebagai array) harus berisi pemroses ekstrak yang berbeda yang sesuai dengan setiap jenis dokumen dari hasil klasifikasi.

Konfigurasi penyerapan

Pipeline penyerapan Cloud Storage mendukung penyesuaian opsional selama penyerapan dokumen, seperti yang dijelaskan oleh opsi berikut:

  • Gunakan flag skip_ingested_documents untuk melewati dokumen yang diserap saat pipeline dipicu di folder Cloud Storage yang sama lebih dari satu kali. Jika dokumen di Cloud Storage berisi metadata status=ingested, yang merupakan fitur pelacakan status pipeline, dokumen tidak akan diserap ulang jika flag ini diaktifkan.

  • Gunakan flag document_acl_policy untuk memberikan kebijakan ACL tingkat dokumen tambahan selama pembuatan dokumen. Flag ini ditujukan untuk project yang mengaktifkan ACL tingkat dokumen di Document AI Warehouse.

  • Gunakan flag enable_document_text_extraction agar Document AI Warehouse mengekstrak teks pada dokumen mentah jika dokumen tersebut berisi konten. Flag ini berbeda dengan pemrosesan Document AI dan ekstraksi dokumen hanya mendukung jenis file dokumen berikut di Document AI Warehouse.

    • RAW_DOCUMENT_FILE_TYPE_TEXT
    • RAW_DOCUMENT_FILE_TYPE_DOCX
  • Gunakan kolom folder untuk menentukan folder target bagi dokumen yang diserap. Semua dokumen yang diserap akan ditautkan di folder induk yang diberikan.

  • Gunakan kolom cloud_function untuk menyesuaikan lebih lanjut kolom dalam file proto dokumen sebelum masuk ke Document AI Warehouse. Nilai cloud_function harus berupa URL valid yang dapat diakses oleh akun layanan Document AI Warehouse. Setiap panggilan harus berakhir dalam waktu 5 menit. Permintaan dan respons dalam format JSON. Anda mungkin menemukan kunci ini dalam payload permintaan:

    • display_name
    • properties
    • plain_text atau cloud_ai_document.text
    • reference_id
    • document_schema_name
    • raw_document_path
    • raw_document_file_type

    Kunci dari payload respons diserap di Document AI Warehouse sebagai bagian dari proto. Nilai asli akan ditimpa jika kunci diubah atau ditambahkan ke respons. Kunci tambahan dalam respons akan dihapus. Jika nilai yang sesuai tidak valid, penyerapan dokumen akan gagal.

    • display_name
    • properties
    • plain_text atau cloud_ai_document.text
    • reference_id
    • document_acl_policy
    • folder
  • Penyesuaian pipeline penyerapan menggunakan pipeline_config.

    {
      name: "projects/PROJECT_NUMBER/locations/LOCATION_ID",
      gcs_ingest_pipeline: {
        input_path: "gs://BUCKET_NAME/FOLDER_NAME",
        schema_name: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
        skip_ingested_documents: "true",
        pipeline_config: {
          enable_document_text_extraction: "true"
          folder: "projects/PROJECT_NUMBER/locations/LOCATION_ID/documents/FOLDER_DOCUMENT_ID",
          cloud_function: "https://REGION-PROJECT_ID.cloudfunctions.net/CLOUD_FUNCTION_NAME"
        }
      }
    }
    

Pelacakan status

Pelacakan status menunjukkan progres hasil penyerapan di seluruh pipeline dan setiap dokumen.

  • Anda dapat memeriksa apakah pipeline telah selesai dengan memeriksa apakah LRO telah selesai.

  • Anda dapat memeriksa status setiap dokumen dalam pipeline dengan melihat metadata Cloud Storage. Cloud Storage membuat pasangan nilai kunci berikut pada setiap dokumen.

    • Kunci: status; Nilai: status=queued atau status=processed atau status=ingested atau status=failed.
    • Kunci: error; Nilai: the error message.

Jenis dokumen yang didukung

Jenis dokumen yang didukung dalam pipeline sama dengan jenis dokumen yang didukung Document AI Warehouse: Teks, PDF, Gambar (PDF yang dipindai, file TIFF, file JPEG), file Microsoft Office (DOCX, PPTX, XSLX).

Properti dokumen dari metadata Cloud Storage

Anda dapat menggunakan metadata Cloud Storage dalam pipeline untuk membuat properti yang disesuaikan di Document AI Warehouse. Nilai metadata dokumen Cloud Storage akan otomatis disalin ke properti dokumen Document AI Warehouse yang sesuai jika kuncinya cocok dengan nama properti dalam skema.

Menjalankan pipeline

Parameter yang berbeda diperlukan untuk memicu fungsi yang berbeda dalam pipeline penyerapan Cloud Storage. Lihat Metode: projects.locations.runPipeline untuk mengetahui informasi selengkapnya.

Bagian berikut memberikan dua contoh untuk memicu pipeline penyerapan Cloud Storage.

  • Menjalankan pipeline penyerapan Cloud Storage tanpa pemroses Document AI.

    REST

    curl --location --request POST 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID:runPipeline' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ${AUTH_TOKEN}" \
    --data '{
            "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID",
            "gcs_ingest_pipeline": {
                "input_path": "gs://BUCKET_NAME/FOLDER_NAME/",
    "schema_name": "projects/PROJECT_NUMBER/locations/
    LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID",
                "skip_ingested_documents": "true"
            },
            "request_metadata": {
                "user_info": {
                    "id": "user:USER EMAIL ADDRESS"
                }
            }
    }'
  • Menjalankan Pipeline Penyerapan Cloud Storage dengan pemroses Document AI.

    REST

    curl --location --request POST 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID:runPipeline' \
    --header 'Content-Type: application/json' \
    --header "Authorization: Bearer ${AUTH_TOKEN}" \
    --data '{
            "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID",
            "gcs_ingest_with_doc_ai_processors_pipeline": {
                "input_path": "gs://BUCKET_NAME/FOLDER_NAME/",
                "split_classify_processor_info": {
                  "processor_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID"
                },
                "extract_processor_infos": [
                  {
                    "processor_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/processors/PROCESSOR_ID",
                    "document_type": "DOCUMENT_TYPE",
                    "schema_name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/documentSchemas/DOCUMENT_SCHEMA_ID"
                  }
                ],
                "processor_results_folder_path": "gs://OUTPUT_BUCKET_NAME/OUTPUT_BUCKET_FOLDER_NAME/"
                "skip_ingested_documents": "true"
            },
            "request_metadata": {
                "user_info": {
                    "id": "user:USER EMAIL ADDRESS"
                }
            }
    }'

Perintah ini menampilkan nama resource untuk operasi yang berjalan lama. Dengan nama resource ini, Anda dapat melacak progres pipeline dengan mengikuti langkah berikutnya.

Mendapatkan hasil operasi yang berjalan lama

REST

curl --location --request GET 'https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION' \
--header "Authorization: Bearer ${AUTH_TOKEN}"

Langkah berikutnya

Untuk memeriksa dokumen yang diserap, buka web aplikasi Document AI Warehouse.