처리 요청 보내기
Google Cloud 계정을 설정하고 프로세서를 만든 후 Document AI 프로세서에 요청을 보낼 수 있습니다.
요청을 전송하는 데 사용되는 코드는 모든 프로세서에서 동일합니다. 각 프로세서가 출력하는 정보에서 프로세서 기능의 차이를 확인할 수 있습니다.
Document AI의 v1
API 버전 또는 Google Cloud 콘솔에서 이를 사용하면 특정 프로세서 버전으로 처리 요청을 전송할 수 있습니다. 프로세서 버전을 지정하지 않으면 기본 버전이 사용됩니다.
자세한 내용은 프로세서 버전 관리를 참고하세요.
온라인 처리
온라인 (동기식) 요청을 사용하면 처리할 단일 문서를 전송할 수 있습니다.
Document AI는 요청을 즉시 처리하고 document
를 반환합니다.
프로세서에 요청 전송
다음 코드 샘플은 프로세서에 요청을 보내는 방법을 보여줍니다.
REST
이 샘플에서는 rawDocument
객체에 문서 콘텐츠 (Base64 인코딩 문자열을 통한 원시 문서 콘텐츠의 바이트)를 제공하는 방법을 보여줍니다.
또는 Document AI에서 반환하는 것과 동일한 Document
JSON 형식인 inlineDocument
를 지정할 수도 있습니다. 이렇게 하면 동일한 형식을 앞뒤로 전달하여 요청을 연결할 수 있습니다(예: 문서를 분류한 후 콘텐츠를 추출하는 경우).
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 프로세서의 위치입니다(예:
us
- 미국eu
- 유럽 연합
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- PROCESSOR_ID: 맞춤 프로세서의 ID입니다.
- skipHumanReview: 사람의 검토를 사용 중지하는 불리언입니다. 인간 참여형 (Human-In-The-Loop) 프로세서에서만 지원됩니다.
true
- 사람의 검토를 건너뜁니다.false
- 수동 검토를 사용 설정합니다 (기본값).
- MIME_TYPE†: 유효한 MIME 유형 옵션 중 하나입니다.
- IMAGE_CONTENT†: 유효한 인라인 문서 콘텐츠 중 하나로, 바이트 스트림으로 표시됩니다. JSON 표현의 경우 바이너리 이미지 데이터의 base64 인코딩 (ASCII 문자열)입니다. 이 문자열은 다음 문자열과 유사하게 표시됩니다.
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK:
Document
출력에 포함할 필드를 지정합니다. 정규화된 필드 이름을 쉼표로 구분한FieldMask
형식의 목록입니다.- 예:
text,entities,pages.pageNumber
- 예:
- INDIVIDUAL_PAGES: 처리할 개별 페이지 목록입니다.
† 이 콘텐츠는 inlineDocument
객체에서 base64로 인코딩된 콘텐츠를 사용하여 지정할 수도 있습니다.
HTTP 메서드 및 URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:process
JSON 요청 본문:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK", "processOptions": { "individualPageSelector" { "pages": [INDIVIDUAL_PAGES] } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
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
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$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
요청이 성공하면 서버가 200 OK
HTTP 상태 코드와 응답을 JSON 형식으로 반환합니다. 응답 본문에는 Document
인스턴스가 포함됩니다.
프로세서 버전에 요청 전송
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 프로세서의 위치입니다(예:
us
- 미국eu
- 유럽 연합
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- PROCESSOR_ID: 맞춤 프로세서의 ID입니다.
- PROCESSOR_VERSION: 프로세서 버전 식별자입니다. 자세한 내용은 프로세서 버전 선택을 참고하세요. 예를 들면 다음과 같습니다.
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- skipHumanReview: 사람의 검토를 사용 중지하는 불리언입니다. 인간 참여형 (Human-In-The-Loop) 프로세서에서만 지원됩니다.
true
- 사람의 검토를 건너뜁니다.false
- 수동 검토를 사용 설정합니다 (기본값).
- MIME_TYPE†: 유효한 MIME 유형 옵션 중 하나입니다.
- IMAGE_CONTENT†: 유효한 인라인 문서 콘텐츠 중 하나로, 바이트 스트림으로 표시됩니다. JSON 표현의 경우 바이너리 이미지 데이터의 base64 인코딩 (ASCII 문자열)입니다. 이 문자열은 다음 문자열과 유사하게 표시됩니다.
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- FIELD_MASK:
Document
출력에 포함할 필드를 지정합니다. 정규화된 필드 이름을 쉼표로 구분한FieldMask
형식의 목록입니다.- 예:
text,entities,pages.pageNumber
- 예:
† 이 콘텐츠는 inlineDocument
객체에서 base64로 인코딩된 콘텐츠를 사용하여 지정할 수도 있습니다.
HTTP 메서드 및 URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:process
JSON 요청 본문:
{ "skipHumanReview": skipHumanReview, "rawDocument": { "mimeType": "MIME_TYPE", "content": "IMAGE_CONTENT" }, "fieldMask": "FIELD_MASK" }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
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
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$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
요청이 성공하면 서버가 200 OK
HTTP 상태 코드와 응답을 JSON 형식으로 반환합니다. 응답 본문에는 Document
인스턴스가 포함됩니다.
C#
자세한 내용은 Document AI C# API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
자세한 내용은 Document AI Java API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Document AI Node.js API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
자세한 내용은 Document AI Python API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
일괄 처리
일괄 (비동기) 요청을 사용하면 단일 요청으로 여러 문서를 전송할 수 있습니다. Document AI는 요청 상태를 폴링할 수 있는 operation
로 응답합니다. 이 작업이 완료되면 처리된 결과가 저장된 Cloud Storage 버킷을 가리키는 BatchProcessMetadata
가 포함됩니다.
액세스하려는 입력 파일이 다른 프로젝트의 버킷에 있는 경우 해당 버킷에 대한 액세스 권한을 제공해야 파일에 액세스할 수 있습니다. 파일 액세스 설정을 참고하세요.
프로세서에 요청 전송
다음 코드 샘플은 프로세서에 일괄 처리 요청을 보내는 방법을 보여줍니다.
REST
이 샘플은 대규모 문서 비동기 처리를 위해
batchProcess
메서드에 POST
요청을 보내는 방법을 보여줍니다.
이 예시에서는 Google Cloud CLI를 사용하는 프로젝트의 서비스 계정을 설정하기 위해 액세스 토큰을 사용합니다. Google Cloud CLI 설치, 서비스 계정으로 프로젝트 설정, 액세스 토큰 획득 방법은 시작하기 전을 참고하세요.
batchProcess
요청은 장기 실행 작업을 시작하고 결과를 Cloud Storage 버킷에 저장합니다. 이 샘플에서는 장기 실행 작업이 시작된 후 작업 상태를 가져오는 방법도 보여줍니다.
프로세스 요청 전송
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 프로세서의 위치입니다(예:
us
- 미국eu
- 유럽 연합
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- PROCESSOR_ID: 맞춤 프로세서의 ID입니다.
- INPUT_BUCKET_FOLDER†: 입력 파일을 읽을 Cloud Storage 버킷/디렉터리이며 다음 형식으로 표현됩니다.
gs://bucket/directory/
- MIME_TYPE: 유효한 MIME 유형 옵션 중 하나입니다.
- OUTPUT_BUCKET_FOLDER: 출력 파일을 저장할 Cloud Storage 버킷/디렉터리이며 다음 형식으로 표시됩니다.
gs://bucket/directory/
- skipHumanReview: 사람의 검토를 사용 중지하는 불리언입니다. 인간 참여형 (Human-In-The-Loop) 프로세서에서만 지원됩니다.
true
- 사람의 검토를 건너뜁니다.false
- 수동 검토를 사용 설정합니다 (기본값).
- FIELD_MASK:
Document
출력에 포함할 필드를 지정합니다. 정규화된 필드 이름을 쉼표로 구분한FieldMask
형식의 목록입니다.- 예:
text,entities,pages.pageNumber
- 예:
† gcsPrefix
를 사용하여 GCS 폴더에 모든 파일을 포함하는 대신 documents
를 사용하여 각 파일을 개별적으로 나열할 수도 있습니다.
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
HTTP 메서드 및 URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID:batchProcess
JSON 요청 본문:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
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
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$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
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
프로세서 버전에 요청 전송
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 프로세서의 위치입니다(예:
us
- 미국eu
- 유럽 연합
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- PROCESSOR_ID: 맞춤 프로세서의 ID입니다.
- PROCESSOR_VERSION: 프로세서 버전 식별자입니다. 자세한 내용은 프로세서 버전 선택을 참고하세요. 예를 들면 다음과 같습니다.
pretrained-TYPE-vX.X-YYYY-MM-DD
stable
rc
- INPUT_BUCKET_FOLDER†: 입력 파일을 읽을 Cloud Storage 버킷/디렉터리이며 다음 형식으로 표현됩니다.
gs://bucket/directory/
- MIME_TYPE: 유효한 MIME 유형 옵션 중 하나입니다.
- OUTPUT_BUCKET_FOLDER: 출력 파일을 저장할 Cloud Storage 버킷/디렉터리이며 다음 형식으로 표시됩니다.
gs://bucket/directory/
- skipHumanReview: 사람의 검토를 사용 중지하는 불리언입니다. 인간 참여형 (Human-In-The-Loop) 프로세서에서만 지원됩니다.
true
- 사람의 검토를 건너뜁니다.false
- 수동 검토를 사용 설정합니다 (기본값).
- FIELD_MASK:
Document
출력에 포함할 필드를 지정합니다. 정규화된 필드 이름을 쉼표로 구분한FieldMask
형식의 목록입니다.- 예:
text,entities,pages.pageNumber
- 예:
† gcsPrefix
를 사용하여 GCS 폴더에 모든 파일을 포함하는 대신 documents
를 사용하여 각 파일을 개별적으로 나열할 수도 있습니다.
"inputDocuments": { "gcsDocuments": { "documents": [ { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT1.ext", "mimeType": "MIME_TYPE" }, { "gcsUri": "gs://BUCKET/PATH/TO/DOCUMENT2.ext", "mimeType": "MIME_TYPE" } ] } }
HTTP 메서드 및 URL:
POST https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/processors/PROCESSOR_ID/processorVersions/PROCESSOR_VERSION:batchProcess
JSON 요청 본문:
{ "inputDocuments": { "gcsPrefix": { "gcsUriPrefix": "INPUT_BUCKET_FOLDER" } }, "documentOutputConfig": { "gcsOutputConfig": { "gcsUri": "OUTPUT_BUCKET_FOLDER", "fieldMask": "FIELD_MASK" } }, "skipHumanReview": BOOLEAN }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
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
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$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
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID" }
요청이 성공하면 Document AI API가 작업의 이름을 반환합니다.
결과 가져오기
요청 결과를 가져오려면 operations
리소스에 GET
요청을 보내야 합니다. 다음은 이러한 요청을 전송하는 방법을 보여줍니다.
자세한 내용은 장기 실행 작업 문서를 참고하세요.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- LOCATION: LRO가 실행되는 위치입니다(예:
us
- 미국eu
- 유럽 연합
- OPERATION_ID: 작업의 ID입니다. ID는 작업 이름의 마지막 요소입니다. 예를 들면 다음과 같습니다.
- 작업 이름:
projects/PROJECT_ID/locations/LOCATION/operations/bc4e1d412863e626
- 작업 ID:
bc4e1d412863e626
- 작업 이름:
HTTP 메서드 및 URL:
GET https://LOCATION-documentai.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
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
다음 명령어를 실행합니다.
$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
다음과 비슷한 JSON 응답이 표시됩니다.
{ "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" } }
응답 본문에는 작업 상태에 관한 정보가 포함된 Operation
인스턴스가 포함됩니다.
작업이 성공적으로 완료되면 처리된 문서에 관한 정보가 포함된 BatchProcessMetadata
인스턴스로 metadata
필드가 채워집니다.
C#
자세한 내용은 Document AI C# API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
자세한 내용은 Document AI Go API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
자세한 내용은 Document AI Java API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Node.js
자세한 내용은 Document AI Node.js API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
자세한 내용은 Document AI Python API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
자세한 내용은 Document AI Go API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Ruby
자세한 내용은 Document AI Ruby API 참조 문서를 참고하세요.
Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python SDK로 문서 일괄 생성
일괄 처리를 사용하면 요청당 최대 1,000개의 파일을 처리할 수 있습니다. 처리할 문서가 더 많은 경우 문서를 여러 일괄 처리로 나누어 처리해야 합니다.
Document AI Toolbox는 Document AI용 유틸리티 함수를 제공하는 Python용 SDK입니다. 이 함수 중 하나는 Cloud Storage 폴더에서 처리할 문서 일괄 항목을 만드는 것입니다.
Document AI Toolbox가 후처리를 지원하는 방법에 관한 자세한 내용은 처리 응답 처리를 참고하세요.
코드 샘플
다음 코드 샘플은 Document AI Toolbox를 사용하는 방법을 보여줍니다.