Los servicios Vertex AI Translation y Reconocimiento óptico de caracteres (OCR) se combinan para ofrecer una función de procesamiento de documentos llamada Document Translate.
Document Translate traduce directamente documentos con formato, como archivos PDF. En comparación con las traducciones de texto, esta función conserva el formato y el diseño originales de los documentos traducidos, lo que te ayuda a mantener gran parte del contexto original, como los saltos de párrafo.
Traductor de documentos permite traducir documentos en línea, desde contenedores de almacenamiento y por lotes.
En esta página se explica cómo usar de forma interactiva la función de procesamiento de documentos en Google Distributed Cloud (GDC) air-gapped para traducir documentos y conservar su formato.
Formatos admitidos
Traductor de documentos admite los siguientes tipos de archivo de entrada y sus tipos de archivo de salida asociados:
Entradas | Tipo MIME del documento | Salida |
---|---|---|
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
Traductor de documentos admite archivos PDF originales y escaneados, incluidas las traducciones a idiomas que se escriben de derecha a izquierda y viceversa. Además, Traductor de documentos conserva los hiperenlaces, el tamaño de fuente y el color de fuente de los archivos.
Antes de empezar
Para poder empezar a usar la función de procesamiento de documentos, debes tener un proyecto llamado dt-project
. El recurso personalizado del proyecto debe tener el siguiente aspecto:
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 preentrenadas de traducción y OCR de Vertex AI y tener las credenciales adecuadas. Te recomendamos que instales las bibliotecas de 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 el artículo Configurar un proyecto de traducción.
Traducir un documento de un segmento de almacenamiento
Para traducir un documento almacenado en un segmento, debes usar la API Vertex AI Translation.
En esta sección se describe cómo traducir un documento de un contenedor y almacenar el resultado en otra ruta de contenedor de salida. La respuesta también devuelve un flujo de bytes. Puedes especificar el tipo MIME. Si no lo haces, Traductor de documentos lo determinará mediante la extensión del archivo de entrada.
Document Translate admite la detección automática del idioma de los documentos almacenados en contenedores. Si no especificas un código de idioma de origen, Traducción de documentos detectará el idioma por su cuenta. El idioma detectado se incluye en el resultado en el campo detectedLanguageCode
.
Sigue estos pasos para traducir un documento de un segmento de almacenamiento:
- Configura la CLI de gdcloud para el almacenamiento de objetos.
Crea un segmento de almacenamiento en el espacio de nombres
dt-project
. Usa una clase de almacenamientoStandard
.Para crear el segmento de almacenamiento, implementa 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
Concede los permisos
read
ywrite
en el segmento a la cuenta de servicio (ai-translation-system-sa
) que usa el servicio de traducción de Vertex AI.Puedes seguir estos pasos para crear el rol y el enlace de rol mediante recursos personalizados:
Crea el rol desplegando 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 el enlace de rol desplegando 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 segmento de almacenamiento que has creado. Para obtener más información, consulta Subir y descargar objetos de almacenamiento en proyectos.
Haz una solicitud a la API pre-trained Translation de Vertex AI:
curl
Para hacer una solicitud de
curl
, sigue estos pasos: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
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.SOURCE_LANGUAGE
: el idioma en el que está escrito el documento. Consulta la lista de idiomas admitidos y sus códigos correspondientes.TARGET_LANGUAGE
: el idioma o los idiomas a los que quieres traducir el documento. Consulta la lista de idiomas admitidos y sus códigos correspondientes.INPUT_FILE_PATH
: la ruta del archivo de tu documento en el contenedor de almacenamiento.
Modifica el valor de
mime_type
según tu documento.Haz la solicitud:
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
Haz los cambios siguientes:
TOKEN
: el token de autenticación que has obtenido.ENDPOINT
: el endpoint de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID
: tu ID de proyecto.
Traducir un documento en línea
En esta sección se describe cómo enviar un documento insertado como parte de la solicitud de la API. Debes incluir el tipo MIME de las traducciones de documentos insertados.
Traductor de documentos admite la detección automática del idioma para las traducciones de texto insertado. Si no especificas un código de idioma de origen, Traducción de documentos detectará el idioma por su cuenta. El idioma detectado se incluye en la salida en el campo detectedLanguageCode
.
Haz una solicitud a la API pre-trained Translation de Vertex AI:
curl
Para hacer una solicitud de curl
, sigue estos pasos:
Haz 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/locations/PROJECT_ID:translateDocument
Haz los cambios siguientes:
PROJECT_ID
: tu ID de proyecto.SOURCE_LANGUAGE
: el idioma en el que está escrito el documento. Consulta la lista de idiomas admitidos y sus códigos correspondientes.TARGET_LANGUAGE
: el idioma o los idiomas a los que quieres traducir el documento. Consulta la lista de idiomas admitidos y sus códigos correspondientes.INPUT_FILE_PATH
: la ruta del archivo de tu documento en local.TOKEN
: el token de autenticación que has obtenido.ENDPOINT
: el endpoint de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.
Traducir documentos por lotes
La traducción por lotes te permite traducir varios archivos a varios idiomas en una sola solicitud. En 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, lo que se alcance primero. Puedes especificar un modelo de traducción concreto para cada idioma.
Para obtener más información, consulta batchTranslateDocument
.
Traducir varios documentos
En el siguiente ejemplo se incluyen varias configuraciones de entrada. Cada configuración de entrada es un puntero a un archivo de un contenedor de almacenamiento.
Haz una solicitud a la API pre-trained Translation de Vertex AI:
curl
Para hacer una solicitud de curl
, sigue estos pasos:
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" } } }
Haz los cambios siguientes:
SOURCE_LANGUAGE
: el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.TARGET_LANGUAGE
: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.INPUT_FILE_PATH
: la ubicación del segmento de almacenamiento y el nombre de archivo de uno o varios documentos de entrada.OUTPUT_FILE_PREFIX
: la ubicación del contenedor de almacenamiento donde se almacenan todos los documentos de salida.
Haz 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/locations/PROJECT_ID:batchTranslateDocument"
Haz los cambios siguientes:
TOKEN
: el token de autenticación que has obtenido.ENDPOINT
: el endpoint de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID
: tu ID de 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"
}
}
Traducir y convertir un archivo PDF original
En el siguiente ejemplo se traduce y se convierte un archivo PDF original en un archivo DOCX. Puedes especificar varias entradas de distintos tipos de archivo. No tienen por qué ser archivos PDF originales. Sin embargo, no se pueden incluir archivos PDF escaneados al incluir una conversión. La solicitud se rechaza y no se realiza ninguna traducción. Solo se traducen los archivos PDF originales y se convierten a archivos DOCX. Por ejemplo, si incluyes archivos PPTX, se traducirán y se devolverán como archivos PPTX.
Si sueles traducir una combinación de archivos PDF escaneados y originales, te recomendamos que los organices en segmentos independientes. De esta forma, cuando solicites una traducción y conversión en lote, podrás excluir el contenedor que contiene los archivos PDF escaneados en lugar de tener que excluir archivos concretos.
Haz una solicitud a la API pre-trained Translation de Vertex AI:
curl
Para hacer una solicitud de curl
, sigue estos pasos:
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" } }
Haz los cambios siguientes:
SOURCE_LANGUAGE
: el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.TARGET_LANGUAGE
: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.INPUT_FILE_PATH
: la ubicación del segmento de almacenamiento y el nombre de archivo de uno o varios documentos de entrada.OUTPUT_FILE_PREFIX
: la ubicación del contenedor de almacenamiento donde se almacenan todos los documentos de salida.
Haz 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/locations/PROJECT_ID:batchTranslateDocument"
Haz los cambios siguientes:
TOKEN
: el token de autenticación que has obtenido.ENDPOINT
: el endpoint de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID
: tu ID de 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"
}
}
Usar un glosario
Puedes incluir un glosario para gestionar 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 de destino con su propio glosario.
Si especifica un glosario para algunos idiomas de destino, el sistema no usará ningún glosario para los idiomas no especificados.
Haz una solicitud a la API pre-trained Translation de Vertex AI:
curl
Para hacer una solicitud de curl
, sigue estos pasos:
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" }, ... } }
Haz los cambios siguientes:
SOURCE_LANGUAGE
: el código de idioma de los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.TARGET_LANGUAGE
: el idioma o los idiomas de destino a los que se traducirán los documentos de entrada. Consulta la lista de idiomas admitidos y sus códigos correspondientes.INPUT_FILE_PATH
: la ubicación del segmento de almacenamiento y el nombre de archivo de uno o varios documentos de entrada.OUTPUT_FILE_PREFIX
: la ubicación del contenedor de almacenamiento donde se almacenan todos los documentos de salida.GLOSSARY_PROJECT_ID
: el ID del proyecto en el que se encuentra la glosario.
Haz 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/locations/PROJECT_ID:batchTranslateDocument"
Haz los cambios siguientes:
TOKEN
: el token de autenticación que has obtenido.ENDPOINT
: el endpoint de Vertex AI Translation que usa tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID
: tu ID de 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"
}
}