Workflows를 사용한 문서 처리 파이프라인 빌드
Document AI를 사용하여 문서를 처리하는 여러 단계가 포함된 워크플로를 빌드하는 경우 서버리스 조정을 사용하여 워크플로를 관리할 수 있습니다.
Workflows는 일련의 태스크를 사용자가 정의한 순서대로 연결합니다. 인프라 관리가 필요하지 않으며 0으로 축소하는 등 필요에 따라 원활하게 확장됩니다. 종량제 요금 가격 책정 모델을 적용하여 실행 시간에 대해서만 비용을 지불하면 됩니다.
Workflows는 Document AI API용 기본 제공 커넥터를 제공합니다. 커넥터는 구성 파일을 사용하여 단계를 정의하는 것 외에는 추가 코드가 필요하지 않습니다. 커넥터는 API의 세부정보를 숨기고 요청 형식을 처리합니다. 또한 커넥터는 인증, 재시도 처리, 장기 실행 작업을 기본 제공합니다.
자세한 내용은 커넥터 이해를 참조하세요.
이 가이드에서는 일괄 처리와 함께 인보이스 파서 프로세서를 사용하여 샘플 인보이스 모음을 처리합니다.
Google Cloud 콘솔에서 이 태스크에 대한 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.
시작하기 전에
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Document AI, Cloud Storage, Workflows APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Document AI, Cloud Storage, Workflows APIs.
인보이스 파서 만들기
Google Cloud 콘솔을 사용하여 새 인보이스 파서를 만듭니다. 자세한 내용은 프로세서 만들기 및 관리 페이지를 참조하세요.
Google Cloud 콘솔 탐색 메뉴에서 Document AI를 클릭하고 프로세서 갤러리를 선택합니다.
프로세서 갤러리에서 인보이스 파서를
검색 하고 만들기를 선택합니다.프로세서 이름(예:
workflows-invoice-processor
)을 입력합니다.프로세서를 호스팅할 리전(Document AI API의
location
)을 선택합니다.만들기를 클릭합니다. 프로세서 세부정보 탭이 표시됩니다.
프로세서 ID를 복사합니다. 나중에 코드에서 이 ID를 사용해야 합니다.
Cloud Storage에서 출력 버킷 구성
일괄(비동기) 처리를 사용하는 경우 입력 및 출력 파일을 Cloud Storage에 저장해야 합니다. 다음 버킷에는 이 가이드의 입력으로 사용할 샘플 파일이 포함되어 있습니다.
gs://cloud-samples-data/documentai/workflows
프로젝트에 출력 파일을 저장할 버킷을 구성합니다.
Cloud Storage 문서의 버킷 만들기 가이드에 따라 버킷을 만들거나 이미 존재하는 버킷을 사용합니다.
버킷에 폴더를 만듭니다(예:
docai-workflows-output
).
워크플로 만들기
Google Cloud 콘솔에서 Workflows 대시보드를 엽니다.
만들기 를 클릭하여 첫 번째 워크플로를 만듭니다. 워크플로 만들기 페이지가 나타납니다.docai-workflows-quickstart
로워크플로의 이름을 변경 합니다.설명을 추가하고 이 프로젝트에 서비스 계정이 있다면 해당 계정을 선택합니다.
- 서비스 계정이 없는 경우 새 서비스 계정 만들기를 선택합니다.
- 서비스 계정의 이름을 지정하고 만들고 계속하기를 선택합니다.
- 다음 역할을 부여합니다.
Document AI API User
Workflows Invoker
Logs Writer
Service Usage Consumer
- 서비스 계정의 이름을 지정하고 만들고 계속하기를 선택합니다.
- 서비스 계정이 없는 경우 새 서비스 계정 만들기를 선택합니다.
워크플로 만들기 페이지에서
다음 을 클릭합니다.
워크플로 정의
워크플로 편집기 에서 기본 YAML을 지우고 아래 코드를 붙여넣습니다.main: params: [input] steps: - start: call: sys.log args: text: ${input} - vars: assign: - input_gcs_bucket: ${input.inputBucket} - output_gcs_bucket: ${input.outputBucket} - processor_id: ${input.processorId} - location: ${input.location} - project_id: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - batch_process: call: googleapis.documentai.v1.projects.locations.processors.batchProcess args: name: ${"projects/" + project_id + "/locations/" + location + "/processors/" + processor_id} location: ${location} body: inputDocuments: gcsPrefix: gcsUriPrefix: ${input_gcs_bucket} documentOutputConfig: gcsOutputConfig: gcsUri: ${output_gcs_bucket} skipHumanReview: true result: batch_process_resp - return: return: ${batch_process_resp}

배포 를 선택합니다.
워크플로 테스트
워크플로가 배포되었으므로 워크플로 세부정보 페이지가 표시됩니다.
페이지 상단의
실행 을 클릭하여 워크플로 실행 페이지로 이동합니다. 이 페이지에서는 콘솔에서 워크플로를 테스트할 수 있습니다.다음 입력 JSON에서 자리표시자 변수를 바꿉니다.
- OUTPUT_BUCKET_PATH: 앞에서 만든 출력 버킷 및 폴더의 전체 경로입니다.
- PROCESSOR_ID: 앞에서 만든 프로세서의 프로세서 ID입니다.
- LOCATION: 이전에 만든 프로세서의 위치입니다.
{ "inputBucket": "gs://cloud-samples-data/documentai/workflows", "outputBucket": "OUTPUT_BUCKET_PATH", "processorId": "PROCESSOR_ID", "location": "LOCATION" }
JSON을 복사하여
입력 텍스트 상자 에 붙여넣습니다.워크플로 하단의
실행 을 클릭하여 입력을 테스트하고 프로세스가 완료될 때까지 기다립니다.워크플로가 완료되면 출력 JSON이 다음과 같이 표시됩니다.
{ "done": true, "metadata": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessMetadata", "createTime": "2023-02-24T18:31:18.521764Z", "individualProcessStatuses": [ { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/baking_technologies_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/0", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/generic_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/1", "status": {} }, { "humanReviewStatus": { "state": "SKIPPED" }, "inputGcsSource": "gs://cloud-samples-data/documentai/workflows/google_invoice.pdf", "outputGcsDestination": "OUTPUT_BUCKET_PATH/11119195367705871803/2", "status": {} } ], "state": "SUCCEEDED", "updateTime": "2023-02-24T18:31:52.543163Z" }, "name": "projects/PROJECT_ID/locations/LOCATION/operations/11119195367705871803", "response": { "@type": "type.googleapis.com/google.cloud.documentai.v1.BatchProcessResponse" } }
출력 스토리지 버킷을 열면 작업 ID의 이름을 딴 폴더에서 처리된 각 인보이스의 출력이 표시됩니다.
이 폴더 내에는
Document
JSON 파일이 포함된 입력 배치에서 처리된 문서마다 하나씩 하위 폴더가 있습니다.각 JSON 파일을 검사하거나 코드를 작성하여 사용 사례와 관련된 필드를 사용할 수 있습니다. 자세한 내용은 응답 처리 가이드를 참조하세요.
이제 워크플로의 추가 단계를 연결하여 분석을 위해 추출된 항목을 데이터베이스에 삽입하는 등 출력을 추가로 처리할 수 있습니다.
워크플로를 트리거하는 방법에 대한 자세한 내용은 Workflows 문서를 참조하세요.
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
불필요한 Google Cloud 요금이 청구되지 않게 하려면Google Cloud console 을 사용하여 필요하지 않은 프로세서, 버킷, 워크플로, 프로젝트를 삭제합니다.
다음 단계
- Workflows 자세히 알아보기
- Document AI Workflows 커넥터 자세히 알아보기
- 현재 사용 가능한 프로세서의 목록과 설명을 확인하세요.
- 처리 응답을 처리하는 방법을 알아보세요.