Los servicios de Vertex AI Translation y reconocimiento óptico de caracteres (OCR) se combinan para proporcionar una función de procesamiento de documentos llamada Document Translate.
La traducción de documentos traduce directamente documentos con formato, como archivos PDF. En comparación con las traducciones de texto sin formato, esta función conserva el formato y el diseño originales en los documentos traducidos, lo que te ayuda a conservar gran parte del contexto original, como las divisiones de los párrafos.
Document Translate admite traducciones de documentos en línea, desde buckets de almacenamiento y por lotes.
En esta página, se te guía a través de una experiencia interactiva en la que se usa la función de procesamiento de documentos en Google Distributed Cloud (GDC) aislado para traducir documentos y conservar su formato.
Formatos admitidos
Document Translation admite los siguientes tipos de archivos de entrada y sus tipos de archivos de salida asociados:
Entradas | Tipo de documento MIME | Resultado |
---|---|---|
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 |
Traducciones de documentos PDF originales y escaneados
Document Translation admite archivos PDF originales y escaneados, incluidas las traducciones en o desde idiomas que se leen de derecha a izquierda. Además, Document Translation conserva los hipervínculos, el tamaño de la fuente y el color de la fuente de los archivos.
Antes de comenzar
Antes de comenzar a usar la función de procesamiento de documentos, debes tener un proyecto llamado dt-project
. El recurso personalizado del proyecto debe verse como en el siguiente ejemplo:
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
Además, debes habilitar las APIs previamente entrenadas de Vertex AI Translation y OCR y tener las credenciales adecuadas. Considera instalar las bibliotecas cliente de Vertex AI Translation y OCR para facilitar las llamadas a la API. Para obtener más información sobre los requisitos previos, consulta Configura un proyecto de traducción.
Traduce un documento desde un bucket de almacenamiento
Para traducir un documento almacenado en un bucket, usa la API de Vertex AI Translation.
En esta sección, se describe cómo traducir un documento de un bucket y almacenar el resultado en otra ruta de acceso del bucket de salida. La respuesta también muestra un flujo de bytes. Puedes especificar el tipo de MIME. Si no lo haces, Document Translation lo determina con la extensión del archivo de entrada.
La Traducción de documentos admite la detección automática de idiomas para los documentos almacenados en buckets. Si no especificas un código de idioma de origen, Document Translation detecta el idioma por ti. El idioma detectado se incluye en el resultado del campo detectedLanguageCode
.
Sigue estos pasos para traducir un documento desde un bucket de almacenamiento:
- Configura la CLI de gcloud para el almacenamiento de objetos.
Crea un bucket de almacenamiento en el espacio de nombres
dt-project
. Usa una clase de almacenamientoStandard
.Puedes crear el bucket de almacenamiento implementando un recurso
Bucket
en el espacio de nombresdt-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
Otorga permisos de
read
ywrite
en el bucket a la cuenta de servicio (ai-translation-system-sa
) que usa el servicio de Vertex AI Translation.Puedes seguir estos pasos para crear el rol y la vinculación del rol con recursos personalizados:
Crea el rol implementando un recurso
Role
en el espacio de nombresdt-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
Crea la vinculación de rol implementando un recurso
RoleBinding
en el espacio de nombresdt-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
Sube el documento al bucket de almacenamiento que creaste. Para obtener más información, consulta Cómo subir y descargar objetos de almacenamiento en proyectos.
Realiza una solicitud a la API previamente entrenada de Vertex AI Translation:
curl
Sigue estos pasos para realizar una solicitud de
curl
:Guarda el siguiente archivo
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
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoSOURCE_LANGUAGE
: Es el idioma en el que está escrito tu documento. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE
: El idioma o los idiomas a los que deseas traducir tu documento. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.INPUT_FILE_PATH
: Es la ruta de acceso al archivo de tu documento en el bucket de almacenamiento.
Modifica el valor de
mime_type
según tu documento.Realiza la solicitud:
curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID:translateDocument < request.json
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID
: el ID de tu proyecto
Traduce un documento intercalado
En esta sección, se describe cómo enviar un documento intercalado como parte de la solicitud de la API. Debes incluir el tipo de MIME para traducciones de documentos intercalados.
La función Traducción de documentos admite la detección automática de idiomas para las traducciones de texto intercaladas. Si no especificas un código de idioma de origen, Document Translation detecta el idioma por ti. El idioma detectado se incluye en el resultado del campo detectedLanguageCode
.
Realiza una solicitud a la API previamente entrenada de Vertex AI Translation:
curl
Sigue estos pasos para realizar una solicitud de curl
:
Realiza la solicitud:
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
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoSOURCE_LANGUAGE
: Es el idioma en el que está escrito tu documento. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE
: El idioma o los idiomas a los que deseas traducir tu documento. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.INPUT_FILE_PATH
: Es la ruta de acceso local a tu archivo de documento.TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es el extremo de Vertex AI Translation que usas para tu organización. Consulta el estado y los extremos del servicio para obtener más información.
Traduce documentos por lotes
La traducción por lotes te permite traducir varios archivos a varios idiomas en una sola solicitud. Para cada solicitud, puedes enviar hasta 100 archivos con un tamaño de contenido total de hasta 1 GB o 100 millones de puntos de código Unicode, el límite que se alcance primero. Puedes especificar un modelo de traducción particular para cada idioma.
Para obtener más información, consulta batchTranslateDocument
.
Traduce varios documentos
En el siguiente ejemplo, se incluyen varios parámetros de configuración de entrada. Cada configuración de entrada es un puntero a un archivo en un bucket de almacenamiento.
Realiza una solicitud a la API previamente entrenada de Vertex AI Translation:
curl
Sigue estos pasos para realizar una solicitud de curl
:
Guarda el siguiente cuerpo de la solicitud en un archivo llamado
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" } } }
Reemplaza lo siguiente:
SOURCE_LANGUAGE
: Es el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE
: Idioma o idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.INPUT_FILE_PATH
: La ubicación del bucket de almacenamiento y el nombre de archivo de uno o más documentos de entrada.OUTPUT_FILE_PREFIX
: Es la ubicación del bucket de almacenamiento en el que se almacenan todos los documentos de salida.
Realiza la solicitud:
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"
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID
: el ID de tu proyecto
La respuesta contiene el ID de una operación de larga duración:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Traduce y convierte un archivo PDF original
En el siguiente ejemplo, se traduce un archivo PDF original y se convierte en un archivo DOCX. Puedes especificar varias entradas de varios tipos de archivos (no todos tienen que ser archivos PDF originales). Sin embargo, los archivos PDF escaneados no se pueden incluir cuando se incluye una conversión; la solicitud se rechaza y no se realizan traducciones. Solo los archivos PDF originales se traducen y se convierten en archivos DOCX. Por ejemplo, si incluyes archivos PPTX, estos se traducen y se muestran como archivos PPTX.
Si traduces con frecuencia una combinación de archivos PDF originales y escaneados, te recomendamos que los organices en buckets independientes. De esta manera, cuando solicitas una traducción por lotes y una conversión, puedes excluir el bucket que contiene archivos PDF escaneados en lugar de tener que excluir archivos individuales.
Realiza una solicitud a la API previamente entrenada de Vertex AI Translation:
curl
Sigue estos pasos para realizar una solicitud de curl
:
Guarda el siguiente cuerpo de la solicitud en un archivo llamado
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" } }
Reemplaza lo siguiente:
SOURCE_LANGUAGE
: Es el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE
: Idioma o idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.INPUT_FILE_PATH
: La ubicación del bucket de almacenamiento y el nombre de archivo de uno o más documentos de entrada.OUTPUT_FILE_PREFIX
: Es la ubicación del bucket de almacenamiento en el que se almacenan todos los documentos de salida.
Realiza la solicitud:
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"
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID
: el ID de tu proyecto
La respuesta contiene el ID de una operación de larga duración:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Cómo usar un glosario
Puedes incluir un glosario para manejar la terminología específica del dominio. Si especificas un glosario, debes especificar el idioma de origen. En el siguiente ejemplo, se usa un glosario. Puedes especificar hasta 10 idiomas objetivo con su propio glosario.
Si especificas un glosario para algunos idiomas objetivo, el sistema no usa ningún glosario para los idiomas no especificados.
Realiza una solicitud a la API previamente entrenada de Vertex AI Translation:
curl
Sigue estos pasos para realizar una solicitud de curl
:
Guarda el siguiente cuerpo de la solicitud en un archivo llamado
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" }, ... } }
Reemplaza lo siguiente:
SOURCE_LANGUAGE
: Es el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.TARGET_LANGUAGE
: Idioma o idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.INPUT_FILE_PATH
: La ubicación del bucket de almacenamiento y el nombre de archivo de uno o más documentos de entrada.OUTPUT_FILE_PREFIX
: Es la ubicación del bucket de almacenamiento en el que se almacenan todos los documentos de salida.GLOSSARY_PROJECT_ID
: Es el ID del proyecto en el que se encuentra el glosario.
Realiza la solicitud:
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"
Reemplaza lo siguiente:
TOKEN
: El token de autenticación que obtuvisteENDPOINT
: Es el extremo de Vertex AI Translation que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID
: el ID de tu proyecto
La respuesta contiene el ID de una operación de larga duración:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}