Os serviços Vertex AI Translation e Reconhecimento óptico de caracteres (OCR) se combinam para oferecer um recurso de processamento de documentos chamado Document Translate.
A Document Translation traduz diretamente documentos formatados, como arquivos PDF. Em comparação com traduções de texto simples, o recurso preserva a formatação e o layout originais nos documentos traduzidos, ajudando você a reter grande parte do contexto original, como quebras de parágrafo.
A Tradução de documentos é compatível com traduções inline, de buckets de armazenamento e em lote.
Esta página orienta você em uma experiência interativa usando o recurso de processamento de documentos no Google Distributed Cloud (GDC) isolado para traduzir documentos e preservar o formato deles.
Formatos compatíveis
A Document Translation é compatível com os seguintes tipos de arquivo de entrada e os tipos de arquivo de saída associados:
Entradas | Tipo de documento MIME | Saída |
---|---|---|
application/pdf |
PDF e 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 |
Traduções de documentos originais e digitalizados em PDF
A Tradução de documentos é compatível com arquivos PDF originais e digitalizados, incluindo traduções para ou de idiomas da direita para a esquerda. Além disso, a Tradução de documentos preserva hiperlinks, tamanho e cor da fonte dos arquivos.
Antes de começar
Antes de começar a usar o recurso de processamento de documentos, você precisa ter um projeto chamado dt-project
. O recurso personalizado do projeto precisa ser semelhante ao exemplo a seguir:
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
Além disso, é necessário ativar as APIs pré-treinadas de tradução e OCR da Vertex AI e ter as credenciais adequadas. Considere instalar as bibliotecas de cliente de tradução e OCR da Vertex AI para facilitar as chamadas de API. Para mais informações sobre pré-requisitos, consulte Configurar um projeto de tradução.
Traduzir um documento de um bucket de armazenamento
Para traduzir um documento armazenado em um bucket, use a API Translation da Vertex AI.
Esta seção descreve como traduzir um documento de um bucket e armazenar o resultado em outro caminho de bucket de saída. A resposta também retorna um fluxo de bytes. É possível especificar o tipo MIME. Caso contrário, a Document Translation determina a extensão usando a extensão do arquivo de entrada.
A Tradução de documentos oferece suporte à detecção automática de idiomas para documentos armazenados em buckets. Se você
não especificar um código de idioma de origem, a Document Translation vai detectar o idioma para você. O
idioma detectado está incluído na saída do campo detectedLanguageCode
.
Siga estas etapas para traduzir um documento de um bucket de armazenamento:
- Configure a CLI gdcloud para armazenamento de objetos.
Crie um bucket de armazenamento no namespace
dt-project
. Use uma classe de armazenamentoStandard
.É possível criar o bucket de armazenamento implantando um recurso
Bucket
no namespacedt-project
: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
Conceda permissões
read
ewrite
no bucket à conta de serviço (ai-translation-system-sa
) usada pelo serviço Vertex AI Translation.Siga estas etapas para criar a função e a vinculação de função usando recursos personalizados:
Implante um recurso
Role
no namespacedt-project
para criar a função: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
Crie a vinculação de função implantando um recurso
RoleBinding
no namespacedt-project
: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
Faça upload do documento para o bucket de armazenamento que você criou. Para mais informações, consulte Fazer upload e download de objetos de armazenamento em projetos.
Faça uma solicitação à API pré-treinada Vertex AI Translation:
curl
Siga estas etapas para fazer uma solicitação
curl
:Salve o seguinte arquivo
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
Substitua:
PROJECT_ID
: o ID do projeto.SOURCE_LANGUAGE
: o idioma em que o documento foi escrito. Confira a lista de idiomas aceitos e os respectivos códigos.TARGET_LANGUAGE
: o idioma ou os idiomas para os quais você quer traduzir o documento. Confira a lista de idiomas aceitos e os respectivos códigos.INPUT_FILE_PATH
: o caminho do arquivo de documento no bucket de armazenamento.
Modifique o valor de
mime_type
de acordo com seu documento.Faça a solicitação:
curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID:translateDocument < request.json
Substitua:
TOKEN
: o token de autenticação que você recebeu.ENDPOINT
: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.PROJECT_ID
: o ID do projeto.
Traduzir um documento in-line
Nesta seção, descrevemos como enviar um documento in-line como parte da solicitação de API. É necessário incluir o tipo MIME para traduções de documentos inline.
O Document Translate oferece suporte à detecção automática de idioma para traduções de texto inline. Se você não
especificar um código de idioma de origem, a Document Translation vai detectar o idioma para você. O idioma detectado está incluído na saída do campo detectedLanguageCode
.
Faça uma solicitação à API pré-treinada Vertex AI Translation:
curl
Siga estas etapas para fazer uma solicitação curl
:
Faça a solicitação:
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:translateDocument
Substitua:
PROJECT_ID
: o ID do projeto.SOURCE_LANGUAGE
: o idioma em que o documento foi escrito. Confira a lista de idiomas aceitos e os respectivos códigos.TARGET_LANGUAGE
: o idioma ou os idiomas para os quais você quer traduzir o documento. Confira a lista de idiomas aceitos e os respectivos códigos.INPUT_FILE_PATH
: o caminho do arquivo de documento localmente.TOKEN
: o token de autenticação que você recebeu.ENDPOINT
: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.
Traduzir documentos em lote
A tradução em lote permite que você traduza vários arquivos em vários idiomas em uma única solicitação. Para cada solicitação, é possível enviar até 100 arquivos com tamanho de conteúdo total de até 1 GB ou 100 milhões de pontos de código Unicode, o limite que for atingido primeiro. É possível especificar um modelo de tradução específico para cada idioma.
Para ver mais informações, consulte batchTranslateDocument
.
Traduzir vários documentos
O exemplo a seguir inclui várias configurações de entrada. Cada configuração de entrada é um ponteiro para um arquivo em um bucket de armazenamento.
Faça uma solicitação à API pré-treinada Vertex AI Translation:
curl
Siga estas etapas para fazer uma solicitação curl
:
Salve o corpo da solicitação a seguir em um arquivo chamado
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" } } }
Substitua:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Confira a lista de idiomas aceitos e os respectivos códigos.TARGET_LANGUAGE
: os idiomas de destino para os quais os documentos de entrada serão traduzidos. Confira a lista de idiomas aceitos e os respectivos códigos.INPUT_FILE_PATH
: o local do bucket de armazenamento e o nome do arquivo de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: o local do bucket de armazenamento em que todos os documentos de saída são armazenados.
Faça a solicitação:
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:batchTranslateDocument"
Substitua:
TOKEN
: o token de autenticação que você recebeu.ENDPOINT
: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.PROJECT_ID
: o ID do projeto.
A resposta contém o ID de uma operação de longa duração:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Traduzir e converter um arquivo PDF original
O exemplo a seguir traduz e converte um arquivo PDF original em um arquivo DOCX. Você pode especificar várias entradas de vários tipos de arquivo. Nem todos precisam ser arquivos PDF originais. No entanto, os arquivos PDF digitalizados não podem ser incluídos ao incluir uma conversão: a solicitação será rejeitada, e nenhuma tradução será feita. Somente arquivos PDF originais são traduzidos e convertidos em arquivos DOCX. Por exemplo, se você incluir arquivos PPTX, eles serão traduzidos e retornados como arquivos PPTX.
Se você traduz regularmente uma combinação de arquivos PDF nativos e digitalizados, recomendamos organizá-los em buckets separados. Dessa forma, ao solicitar uma conversão e uma tradução em lote, é possível excluir o bucket que contém arquivos PDF digitalizados em vez de excluir arquivos individuais.
Faça uma solicitação à API pré-treinada Vertex AI Translation:
curl
Siga estas etapas para fazer uma solicitação curl
:
Salve o corpo da solicitação a seguir em um arquivo chamado
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" } }
Substitua:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Confira a lista de idiomas aceitos e os respectivos códigos.TARGET_LANGUAGE
: os idiomas de destino para os quais os documentos de entrada serão traduzidos. Confira a lista de idiomas aceitos e os respectivos códigos.INPUT_FILE_PATH
: o local do bucket de armazenamento e o nome do arquivo de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: o local do bucket de armazenamento em que todos os documentos de saída são armazenados.
Faça a solicitação:
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:batchTranslateDocument"
Substitua:
TOKEN
: o token de autenticação que você recebeu.ENDPOINT
: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.PROJECT_ID
: o ID do projeto.
A resposta contém o ID de uma operação de longa duração:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Usar um glossário
É possível incluir um glossário para lidar com a terminologia específica do domínio. Se você especificar um glossário, também precisará especificar o idioma de origem. O exemplo a seguir usa um glossário. É possível especificar até 10 idiomas de destino com os próprios glossários.
Se você especificar um glossário para alguns idiomas de destino, o sistema não usará nenhum glossário para os idiomas não especificados.
Faça uma solicitação à API pré-treinada Vertex AI Translation:
curl
Siga estas etapas para fazer uma solicitação curl
:
Salve o corpo da solicitação a seguir em um arquivo chamado
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" }, ... } }
Substitua:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Confira a lista de idiomas aceitos e os respectivos códigos.TARGET_LANGUAGE
: os idiomas de destino para os quais os documentos de entrada serão traduzidos. Confira a lista de idiomas aceitos e os respectivos códigos.INPUT_FILE_PATH
: o local do bucket de armazenamento e o nome do arquivo de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: o local do bucket de armazenamento em que todos os documentos de saída são armazenados.GLOSSARY_PROJECT_ID
: o ID do projeto em que o glossário está localizado.
Faça a solicitação:
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:batchTranslateDocument"
Substitua:
TOKEN
: o token de autenticação que você recebeu.ENDPOINT
: o endpoint da Vertex AI Translation que você usa na sua organização. Para mais informações, consulte o status do serviço e os endpoints.PROJECT_ID
: o ID do projeto.
A resposta contém o ID de uma operação de longa duração:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}