처리 요청 보내기

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: 사람의 검토를 사용 중지하는 불리언입니다 (인간 참여형 프로세서에서만 지원됨).
    • true - 사람의 검토를 건너뜁니다.
    • false - 수동 검토를 사용 설정합니다 (기본값).
  • MIME_TYPE: 유효한 MIME 유형 옵션 중 하나입니다.
  • IMAGE_CONTENT: 유효한 인라인 문서 콘텐츠 중 하나로, 바이트 스트림으로 표시됩니다. JSON 표현의 경우 바이너리 이미지 데이터의 base64 인코딩 (ASCII 문자열)입니다. 이 문자열은 다음 문자열과 비슷해야 합니다.
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    자세한 내용은 Base64 인코딩 주제를 참고하세요.
  • FIELD_MASK: Document 출력에 포함할 필드를 지정합니다. FieldMask 형식의 정규화된 필드 이름의 쉼표로 구분된 목록입니다.
    • 예: text,entities,pages.pageNumber
  • INDIVIDUAL_PAGES: 처리할 개별 페이지 목록입니다.
    • 또는 fromStart 또는 fromEnd 필드를 제공하여 문서의 시작 또는 끝에서 특정 수의 페이지를 처리합니다.

† 이 콘텐츠는 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: 사람의 검토를 사용 중지하는 불리언입니다 (인간 참여형 프로세서에서만 지원됨).
    • true - 사람의 검토를 건너뜁니다.
    • false - 수동 검토를 사용 설정합니다 (기본값).
  • MIME_TYPE: 유효한 MIME 유형 옵션 중 하나입니다.
  • IMAGE_CONTENT: 유효한 인라인 문서 콘텐츠 중 하나로, 바이트 스트림으로 표시됩니다. JSON 표현의 경우 바이너리 이미지 데이터의 base64 인코딩 (ASCII 문자열)입니다. 이 문자열은 다음 문자열과 비슷해야 합니다.
    • /9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
    자세한 내용은 Base64 인코딩 주제를 참고하세요.
  • 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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


using Google.Cloud.DocumentAI.V1;
using Google.Protobuf;
using System;
using System.IO;

public class QuickstartSample
{
    public Document Quickstart(
        string projectId = "your-project-id",
        string locationId = "your-processor-location",
        string processorId = "your-processor-id",
        string localPath = "my-local-path/my-file-name",
        string mimeType = "application/pdf"
    )
    {
        // Create client
        var client = new DocumentProcessorServiceClientBuilder
        {
            Endpoint = $"{locationId}-documentai.googleapis.com"
        }.Build();

        // Read in local file
        using var fileStream = File.OpenRead(localPath);
        var rawDocument = new RawDocument
        {
            Content = ByteString.FromStream(fileStream),
            MimeType = mimeType
        };

        // Initialize request argument(s)
        var request = new ProcessRequest
        {
            Name = ProcessorName.FromProjectLocationProcessor(projectId, locationId, processorId).ToString(),
            RawDocument = rawDocument
        };

        // Make the request
        var response = client.ProcessDocument(request);

        var document = response.Document;
        Console.WriteLine(document.Text);
        return document;
    }
}

Java

자세한 내용은 Document AI Java API 참조 문서를 참고하세요.

Document AI에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.


import com.google.cloud.documentai.v1.Document;
import com.google.cloud.documentai.v1.DocumentProcessorServiceClient;
import com.google.cloud.documentai.v1.DocumentProcessorServiceSettings;
import com.google.cloud.documentai.v1.ProcessRequest;
import com.google.cloud.documentai.v1.ProcessResponse;
import com.google.cloud.documentai.v1.RawDocument;
import com.google.protobuf.ByteString;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;

public class ProcessDocument {
  public static void processDocument()
      throws IOException, InterruptedException, ExecutionException