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 umaStandardclasse de armazenamento.Pode criar o contentor de armazenamento implementando um recurso
Bucketno 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: 90Conceda autorizações
readewriteno 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
Roleno 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-objectCrie a associação de funções implementando um recurso
RoleBindingno 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" } EOFSubstitua 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_typede 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.jsonSubstitua 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.
Se estiver num ambiente de desenvolvimento, adicione a flag
--cacert CERT_NAMEao comando de pedidocurl. SubstituaCERT_NAMEpelo nome do ficheiro de certificado da CA, comoorg-1-trust-bundle-ca.cert. Para mais informações, consulte o artigo Gere o ficheiro do certificado da AC do conjunto de confiança num ambiente de desenvolvimento.
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
Se estiver num ambiente de desenvolvimento, adicione a flag --cacert
CERT_NAME ao comando de pedido curl. Substitua
CERT_NAME pelo nome do ficheiro de certificado da CA,
por exemplo, org-1-trust-bundle-ca.cert. Para mais informações, consulte o artigo
Gere o ficheiro do certificado da AC do conjunto de confiança num ambiente de desenvolvimento.
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.
503 "Batch Document translation is not implemented",
consulte os problemas conhecidos.
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"
}
}