Os serviços Vertex AI Translation e reconhecimento ótico de carateres (OCR) combinam-se para oferecer uma funcionalidade de processamento de documentos denominada Document Translate.
A Tradução de documentos traduz diretamente documentos formatados, como ficheiros PDF. Em comparação com as traduções de texto simples, a funcionalidade preserva a formatação e o esquema originais nos seus documentos traduzidos, o que ajuda a reter grande parte do contexto original, como as quebras de parágrafos.
O Document Translate suporta traduções de documentos incorporadas, de segmentos de armazenamento e em lote.
Esta página explica-lhe uma experiência interativa com a funcionalidade de processamento de documentos no Google Distributed Cloud (GDC) com isolamento de ar para traduzir documentos, preservando o respetivo formato.
Formatos suportados
O Document Translate suporta os seguintes tipos de ficheiros de entrada e os respetivos tipos de ficheiros de saída associados:
Entradas | Tipo MIME do documento | Saída |
---|---|---|
application/pdf |
PDF, DOCX | |
DOC | application/msword |
DOC, 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 suporta ficheiros PDF originais e digitalizados, incluindo traduções para ou de idiomas da direita para a esquerda. Além disso, o Document Translate preserva as hiperligações, o tamanho do tipo de letra e a cor do tipo de letra dos ficheiros.
Antes de começar
Antes de poder começar a usar a funcionalidade de processamento de documentos, tem de ter um projeto com o nome dt-project
. O recurso personalizado do projeto tem de ter o seguinte aspeto
no exemplo seguinte:
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, tem de ativar as APIs pré-preparadas de tradução e OCR do Vertex AI e ter as credenciais adequadas. Considere instalar as bibliotecas cliente de tradução e OCR da Vertex AI para facilitar as chamadas API. Para mais informações sobre os pré-requisitos, consulte o artigo Configure um projeto de tradução.
Traduza um documento a partir de um contentor de armazenamento
Para traduzir um documento armazenado num contentor, use a API Vertex AI Translation.
Esta secção descreve como traduzir um documento de um contentor e armazenar o resultado noutro caminho do contentor de saída. A resposta também devolve um fluxo de bytes. Pode especificar o tipo MIME. Caso contrário, o Document Translate determina-o através da extensão do ficheiro de entrada.
O Document Translate suporta a deteção automática de idiomas para documentos armazenados em contentores. Se não especificar um código de idioma de origem, o Document Translate deteta o idioma por si. O idioma detetado é incluído na saída no campo detectedLanguageCode
.
Siga estes passos para traduzir um documento a partir de um contentor de armazenamento:
- Configure a CLI gcloud para o armazenamento de objetos.
Crie um contentor de armazenamento no namespace
dt-project
. Use umaStandard
classe de armazenamento.Pode criar o contentor de armazenamento implementando um recurso
Bucket
no espaço de nomesdt-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 autorizações
read
ewrite
no contentor à conta de serviço (ai-translation-system-sa
) usada pelo serviço Vertex AI Translation.Pode seguir estes passos para criar a função e a associação de funções através de recursos personalizados:
Crie a função implementando um recurso
Role
no espaço de nomesdt-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-object
Crie a associação de funções implementando um recurso
RoleBinding
no espaço de nomesdt-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
Carregue o documento para o contentor de armazenamento que criou. Para mais informações, consulte o artigo Carregue e transfira objetos de armazenamento em projetos.
Faça um pedido à API pré-treinada Vertex AI Translation:
curl
Siga estes passos para fazer um pedido
curl
:Guarde o seguinte ficheiro
request.json
: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" } EOF
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.SOURCE_LANGUAGE
: o idioma em que o documento está escrito. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE
: o idioma ou os idiomas para os quais quer traduzir o seu documento. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_FILE_PATH
: o caminho do ficheiro do documento no contentor de armazenamento.
Modifique o valor
mime_type
de acordo com o seu documento.Faça o pedido:
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
Substitua o seguinte:
TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final do Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID
: o ID do seu projeto.
Traduza um documento inline
Esta secção descreve como enviar um documento inline como parte do pedido da API. Tem de incluir o tipo MIME para traduções de documentos inline.
O Document Translate suporta a deteção automática de idiomas para traduções de texto inline. Se não especificar um código do idioma de origem, o Document Translate deteta o idioma por si. O idioma detetado é incluído no resultado no campo detectedLanguageCode
.
Faça um pedido à API pré-treinada Vertex AI Translation:
curl
Siga estes passos para fazer um pedido curl
:
Faça o pedido:
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 o seguinte:
PROJECT_ID
: o ID do seu projeto.SOURCE_LANGUAGE
: o idioma em que o documento está escrito. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE
: o idioma ou os idiomas para os quais quer traduzir o seu documento. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_FILE_PATH
: o caminho do ficheiro do documento localmente.TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final do Vertex AI Translation que usa para a sua organização. Para mais informações, veja o estado do serviço e os pontos finais
Traduza documentos em lote
A tradução em lote permite-lhe traduzir vários ficheiros para vários idiomas num único pedido. Para cada pedido, pode enviar até 100 ficheiros com um tamanho total de conteúdo de até 1 GB ou 100 milhões de pontos de código Unicode, consoante o limite que for atingido primeiro. Pode especificar um modelo de tradução específico para cada idioma.
Para mais informações, consulte batchTranslateDocument
.
Traduza vários documentos
O exemplo seguinte inclui várias configurações de entrada. Cada configuração de entrada é um ponteiro para um ficheiro num contentor de armazenamento.
Faça um pedido à API pré-treinada Vertex AI Translation:
curl
Siga estes passos para fazer um pedido curl
:
Guarde o seguinte corpo do pedido num ficheiro denominado
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 o seguinte:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE
: o idioma ou os idiomas de destino para os quais os documentos de entrada devem ser traduzidos. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_FILE_PATH
: a localização do contentor de armazenamento e o nome do ficheiro de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: a localização do contentor de armazenamento onde todos os documentos de saída são armazenados.
Faça o pedido:
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 o seguinte:
TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final do Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID
: o ID do seu 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"
}
}
Traduza e converta um ficheiro PDF original
O exemplo seguinte traduz e converte um ficheiro PDF original num ficheiro DOCX. Pode especificar várias entradas de vários tipos de ficheiros. Não têm de ser todos ficheiros PDF originais. No entanto, não é possível incluir ficheiros PDF digitalizados quando inclui uma conversão. O pedido é rejeitado e não são feitas traduções. Apenas os ficheiros PDF originais são traduzidos e convertidos em ficheiros DOCX. Por exemplo, se incluir ficheiros PPTX, estes são traduzidos e devolvidos como ficheiros PPTX.
Se traduz regularmente uma combinação de ficheiros PDF digitalizados e originais, recomendamos que os organize em contentores separados. Desta forma, quando pedir uma tradução e uma conversão em lote, pode excluir o contentor que contém ficheiros PDF digitalizados em vez de ter de excluir ficheiros individuais.
Faça um pedido à API pré-treinada Vertex AI Translation:
curl
Siga estes passos para fazer um pedido curl
:
Guarde o seguinte corpo do pedido num ficheiro denominado
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 o seguinte:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE
: o idioma ou os idiomas de destino para os quais os documentos de entrada devem ser traduzidos. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_FILE_PATH
: a localização do contentor de armazenamento e o nome do ficheiro de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: a localização do contentor de armazenamento onde todos os documentos de saída são armazenados.
Faça o pedido:
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 o seguinte:
TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final do Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID
: o ID do seu 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"
}
}
Use um glossário
Pode incluir um glossário para lidar com a terminologia específica do domínio. Se especificar um glossário, tem de especificar o idioma de origem. O exemplo seguinte usa um glossário. Pode especificar até 10 idiomas de destino com o seu próprio glossário.
Se especificar um glossário para alguns idiomas de destino, o sistema não usa nenhum glossário para os idiomas não especificados.
Faça um pedido à API pré-treinada Vertex AI Translation:
curl
Siga estes passos para fazer um pedido curl
:
Guarde o seguinte corpo do pedido num ficheiro denominado
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 o seguinte:
SOURCE_LANGUAGE
: o código do idioma dos documentos de entrada. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.TARGET_LANGUAGE
: o idioma ou os idiomas de destino para os quais os documentos de entrada devem ser traduzidos. Consulte a lista de idiomas suportados e os respetivos códigos de idioma.INPUT_FILE_PATH
: a localização do contentor de armazenamento e o nome do ficheiro de um ou mais documentos de entrada.OUTPUT_FILE_PREFIX
: a localização do contentor de armazenamento onde todos os documentos de saída são armazenados.GLOSSARY_PROJECT_ID
: o ID do projeto onde o glossário está localizado.
Faça o pedido:
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 o seguinte:
TOKEN
: o token de autenticação que obteve.ENDPOINT
: o ponto final do Vertex AI Translation que usa para a sua organização. Para mais informações, consulte o estado do serviço e os pontos finais.PROJECT_ID
: o ID do seu 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"
}
}