Os serviços de tradução e reconhecimento óptico de caracteres (OCR, na sigla em inglês) da Vertex AI se combinam para oferecer um recurso de processamento de documentos chamado Document Translate.
O Document Translate traduz diretamente documentos formatados, como arquivos PDF. Em comparação com traduções de textosimples, 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.
O Document Translate oferece suporte a traduções de documentos 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, preservando a formatação.
Formatos compatíveis
O Document Translate oferece suporte aos seguintes tipos de arquivo de entrada e aos tipos de arquivo de saída associados:
| Entradas | Tipo de documento MIME | Saída |
|---|---|---|
application/pdf |
PDF e DOCX | |
| DOC | application/msword |
DOC e DOCX |
| DOCX | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
DOCX |
| PPT | application/vnd.ms-powerpoint |
PPT e PPTX |
| PPTX | application/vnd.openxmlformats-officedocument.presentationml.presentation |
PPTX |
| XLS | application/vnd.ms-excel |
XLS e XLSX |
| XLSX | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
XLSX |
Traduções de documentos PDF originais e digitalizados
O Document Translate oferece suporte a arquivos PDF originais e digitalizados, incluindo traduções para ou de idiomas da direita para a esquerda. Além disso, o Document Translate 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 os 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, o Document Translate determina a extensão usando a extensão do arquivo de entrada.
O Document Translate oferece suporte à detecção automática de idioma para documentos armazenados em buckets. Se você não especificar um código de idioma de origem, o Document Translate detectará o idioma para você. O idioma detectado é incluído na saída no 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
Bucketno 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: 90Conceda permissões
readewriteno bucket à conta de serviço (ai-translation-system-sa) usada pelo serviço de tradução da Vertex AI.Siga estas etapas para criar o papel e a vinculação de papéis usando recursos personalizados:
Crie o papel implantando um recurso
Roleno namespacedt-project: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-objectCrie a vinculação de papéis implantando um recurso
RoleBindingno 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: g-vai-translation-sie
Faça o 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 de tradução da Vertex AI:
curl
Siga estas etapas para fazer uma solicitação
curl:Salve o arquivo
request.jsona seguir:cat <<- EOF > request.json { "parent": "projects/PROJECT_ID/locations/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" } EOFSubstitua:
PROJECT_ID: o ID do projeto.SOURCE_LANGUAGE: o idioma em que o documento está escrito. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.TARGET_LANGUAGE: o idioma ou idiomas para os quais você quer traduzir o documento. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.INPUT_FILE_PATH: o caminho do arquivo de documento no bucket de armazenamento.
Modifique o valor
mime_typede acordo com o 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/locations/PROJECT_ID:translateDocument < request.jsonSubstitua:
TOKEN: o token de autenticação que você recebeu.ENDPOINT: o endpoint de tradução da Vertex AI que você usa na sua organização. Para mais informações, consulte Status e endpoints do serviço.PROJECT_ID: o ID do projeto.
Traduzir um documento inline
Esta seção descreve como enviar um documento inline 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, o Document Translate detectará o idioma para você. O idioma detectado é incluído na saída no campo detectedLanguageCode.
Faça uma solicitação à API pré-treinada de tradução da Vertex AI:
curl
Siga estas etapas para fazer uma solicitação curl:
Faça a solicitação:
echo '{"parent": "projects/PROJECT_ID/locations/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
Substitua:
PROJECT_ID: o ID do projeto.SOURCE_LANGUAGE: o idioma em que o documento está escrito. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.TARGET_LANGUAGE: o idioma ou idiomas para os quais você quer traduzir o documento. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.INPUT_FILE_PATH: o caminho do arquivo de documento localmente.TOKEN: o token de autenticação que você recebeu.ENDPOINT: o endpoint de tradução da Vertex AI que você usa na sua organização. Para mais informações, consulte Status e endpoints do serviço
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 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 de tradução da Vertex AI:
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 de idioma dos documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.TARGET_LANGUAGE: o idioma ou idiomas de destino para traduzir os documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.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/locations/PROJECT_ID:batchTranslateDocument"Substitua:
TOKEN: o token de autenticação que você recebeu.ENDPOINT: o endpoint de tradução da Vertex AI que você usa na sua organização. Para mais informações, consulte Status e endpoints do serviço.PROJECT_ID: o ID do projeto.
A resposta contém o ID para 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. É possível 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ê traduzir regularmente uma combinação de arquivos PDF digitalizados e originais, recomendamos que você os organize em buckets separados. Dessa forma, ao solicitar uma conversão e uma tradução em lote, é possível excluir facilmente o bucket que contém arquivos PDF digitalizados em vez de excluir arquivos individuais.
Faça uma solicitação à API pré-treinada de tradução da Vertex AI:
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 de idioma dos documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.TARGET_LANGUAGE: o idioma ou idiomas de destino para traduzir os documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.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/locations/PROJECT_ID:batchTranslateDocument"Substitua:
TOKEN: o token de autenticação que você recebeu.ENDPOINT: o endpoint de tradução da Vertex AI que você usa na sua organização. Para mais informações, consulte Status e endpoints do serviço.PROJECT_ID: o ID do projeto.
A resposta contém o ID para 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 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 o próprio glossário.
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 de tradução da Vertex AI:
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 de idioma dos documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.TARGET_LANGUAGE: o idioma ou idiomas de destino para traduzir os documentos de entrada. Consulte a lista de idiomas compatíveis e os respectivos códigos de idioma.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/locations/PROJECT_ID:batchTranslateDocument"Substitua:
TOKEN: o token de autenticação que você recebeu.ENDPOINT: o endpoint de tradução da Vertex AI que você usa na sua organização. Para mais informações, consulte Status e endpoints do serviço.PROJECT_ID: o ID do projeto.
A resposta contém o ID para 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"
}
}