I servizi Vertex AI Translation e riconoscimento ottico dei caratteri (OCR) si combinano per fornire una funzionalità di elaborazione dei documenti chiamata Traduzione di documenti.
Document Translation traduce direttamente documenti formattati, come i file PDF. Rispetto alle traduzioni di testo normale, la funzionalità conserva la formattazione e il layout originali nei documenti tradotti, aiutandoti a mantenere gran parte del contesto originale, come le interruzioni di paragrafo.
Document Translate supporta le traduzioni di documenti inline, da bucket di archiviazione e in batch.
Questa pagina ti guida attraverso un'esperienza interattiva utilizzando la funzionalità di elaborazione dei documenti su Google Distributed Cloud (GDC) con air gap per tradurre i documenti preservandone il formato.
Formati supportati
Document Translation supporta i seguenti tipi di file di input e i relativi tipi di file di output associati:
| Input | Tipo MIME del documento | Output |
|---|---|---|
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 |
Traduzioni di documenti PDF originali e scansionati
Document Translate supporta i file PDF originali e scansionati, incluse le traduzioni da o verso lingue con scrittura da destra a sinistra. Inoltre, Document Translate conserva i link ipertestuali, le dimensioni e il colore dei caratteri dei file.
Prima di iniziare
Prima di poter iniziare a utilizzare la funzionalità di elaborazione dei documenti, devi avere un progetto denominato dt-project. La risorsa personalizzata del progetto deve essere simile
al seguente esempio:
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
Inoltre, devi abilitare le API preaddestrate Vertex AI Translation e OCR e disporre delle credenziali appropriate. Valuta la possibilità di installare le librerie client di Vertex AI Translation e OCR per facilitare le chiamate API. Per saperne di più sui prerequisiti, consulta Configura un progetto di traduzione.
Traduci un documento da un bucket di archiviazione
Per tradurre un documento archiviato in un bucket, utilizza l'API Vertex AI Translation.
Questa sezione descrive come tradurre un documento da un bucket e archiviare il risultato in un altro percorso del bucket di output. La risposta restituisce anche un flusso di byte. Puoi specificare il tipo MIME. Se non lo fai, Document Translate lo determina utilizzando l'estensione del file di input.
La traduzione di documenti supporta il rilevamento automatico della lingua per i documenti archiviati nei bucket. Se non specifichi un codice della lingua di origine, Document Translation rileva la lingua per conto tuo. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.
Segui questi passaggi per tradurre un documento da un bucket di archiviazione:
- Configura la CLI gdcloud per l'archiviazione di oggetti.
Crea un bucket di archiviazione nello spazio dei nomi
dt-project. Utilizza una classe di archiviazioneStandard.Puoi creare il bucket di archiviazione eseguendo il deployment di una risorsa
Bucketnello spazio dei nomidt-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: 90Concedi le autorizzazioni
readewritesul bucket ai service account (ai-translation-system-saeg-vai-translation-sie-sa) utilizzati dal servizio Vertex AI Translation.Per creare il ruolo e l'associazione dei ruoli utilizzando risorse personalizzate sul server API di gestione, segui questi passaggi:
Crea il ruolo eseguendo il deployment di una risorsa
Rolenello spazio dei nomidt-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-objectCrea l'associazione dei ruoli eseguendo il deployment di una risorsa
RoleBindingnello spazio dei nomidt-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 - kind: ServiceAccount name: g-vai-translation-sie-sa namespace: g-vai-translation-sie
Carica il documento nel bucket di archiviazione che hai creato. Per saperne di più, consulta Carica e scarica oggetti di archiviazione nei progetti.
Invia una richiesta all'API preaddestrata Vertex AI Translation:
curl
Segui questi passaggi per effettuare una richiesta
curl:Salva il seguente file
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" } EOFSostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.SOURCE_LANGUAGE: la lingua in cui è scritto il documento. Consulta l'elenco delle lingue supportate e i relativi codici lingua.TARGET_LANGUAGE: la lingua o le lingue in cui vuoi tradurre il documento. Consulta l'elenco delle lingue supportate e i relativi codici lingua.INPUT_FILE_PATH: il percorso del file del documento nel bucket di archiviazione.
Modifica il valore
mime_typein base al documento.Effettua la richiesta:
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.jsonSostituisci quanto segue:
TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Vertex AI Translation che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.PROJECT_ID: il tuo ID progetto.
Traduci un documento incorporato
Questa sezione descrive come inviare un documento incorporato nella richiesta API. Devi includere il tipo MIME per le traduzioni dei documenti incorporati.
Document Translate supporta il rilevamento automatico della lingua per le traduzioni di testo in linea. Se non specifichi un codice della lingua di origine, Document Translation rileva la lingua per conto tuo. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.
Invia una richiesta all'API preaddestrata Vertex AI Translation:
curl
Segui questi passaggi per effettuare una richiesta curl:
Effettua la richiesta:
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
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.SOURCE_LANGUAGE: la lingua in cui è scritto il documento. Consulta l'elenco delle lingue supportate e i relativi codici lingua.TARGET_LANGUAGE: la lingua o le lingue in cui vuoi tradurre il documento. Consulta l'elenco delle lingue supportate e i relativi codici lingua.INPUT_FILE_PATH: il percorso del file del documento in locale.TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Vertex AI Translation che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato e gli endpoint del servizio
Traduci documenti in batch
La traduzione batch ti consente di tradurre più file in più lingue in un'unica richiesta. Per ogni richiesta, puoi inviare fino a 100 file con una dimensione totale dei contenuti fino a 1 GB o 100 milioni di punti di codice Unicode, a seconda del limite raggiunto per primo. Puoi specificare un modello di traduzione specifico per ogni lingua.
Per saperne di più, consulta batchTranslateDocument.
Traduci più documenti
L'esempio seguente include più configurazioni di input. Ogni configurazione di input è un puntatore a un file in un bucket di archiviazione.
Invia una richiesta all'API preaddestrata Vertex AI Translation:
curl
Segui questi passaggi per effettuare una richiesta curl:
Salva il seguente corpo della richiesta in un file denominato
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" } } }Sostituisci quanto segue:
SOURCE_LANGUAGE: il codice lingua dei documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.INPUT_FILE_PATH: la posizione del bucket di archiviazione e il nome file di uno o più documenti di input.OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui sono archiviati tutti i documenti di output.
Effettua la richiesta:
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"Sostituisci quanto segue:
TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Vertex AI Translation che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.PROJECT_ID: il tuo ID progetto.
La risposta contiene l'ID di un'operazione a lunga esecuzione:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Traduci e converti un file PDF originale
L'esempio seguente traduce e converte un file PDF originale in un file DOCX. Puoi specificare più input di vari tipi di file; non devono essere tutti file PDF originali. Tuttavia, i file PDF scansionati non possono essere inclusi quando effettui una conversione; la richiesta viene rifiutata e non vengono eseguite traduzioni. Vengono tradotti e convertiti in file DOCX solo i file PDF originali. Ad esempio, se includi file PPTX, questi vengono tradotti e restituiti come file PPTX.
Se traduci regolarmente un mix di file PDF scansionati e originali, ti consigliamo di organizzarli in bucket separati. In questo modo, quando richiedi una traduzione e una conversione batch, puoi escludere il bucket che contiene i file PDF scansionati invece di dover escludere i singoli file.
Invia una richiesta all'API preaddestrata Vertex AI Translation:
curl
Segui questi passaggi per effettuare una richiesta curl:
Salva il seguente corpo della richiesta in un file denominato
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" } }Sostituisci quanto segue:
SOURCE_LANGUAGE: il codice lingua dei documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.INPUT_FILE_PATH: la posizione del bucket di archiviazione e il nome file di uno o più documenti di input.OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui sono archiviati tutti i documenti di output.
Effettua la richiesta:
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"Sostituisci quanto segue:
TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Vertex AI Translation che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.PROJECT_ID: il tuo ID progetto.
La risposta contiene l'ID di un'operazione a lunga esecuzione:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
Utilizza un glossario
Puoi includere un glossario per gestire la terminologia di un ambito specifico. Se specifichi un glossario, devi indicare la lingua di origine. L'esempio seguente utilizza un glossario. Puoi specificare fino a 10 lingue di destinazione con il relativo glossario.
Se specifichi un glossario per alcune lingue di destinazione, il sistema non utilizza alcun glossario per le lingue non specificate.
Invia una richiesta all'API preaddestrata Vertex AI Translation:
curl
Segui questi passaggi per effettuare una richiesta curl:
Salva il seguente corpo della richiesta in un file denominato
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/glossaries/GLOSSARY_ID" }, ... } }Sostituisci quanto segue:
SOURCE_LANGUAGE: il codice lingua dei documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.TARGET_LANGUAGE: la lingua o le lingue di destinazione in cui tradurre i documenti di input. Consulta l'elenco delle lingue supportate e i relativi codici lingua.INPUT_FILE_PATH: la posizione del bucket di archiviazione e il nome file di uno o più documenti di input.OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui sono archiviati tutti i documenti di output.GLOSSARY_PROJECT_ID: l'ID progetto in cui si trova il glossario.GLOSSARY_ID: l'ID del glossario.
Effettua la richiesta:
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"Sostituisci quanto segue:
TOKEN: il token di autenticazione che hai ottenuto.ENDPOINT: l'endpoint Vertex AI Translation che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.PROJECT_ID: il tuo ID progetto.
La risposta contiene l'ID di un'operazione a lunga esecuzione:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}