Pipeline Penyerapan Cloud Storage

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

Apa fungsi pipeline penyerapan Cloud Storage?

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

Mengapa menggunakan pipeline ini?

Jika banyak dokumen harus diproses (dengan atau tanpa pemrosesan), pipeline ini memberikan alur kerja yang andal. Hal 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 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 ekstraksi. Semua dokumen di kolom input_path dianggap sebagai satu jenis dokumen dan diproses oleh pemroses ekstraksi 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 jenisnya. Kolom extract_processor_infos (diteruskan sebagai array) harus berisi pemroses ekstraksi 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 tanda skip_ingested_documents untuk melewati dokumen yang telah diproses saat pipeline dipicu di folder Cloud Storage yang sama lebih dari sekali. Jika dokumen di Cloud Storage berisi metadata status=ingested, yang merupakan fitur pelacakan status pipeline, dokumen tidak akan di-ingest ulang jika tanda ini diaktifkan.

  • Gunakan tanda 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 tanda 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 dokumen yang di-ingest. Semua dokumen yang di-ingest akan ditautkan di folder induk yang ditentukan.

  • 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 yang valid dan 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 di 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 dimasukkan ke 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 menampilkan 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

Berbagai parameter diperlukan untuk memicu berbagai fungsi di pipeline penyerapan Cloud Storage. Lihat Metode: projects.locations.runPipeline untuk mengetahui informasi selengkapnya.

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

  • Jalankan 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"
                }
            }
    }'
  • Jalankan 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 telah di-ingest, buka aplikasi web Document AI Warehouse.