Les services Vertex AI Translation et de reconnaissance optique des caractères (OCR) s'associent pour fournir une fonctionnalité de traitement de documents appelée "Document Translate".
Document Translate traduit directement les documents mis en forme, tels que les fichiers PDF. Par rapport aux traductions de texte brut, cette fonctionnalité conserve la mise en forme et la mise en page d'origine dans vos documents traduits, ce qui vous permet de conserver une grande partie du contexte d'origine, comme les sauts de paragraphe.
Document Translate est compatible avec les traductions de documents intégrées, à partir de buckets de stockage et par lots.
Cette page vous guide dans une expérience interactive utilisant la fonctionnalité de traitement de documents sur Google Distributed Cloud (GDC) air-gapped pour traduire des documents tout en conservant leur format.
Formats compatibles
Document Translate accepte les types de fichiers d'entrée et les types de fichiers de sortie associés suivants :
| Entrées | Type MIME du document | Résultat |
|---|---|---|
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 |
Traduction de documents PDF originaux et scannés
Document Translate est compatible avec les fichiers PDF originaux et scannés, y compris les traductions vers ou depuis les langues s'écrivant de droite à gauche. En outre, Document Translate conserve les liens hypertexte, la taille et la couleur de police des fichiers.
Avant de commencer
Avant de pouvoir utiliser la fonctionnalité de traitement de documents, vous devez disposer d'un projet nommé dt-project. La ressource personnalisée du projet doit ressembler à l'exemple suivant :
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
De plus, vous devez activer les API pré-entraînées Vertex AI Translation et OCR et disposer des identifiants appropriés. Envisagez d'installer les bibliothèques clientes Vertex AI Translation et OCR pour faciliter les appels d'API. Pour en savoir plus sur les prérequis, consultez Configurer un projet de traduction.
Traduire un document à partir d'un bucket de stockage
Pour traduire un document stocké dans un bucket, vous utilisez l'API Vertex AI Translation.
Cette section explique comment traduire un document à partir d'un bucket et stocker le résultat dans un autre chemin de bucket de sortie. La réponse renvoie également un flux d'octets. Vous pouvez spécifier le type MIME. Si vous ne le faites pas, Document Translate le détermine à l'aide de l'extension du fichier d'entrée.
Document Translate est compatible avec la détection automatique de la langue pour les documents stockés dans des buckets. Si vous ne spécifiez pas de code de langue source, Document Translate détecte la langue pour vous. La langue détectée est incluse dans la sortie dans le champ detectedLanguageCode.
Pour traduire un document à partir d'un bucket de stockage, procédez comme suit :
- Configurez la CLI gdcloud pour le stockage d'objets.
Créez un bucket de stockage dans l'espace de noms
dt-project. Utilisez une classe de stockageStandard.Vous pouvez créer le bucket de stockage en déployant une ressource
Bucketdans l'espace de nomsdt-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: 90Accordez les autorisations
readetwritesur le bucket au compte de service (ai-translation-system-sa) utilisé par le service Vertex AI Translation.Pour créer le rôle et la liaison de rôle à l'aide de ressources personnalisées, procédez comme suit :
Créez le rôle en déployant une ressource
Roledans l'espace de nomsdt-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-objectCréez la liaison de rôle en déployant une ressource
RoleBindingdans l'espace de nomsdt-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
Importez votre document dans le bucket de stockage que vous avez créé. Pour en savoir plus, consultez Importer et télécharger des objets de stockage dans des projets.
Envoyez une requête à l'API pré-entraînée Vertex AI Translation :
curl
Pour envoyer une requête
curl, procédez comme suit :Enregistrez le fichier
request.jsonsuivant :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" } EOFRemplacez les éléments suivants :
PROJECT_ID: ID du projet.SOURCE_LANGUAGE: langue dans laquelle votre document est écrit. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues dans lesquelles vous souhaitez traduire votre document. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.INPUT_FILE_PATH: chemin d'accès à votre fichier de document dans le bucket de stockage.
Modifiez la valeur
mime_typeen fonction de votre document.Envoyez la requête :
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.jsonRemplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison du service.PROJECT_ID: ID du projet.
Traduire un document intégré
Cette section explique comment envoyer un document intégré dans le cadre de la requête API. Pour les traductions de documents intégrés, vous devez inclure le type MIME.
Document Translate est compatible avec la détection automatique de la langue pour les traductions de texte intégrées. Si vous ne spécifiez pas de code de langue source, Document Translate détecte la langue pour vous. La langue détectée est incluse dans la sortie dans le champ detectedLanguageCode.
Envoyez une requête à l'API pré-entraînée Vertex AI Translation :
curl
Pour envoyer une requête curl, procédez comme suit :
Envoyez la requête :
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
Remplacez les éléments suivants :
PROJECT_ID: ID du projet.SOURCE_LANGUAGE: langue dans laquelle votre document est écrit. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues dans lesquelles vous souhaitez traduire votre document. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.INPUT_FILE_PATH: chemin d'accès à votre fichier de document en local.TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison du service.
Traduire des documents par lots
La traduction par lots vous permet de traduire plusieurs fichiers dans plusieurs langues en une seule requête. Pour chaque requête, vous pouvez envoyer jusqu'à 100 fichiers dont la taille totale de contenu peut atteindre 1 Go ou 100 millions de points de code Unicode, selon la limite atteinte en premier. Vous pouvez spécifier un modèle de traduction particulier pour chaque langue.
Pour en savoir plus, consultez batchTranslateDocument.
Traduire plusieurs documents
L'exemple suivant inclut plusieurs configurations d'entrée. Chaque configuration d'entrée est un pointeur vers un fichier dans un bucket de stockage.
Envoyez une requête à l'API pré-entraînée Vertex AI Translation :
curl
Pour envoyer une requête curl, procédez comme suit :
Enregistrez le corps de la requête suivant dans un fichier nommé
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" } } }Remplacez les éléments suivants :
SOURCE_LANGUAGE: code de langue des documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues cibles dans lesquelles traduire les documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.INPUT_FILE_PATH: emplacement du bucket de stockage et nom de fichier d'un ou de plusieurs documents d'entrée.OUTPUT_FILE_PREFIX: emplacement du bucket de stockage où tous les documents de sortie sont stockés.
Envoyez la requête :
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"Remplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison du service.PROJECT_ID: ID du projet.
La réponse contient l'ID d'une opération de longue durée :
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Traduire et convertir un fichier PDF original
L'exemple suivant traduit et convertit un fichier PDF original en fichier DOCX. Vous pouvez spécifier plusieurs entrées de différents types de fichiers. Ils ne doivent pas tous être des fichiers PDF originaux. Toutefois, les fichiers PDF scannés ne peuvent pas être inclus lors d'une conversion. La requête est rejetée et aucune traduction n'est effectuée. Seuls les fichiers PDF originaux sont traduits et convertis en fichiers DOCX. Par exemple, si vous incluez des fichiers PPTX, ils sont traduits et renvoyés en tant que fichiers PPTX.
Si vous traduisez régulièrement un mélange de fichiers PDF scannés et originaux, nous vous recommandons de les organiser dans des buckets distincts. De cette façon, lorsque vous demandez une traduction par lot avec conversion, vous pouvez exclure le bucket contenant les fichiers PDF scannés, sans avoir à exclure les fichiers individuellement.
Envoyez une requête à l'API pré-entraînée Vertex AI Translation :
curl
Pour envoyer une requête curl, procédez comme suit :
Enregistrez le corps de la requête suivant dans un fichier nommé
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" } }Remplacez les éléments suivants :
SOURCE_LANGUAGE: code de langue des documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues cibles dans lesquelles traduire les documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.INPUT_FILE_PATH: emplacement du bucket de stockage et nom de fichier d'un ou de plusieurs documents d'entrée.OUTPUT_FILE_PREFIX: emplacement du bucket de stockage où tous les documents de sortie sont stockés.
Envoyez la requête :
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"Remplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison du service.PROJECT_ID: ID du projet.
La réponse contient l'ID d'une opération de longue durée :
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Utiliser un glossaire
Vous pouvez inclure un glossaire pour gérer la terminologie spécifique à un domaine. Si vous spécifiez un glossaire, vous devez spécifier la langue source. L'exemple suivant utilise un glossaire. Vous pouvez spécifier jusqu'à 10 langues cibles avec leur propre glossaire.
Si vous spécifiez un glossaire pour certaines langues cibles, le système n'en utilise aucun pour les langues non spécifiées.
Envoyez une requête à l'API pré-entraînée Vertex AI Translation :
curl
Pour envoyer une requête curl, procédez comme suit :
Enregistrez le corps de la requête suivant dans un fichier nommé
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" }, ... } }Remplacez les éléments suivants :
SOURCE_LANGUAGE: code de langue des documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.TARGET_LANGUAGE: langue ou langues cibles dans lesquelles traduire les documents d'entrée. Consultez la liste des langues compatibles et de leurs codes de langue respectifs.INPUT_FILE_PATH: emplacement du bucket de stockage et nom de fichier d'un ou de plusieurs documents d'entrée.OUTPUT_FILE_PREFIX: emplacement du bucket de stockage où tous les documents de sortie sont stockés.GLOSSARY_PROJECT_ID: ID du projet dans lequel se trouve le glossaire.
Envoyez la requête :
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"Remplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison Vertex AI Translation que vous utilisez pour votre organisation. Pour en savoir plus, consultez État et points de terminaison du service.PROJECT_ID: ID du projet.
La réponse contient l'ID d'une opération de longue durée :
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}