Cloud Storage-Aufnahmepipeline

In diesem Dokument wird beschrieben, was die Cloud Storage-Aufnahmepipeline macht und wie Sie sie ausführen.

Was macht die Cloud Storage-Aufnahmepipeline?

Ihre Nutzer können Dokumente aus Cloud Storage in Document AI Warehouse übertragen. Dort können Nutzer festlegen, dass sie für Aufgaben wie die Suche, Dokumentverwaltungs-Workflows oder einfach nur zum Testen von Document AI-Ausgaben verarbeitet werden.

Warum sollte diese Pipeline verwendet werden?

Wenn viele Dokumente aufgenommen werden müssen (mit oder ohne Verarbeitung), bietet diese Pipeline einen zuverlässigen Workflow. Außerdem können Nutzer so die Onboarding-Zeit für Document AI Warehouse-Kunden für Proof-of-Concepts oder Produktionsarbeitslasten verkürzen.

Pipelinefunktionen

Im Allgemeinen unterstützt die Cloud Storage-Aufnahmepipeline die folgenden Aktionen:

  • Rohdokumente in Document AI Warehouse aufnehmen.

    {
      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"
      }
    }
    
  • In Document AI verarbeitete Dokumente in Document AI Warehouse aufnehmen.

    {
      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"
      }
    }
    

    Die processor_type ist erforderlich, um anzugeben, dass die Eingabedateien von Document AI verarbeitet wurden. processor_type (OCR_PROCESSOR, INVOICE_PROCESSOR, FORM_PARSER_PROCESSOR) finden Sie hier im Feld Type in API.

  • Nehmen Sie mit derselben Anfrage Dokumente auf, die mit Document AI verarbeitet wurden, und die entsprechenden Rohdokumente.

    {
      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"
      }
    }
    

    Der Speicherort input_path muss von Document AI verarbeitete Dokumente enthalten. Die Pipeline sucht unter diesem URI-Pfad nach entsprechenden Rohdokumenten für jedes mit Doc AI verarbeitete Dokument.

  • Einen Typ von Rohdokument aufnehmen und die Document AI-Verarbeitung in der Pipeline auslösen.

    {
      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"
      }
    }
    

    Das Feld extract_processor_infos darf nur einen Extraktionsprozessor enthalten. Alle Dokumente im Feld input_path gelten als ein Dokumenttyp und werden vom selben Extraktionsprozessor verarbeitet.

  • Mehrere Arten von Rohdokumenten aufnehmen und die Document AI-Verarbeitung in der Pipeline auslösen.

    {
      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"
      }
    }
    

    Das Feld split_classify_processor_info klassifiziert Dokumente nach Typ. Das Feld extract_processor_infos (als Array übergeben) muss verschiedene Extraktprozessoren für jeden Dokumenttyp aus dem Klassifizierungsergebnis enthalten.

Konfiguration der Aufnahme

Die Cloud Storage-Aufnahmepipeline unterstützt optionale Anpassungen bei der Dokumentaufnahme, wie in den folgenden Optionen beschrieben:

  • Verwenden Sie das Flag skip_ingested_documents, um aufgenommene Dokumente zu überspringen, wenn die Pipeline mehrmals für denselben Cloud Storage-Ordner ausgelöst wird. Wenn Dokumente in Cloud Storage die Metadaten status=ingested enthalten, die eine Funktion zur Statusverfolgung der Pipeline sind, werden die Dokumente nicht noch einmal aufgenommen, wenn dieses Flag aktiviert ist.

  • Verwenden Sie das Flag document_acl_policy, um beim Erstellen von Dokumenten eine zusätzliche ACL-Richtlinie auf Dokumentebene anzugeben. Dieses Flag ist für Projekte vorgesehen, in denen ACLs auf Dokumentebene in Document AI Warehouse aktiviert sind.

  • Verwenden Sie das Flag enable_document_text_extraction, damit Document AI Warehouse Text aus Rohdokumenten extrahiert, wenn die Dokumente Inhalte enthalten. Dieses Flag unterscheidet sich von der Document AI-Verarbeitung. Die Dokumentextraktion unterstützt nur die folgenden Dokumentdateitypen in Document AI Warehouse.

    • RAW_DOCUMENT_FILE_TYPE_TEXT
    • RAW_DOCUMENT_FILE_TYPE_DOCX
  • Verwenden Sie das Feld folder, um den Zielordner für die aufgenommenen Dokumente anzugeben. Alle aufgenommenen Dokumente werden unter dem angegebenen übergeordneten Ordner verknüpft.

  • Verwenden Sie das Feld cloud_function, um Felder in der Dokument-Proto-Datei weiter anzupassen, bevor sie an Document AI Warehouse gesendet wird. Der Wert cloud_function muss eine gültige URL sein, auf die das Document AI Warehouse-Dienstkonto zugreifen kann. Jeder Anruf muss innerhalb von 5 Minuten beendet werden. Anfragen und Antworten sind im JSON-Format. Möglicherweise finden Sie diese Schlüssel in der Anfrage-Payload:

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

    Die Schlüssel aus der Antwortnutzlast werden als Teil des Protokolls in Document AI Warehouse aufgenommen. Der ursprüngliche Wert wird überschrieben, wenn ein Schlüssel geändert oder der Antwort hinzugefügt wird. Zusätzliche Schlüssel in der Antwort werden verworfen. Wenn der entsprechende Wert ungültig ist, schlägt die Dokumentaufnahme fehl.

    • display_name
    • properties
    • plain_text oder cloud_ai_document.text
    • reference_id
    • document_acl_policy
    • folder
  • Anpassen der Ingest-Pipeline mit 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"
        }
      }
    }
    

Status-Tracking

Mit der Statusverfolgung können Sie den Fortschritt der Aufnahmeergebnisse für die gesamte Pipeline und für jedes Dokument sehen.

  • Sie können prüfen, ob die Pipeline abgeschlossen ist, indem Sie prüfen, ob der LRO abgeschlossen ist.

  • Sie können den Status jedes Dokuments in der Pipeline prüfen, indem Sie die Cloud Storage-Metadaten aufrufen. Cloud Storage erstellt die folgenden Schlüssel/Wert-Paare für jedes Dokument.

    • Schlüssel: status; Wert: status=queued oder status=processed oder status=ingested oder status=failed.
    • Schlüssel: error; Wert: the error message.

Unterstützte Dokumenttypen

Die unterstützten Dokumenttypen in der Pipeline sind dieselben wie die von Document AI Warehouse unterstützten Dokumenttypen: Text, PDFs, Bilder (gescannte PDFs, TIFF-Dateien, JPEG-Dateien), Microsoft Office-Dateien (DOCX, PPTX, XLSX).

Dokumentattribute aus Cloud Storage-Metadaten

Sie können die Cloud Storage-Metadaten in der Pipeline verwenden, um benutzerdefinierte Eigenschaften in Document AI Warehouse zu erstellen. Ein Metadatenwert des Cloud Storage-Dokuments wird automatisch in die entsprechende Document AI Warehouse-Dokumenteigenschaft kopiert, wenn der Schlüssel mit einem Eigenschaftsnamen im Schema übereinstimmt.

Pipeline ausführen

Die verschiedenen Parameter sind erforderlich, um unterschiedliche Funktionen in der Cloud Storage-Aufnahmepipeline auszulösen. Weitere Informationen finden Sie unter Methode: projects.locations.runPipeline.

Im Folgenden finden Sie zwei Beispiele zum Auslösen der Cloud Storage-Aufnahmepipeline.

  • Führen Sie die Cloud Storage-Aufnahmepipeline ohne Document AI-Prozessoren aus.

    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"
                }
            }
    }'
  • Cloud Storage-Aufnahmepipeline mit Document AI-Prozessoren ausführen

    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"
                }
            }
    }'

Dieser Befehl gibt einen Ressourcennamen für einen Vorgang mit langer Ausführungszeit zurück. Mit diesem Ressourcennamen können Sie den Fortschritt der Pipeline im nächsten Schritt verfolgen.

Ergebnis eines Vorgangs mit langer Ausführungszeit abrufen

REST

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

Nächste Schritte

Wenn Sie die aufgenommenen Dokumente prüfen möchten, rufen Sie die Webanwendung von Document AI Warehouse auf.