Prova a tradurre documenti formattati

I servizi Vertex AI Translation e Riconoscimento ottico dei caratteri (OCR) si combinano per fornire una funzionalità di elaborazione dei documenti chiamata Document Translate.

Document Translate traduce direttamente i documenti formattati, come i file PDF. Rispetto alle traduzioni di testo semplici, la funzionalità conserva la formattazione e il layout originali nei documenti tradotti, aiutandoti a mantenere gran parte del contesto originale, ad esempio le interruzioni di paragrafo.

Document Translate supporta le traduzioni di documenti inline, dai 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) air-gapped per tradurre i documenti mantenendone il formato.

Formati supportati

Document Translate supporta i seguenti tipi di file di input e i relativi tipi di file di output:

Input Tipo MIME del documento Output
PDF 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 dei caratteri 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 a quella nell'esempio seguente:

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 Vertex AI Translation e OCR per facilitare le chiamate API. Per ulteriori informazioni sui prerequisiti, consulta la sezione Configurare un progetto di traduzione.

Tradurre 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; in caso contrario, Document Translate lo determina utilizzando l'estensione del file di input.

Document Translate supporta il rilevamento automatico della lingua per i documenti archiviati nei bucket. Se non specifichi un codice della lingua di origine, Document Translate rileva la lingua per te. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.

Per tradurre un documento da un bucket di archiviazione:

  1. Configura gcloud CLI per l'archiviazione degli oggetti.
  2. Crea un bucket di archiviazione nello spazio dei nomi dt-project. Utilizza una classe di archiviazione Standard.

    Puoi creare il bucket di archiviazione eseguendo il deployment di una risorsa Bucket nello spazio dei nomi dt-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
    
  3. Concedi le autorizzazioni read e write sul bucket al account di servizio (ai-translation-system-sa) utilizzato dal servizio Vertex AI Translation.

    Per creare il ruolo e l'associazione di ruolo utilizzando risorse personalizzate:

    1. Crea il ruolo eseguendo il deployment di una risorsa Role nello spazio dei nomi dt-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
      
    2. Crea l'associazione di ruolo eseguendo il deployment di una risorsa RoleBinding nello spazio dei nomi dt-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
      
  4. Carica il documento nel bucket di archiviazione che hai creato. Per ulteriori informazioni, vedi Caricare e scaricare oggetti di archiviazione nei progetti.

  5. Invia una richiesta all'API preaddestrata Vertex AI Translation:

    curl

    Segui questi passaggi per inviare una richiesta di curl:

    1. Salva il seguente file 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
      

      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 nel bucket di archiviazione.

      Modifica il valore di mime_type in base al tuo documento.

    2. Ottenere un token di autenticazione.

    3. Effettua la richiesta:

      curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID:translateDocument < request.json
      

      Sostituisci quanto segue:

Tradurre un documento in linea

Questa sezione descrive come inviare un documento inline come parte della richiesta API. Devi includere il tipo MIME per le traduzioni di documenti in linea.

Document Translate supporta il rilevamento automatico della lingua per le traduzioni di testo in linea. Se non specifica un codice della lingua di origine, Document Translate rileva la lingua per te. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.

Invia una richiesta all'API preaddestrata Vertex AI Translation:

curl

Segui questi passaggi per inviare una richiesta di curl:

  1. Ottenere un token di autenticazione.

  2. Effettua la richiesta:

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

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 ulteriori informazioni, visualizza lo stato e gli endpoint del servizio.

Tradurre 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 ulteriori informazioni, vedi batchTranslateDocument.

Tradurre più documenti

Il seguente esempio include più configurazioni di input. Ogni configurazione dell'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 inviare una richiesta di curl:

  1. 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: il percorso e il nome file del bucket di archiviazione di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui vengono archiviati tutti i documenti di output.
  2. Ottenere un token di autenticazione.

  3. 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:batchTranslateDocument"
    

    Sostituisci quanto segue:

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"
}
}

Tradurre e convertire 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 si include 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 anziché dover escludere i singoli file.

Invia una richiesta all'API preaddestrata Vertex AI Translation:

curl

Segui questi passaggi per inviare una richiesta di curl:

  1. 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: il percorso e il nome file del bucket di archiviazione di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui vengono archiviati tutti i documenti di output.
  2. Ottenere un token di autenticazione.

  3. 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:batchTranslateDocument"
    

    Sostituisci quanto segue:

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"
}
}

Utilizzare un glossario

Puoi includere un glossario per gestire la terminologia specifica del dominio. Se specifichi un glossario, devi specificare la lingua di origine. L'esempio seguente utilizza un glossario. Puoi specificare fino a 10 lingue di destinazione con il proprio 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 inviare una richiesta di curl:

  1. 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"
        },
        ...
      }
    }
    

    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: il percorso e il nome file del bucket di archiviazione di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: la posizione del bucket di archiviazione in cui vengono archiviati tutti i documenti di output.
    • GLOSSARY_PROJECT_ID: l'ID progetto in cui si trova il glossario.
  2. Ottenere un token di autenticazione.

  3. 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:batchTranslateDocument"
    

    Sostituisci quanto segue:

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"
}
}