형식이 지정된 문서 번역해 보기

Vertex AI Translation광학 문자 인식 (OCR) 서비스가 결합되어 문서 번역이라는 문서 처리 기능을 제공합니다.

Document Translate는 PDF 파일과 같은 형식이 지정된 문서를 직접 번역합니다. 이 기능은 일반 텍스트 번역과 비교하여 번역된 문서의 원래 형식과 레이아웃을 유지하므로 단락 구분과 같은 원본 컨텍스트의 대부분을 유지할 수 있습니다.

Document Translate는 인라인, 스토리지 버킷에서, 일괄 문서 번역을 지원합니다.

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭에서 문서 처리 기능을 사용하여 형식을 유지하면서 문서를 번역하는 대화형 환경을 안내합니다.

지원되는 형식

Document Translate는 다음 입력 파일 형식과 관련 출력 파일 형식을 지원합니다.

입력 문서 MIME 유형 출력
PDF application/pdf PDF, DOCX
DOC application/msword DOC, DOCX
DOCX application/vnd.openxmlformats-officedocument.wordprocessingml.document DOCX
PPT application/vnd.ms-powerpoint PPT, PPTX
PPTX application/vnd.openxmlformats-officedocument.presentationml.presentation PPTX
XLS application/vnd.ms-excel XLS, XLSX
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet XLSX

원본 및 스캔된 PDF 문서 번역

Document Translate는 오른쪽에서 왼쪽으로 쓰는 언어 번역을 포함하여 원본 및 스캔된 PDF 파일을 지원합니다. 또한 Document Translate는 파일의 하이퍼링크, 글꼴 크기, 글꼴 색상을 보존합니다.

시작하기 전에

문서 처리 기능을 사용하려면 dt-project이라는 프로젝트가 있어야 합니다. 프로젝트의 맞춤 리소스는 다음 예시와 같이 표시되어야 합니다.

apiVersion: resourcemanager.gdc.goog/v1
kind: Project
metadata:
  labels:
    atat.config.google.com/clin-number: CLIN_NUMBER
    atat.config.google.com/task-order-number: TASK_ORDER_NUMBER
  name: dt-project
  namespace: platform

또한 Vertex AI Translation 및 OCR 사전 학습 API를 모두 사용 설정하고 적절한 사용자 인증 정보가 있어야 합니다. API 호출을 용이하게 하려면 Vertex AI Translation 및 OCR 클라이언트 라이브러리를 설치하는 것이 좋습니다. 기본 요건에 대한 자세한 내용은 번역 프로젝트 설정을 참고하세요.

스토리지 버킷에서 문서 번역하기

버킷에 저장된 문서를 번역하려면 Vertex AI Translation API를 사용합니다.

이 섹션에서는 버킷에서 문서를 번역하고 결과를 다른 출력 버킷 경로에 저장하는 방법을 설명합니다. 응답도 바이트 스트림을 반환합니다. MIME 유형을 지정할 수 있습니다. 지정하지 않으면 Document Translate에서 입력 파일의 확장자를 사용하여 이를 확인합니다.

Document Translate는 버킷에 저장된 문서의 언어 자동 감지를 지원합니다. 출발어 코드를 지정하지 않으면 Document Translate에서 언어를 감지합니다. 감지된 언어는 detectedLanguageCode 필드의 출력에 포함됩니다.

스토리지 버킷에서 문서를 번역하려면 다음 단계를 따르세요.

  1. 객체 스토리지를 위한 gdcloud CLI 구성
  2. dt-project 네임스페이스에서 스토리지 버킷을 만듭니다. Standard 스토리지 클래스를 사용합니다.

    dt-project 네임스페이스에 Bucket 리소스를 배포하여 스토리지 버킷을 만들 수 있습니다.

      apiVersion: object.gdc.goog/v1
      kind: Bucket
      metadata:
        name: dt-bucket
        namespace: dt-project
      spec:
        description: bucket for document vision service
        storageClass: Standard
        bucketPolicy:
          lockingPolicy:
            defaultObjectRetentionDays: 90
    
  3. Vertex AI Translation 서비스에서 사용하는 서비스 계정(ai-translation-system-sa)에 버킷에 대한 readwrite 권한을 부여합니다.

    다음 단계에 따라 맞춤 리소스를 사용하여 역할과 역할 바인딩을 만들 수 있습니다.

    1. dt-project 네임스페이스에 Role 리소스를 배포하여 역할을 만듭니다.

        apiVersion: rbac.authorization.k8s.io/v1
        kind: Role
        metadata:
          name: dvs-reader-writer
          namespace: dt-project
        rules:
          -
            apiGroups:
              - object.gdc.goog
            resources:
              - buckets
            verbs:
              - read-object
              - write-object
      
    2. dt-project 네임스페이스에 RoleBinding 리소스를 배포하여 역할 바인딩을 만듭니다.

        apiVersion: rbac.authorization.k8s.io/v1
        kind: RoleBinding
        metadata:
          name: dvs-reader-writer-rolebinding
          namespace: dt-project
        roleRef:
          apiGroup: rbac.authorization.k8s.io
          kind: Role
          name: dvs-reader-writer
        subjects:
          -
            kind: ServiceAccount
            name: ai-translation-system-sa
            namespace: ai-translation-system
      
  4. 생성한 스토리지 버킷에 문서를 업로드합니다. 자세한 내용은 프로젝트에서 스토리지 객체 업로드 및 다운로드를 참고하세요.

  5. Vertex AI Translation 사전 학습된 API에 요청합니다.

    curl

    curl 요청을 하려면 다음 단계를 따르세요.

    1. 다음 request.json 파일을 저장합니다.

      cat <<- EOF > request.json
      {
        "parent": "projects/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "document_input_config": {
          "mime_type": "application/pdf",
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH"
          }
        },
        "document_output_config": {
          "mime_type": "application/pdf"
        },
        "enable_rotation_correction": "true"
      }
      EOF
      

      다음을 바꿉니다.

      • PROJECT_ID: 프로젝트 ID입니다.
      • SOURCE_LANGUAGE: 문서가 작성된 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
      • TARGET_LANGUAGE: 문서를 번역할 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
      • INPUT_FILE_PATH: 스토리지 버킷에 있는 문서 파일의 경로입니다.

      문서에 따라 mime_type 값을 수정합니다.

    2. 인증 토큰 가져오기

    3. 요청을 합니다.

      curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument < request.json
      

      다음을 바꿉니다.

문서를 인라인으로 번역하기

이 섹션에서는 API 요청의 일부로 문서를 인라인으로 보내는 방법을 설명합니다. 인라인 문서 번역에는 MIME 유형이 포함되어야 합니다.

문서 번역은 인라인 텍스트 번역을 위한 언어 자동 감지를 지원합니다. 출발어 코드를 지정하지 않으면 Document Translate에서 언어를 감지합니다. 감지된 언어는 detectedLanguageCode 필드의 출력에 포함됩니다.

Vertex AI Translation 사전 학습된 API에 요청합니다.

curl

curl 요청을 하려면 다음 단계를 따르세요.

  1. 인증 토큰 가져오기

  2. 요청을 합니다.

echo '{"parent": "projects/PROJECT_ID","source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "content": "'$(base64 -w 0 INPUT_FILE_PATH)'" }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true"}' | curl --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • SOURCE_LANGUAGE: 문서가 작성된 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
  • TARGET_LANGUAGE: 문서를 번역할 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
  • INPUT_FILE_PATH: 로컬 문서 파일의 경로입니다.
  • TOKEN: 획득한 인증 토큰입니다.
  • ENDPOINT: 조직에서 사용하는 Vertex AI Translation 엔드포인트입니다. 자세한 내용은 서비스 상태 및 엔드포인트 보기를 참고하세요.

문서 일괄 번역

일괄 번역을 사용하면 요청 한 번으로 여러 파일을 여러 언어로 번역할 수 있습니다. 요청별로 총 콘텐츠 크기가 최대 1GB 또는 1억 개의 유니코드 코드포인트인 파일을 최대 100개까지 전송할 수 있습니다(둘 중 먼저 도달하는 한도 기준). 언어별로 특정 번역 모델을 지정할 수 있습니다.

자세한 내용은 batchTranslateDocument를 참조하세요.

여러 문서 번역하기

다음 예시에는 여러 입력 구성이 포함되어 있습니다. 각 입력 구성은 스토리지 버킷의 파일을 가리키는 포인터입니다.

Vertex AI Translation 사전 학습된 API에 요청합니다.

curl

curl 요청을 하려면 다음 단계를 따르세요.

  1. 다음 요청 본문을 request.json 파일에 저장합니다.

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE", ...],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_1"
          }
        },
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_2"
          }
        },
        ...
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      }
    }
    

    다음을 바꿉니다.

    • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • TARGET_LANGUAGE: 입력 문서를 번역할 도착어 또는 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • INPUT_FILE_PATH: 하나 이상의 입력 문서의 스토리지 버킷 위치 및 파일 이름입니다.
    • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 스토리지 버킷 위치입니다.
  2. 인증 토큰 가져오기

  3. 요청을 합니다.

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    다음을 바꿉니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}

원본 PDF 파일 번역 및 변환

다음 예시에서는 원본 PDF 파일을 번역하여 DOCX 파일로 변환합니다. 다양한 파일 형식의 입력을 여러 개 지정할 수 있습니다. 원본 PDF 파일일 필요는 없습니다. 그러나 스캔된 PDF 파일은 변환을 포함할 때 포함될 수 없습니다. 요청이 거부되고 번역이 수행되지 않습니다. 원본 PDF 파일만 번역되고 DOCX 파일로 변환됩니다. 예를 들어 PPTX 파일이 포함되어 있으면 번역되고 PPTX 파일로 반환됩니다.

정기적으로 스캔된 PDF 파일과 원본 PDF 파일이 혼합된 파일을 번역하는 경우 이러한 파일을 별도의 버킷으로 구성하는 것이 좋습니다. 이렇게 하면 일괄 번역 및 변환을 요청할 때 개별 파일을 제외할 필요 없이 스캔된 PDF 파일이 포함된 버킷을 제외할 수 있습니다.

Vertex AI Translation 사전 학습된 API에 요청합니다.

curl

curl 요청을 하려면 다음 단계를 따르세요.

  1. 다음 요청 본문을 request.json 파일에 저장합니다.

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE", ...],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_1"
          }
        },
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH_2"
          }
        },
        ...
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      },
      "format_conversions": {
        "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      }
    }
    

    다음을 바꿉니다.

    • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • TARGET_LANGUAGE: 입력 문서를 번역할 도착어 또는 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • INPUT_FILE_PATH: 하나 이상의 입력 문서의 스토리지 버킷 위치 및 파일 이름입니다.
    • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 스토리지 버킷 위치입니다.
  2. 인증 토큰 가져오기

  3. 요청을 합니다.

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    다음을 바꿉니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}

용어집 사용

도메인별 용어를 처리하기 위한 용어집을 포함할 수 있습니다. 용어집을 지정하는 경우 출발어를 지정해야 합니다. 다음 예시에서는 용어집을 사용합니다. 자체 용어집과 함께 최대 10개까지 대상 언어를 지정할 수 있습니다.

일부 도착어에 용어집을 지정하면 시스템은 지정되지 않은 언어에 용어집을 사용하지 않습니다.

Vertex AI Translation 사전 학습된 API에 요청합니다.

curl

curl 요청을 하려면 다음 단계를 따르세요.

  1. 다음 요청 본문을 request.json 파일에 저장합니다.

    {
      "source_language_code": "SOURCE_LANGUAGE",
      "target_language_codes": ["TARGET_LANGUAGE", ...],
      "input_configs": [
        {
          "s3_source": {
            "input_uri": "s3://INPUT_FILE_PATH"
          }
        }
      ],
      "output_config": {
        "s3_destination": {
          "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX"
        }
      },
      "glossaries": {
        "TARGET_LANGUAGE": {
          "glossary": "projects/GLOSSARY_PROJECT_ID"
        },
        ...
      }
    }
    

    다음을 바꿉니다.

    • SOURCE_LANGUAGE: 입력 문서의 언어 코드입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • TARGET_LANGUAGE: 입력 문서를 번역할 도착어 또는 언어입니다. 지원되는 언어 및 해당 언어 코드 목록을 참고하세요.
    • INPUT_FILE_PATH: 하나 이상의 입력 문서의 스토리지 버킷 위치 및 파일 이름입니다.
    • OUTPUT_FILE_PREFIX: 모든 출력 문서가 저장되는 스토리지 버킷 위치입니다.
    • GLOSSARY_PROJECT_ID: 용어집이 있는 프로젝트 ID입니다.
  2. 인증 토큰 가져오기

  3. 요청을 합니다.

    curl -X POST \
      -H "Authorization: Bearer TOKEN" \
      -H "Content-Type: application/json; charset=utf-8" \
      -d @request.json \
      "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
    

    다음을 바꿉니다.

응답에는 장기 실행 작업의 ID가 포함됩니다.

{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
  "@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
  "state": "RUNNING"
}
}