Prova a tradurre documenti formattati

I servizi di traduzione Vertex AI e riconoscimento ottico dei caratteri (OCR) si combinano per fornire una funzionalità di elaborazione dei documenti chiamata Traduzione documenti.

Traduzione documenti traduce direttamente i 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.

Traduzione documenti supporta le traduzioni dei documenti in linea, 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

Traduzione documenti supporta i seguenti tipi di file di input e i relativi tipi di file di output associati:

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

Traduzione documenti supporta i file PDF originali e scansionati, incluse le traduzioni da o verso lingue con scrittura da destra a sinistra. Inoltre, Traduzione documenti 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 all'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 di traduzione Vertex AI e OCR e disporre delle credenziali appropriate. Valuta la possibilità di installare le librerie client di traduzione Vertex AI e OCR per facilitare le chiamate API. Per ulteriori informazioni sui prerequisiti, consulta Configurare un progetto di traduzione.

Traduci un documento da un bucket di archiviazione

Per tradurre un documento archiviato in un bucket, utilizza l'API Translation di Vertex AI.

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, Traduzione documenti lo determina utilizzando l'estensione del file di input.

Traduzione documenti supporta il rilevamento automatico della lingua per i documenti archiviati nei bucket. Se non specifichi un codice della lingua di origine, Traduzione documenti 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:

  1. Configura l'interfaccia a riga di comando gdcloud 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 di traduzione Vertex AI.

    Puoi seguire questi passaggi per creare il ruolo e l'associazione dei ruoli utilizzando le 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 dei ruoli 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: g-vai-translation-sie
      
  4. Carica il documento nel bucket di archiviazione che hai creato. Per ulteriori informazioni, consulta Caricare e scaricare oggetti di archiviazione nei progetti.

  5. Effettua una richiesta all'API preaddestrata di traduzione Vertex AI:

    curl

    Segui questi passaggi per effettuare una richiesta curl:

    1. 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"
      }
      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 rispettivi codici lingua.
      • TARGET_LANGUAGE: la lingua o le lingue in cui vuoi tradurre il documento. Consulta l'elenco delle lingue supportate e i rispettivi codici lingua.
      • INPUT_FILE_PATH: il percorso del file del documento nel bucket di archiviazione.

      Modifica il valore mime_type in base al documento.

    2. Ottieni 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/locations/PROJECT_ID:translateDocument < request.json
      

      Sostituisci quanto segue:

Traduci un documento in linea

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

Traduzione documenti supporta il rilevamento automatico della lingua per le traduzioni di testo in linea. Se non specifichi un codice della lingua di origine, Traduzione documenti rileva la lingua per conto tuo. La lingua rilevata è inclusa nell'output nel campo detectedLanguageCode.

Effettua una richiesta all'API preaddestrata di traduzione Vertex AI:

curl

Segui questi passaggi per effettuare una richiesta curl:

  1. Ottieni un token di autenticazione.

  2. 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 rispettivi codici lingua.
  • TARGET_LANGUAGE: la lingua o le lingue in cui vuoi tradurre il documento. Consulta l'elenco delle lingue supportate e i rispettivi codici lingua.
  • INPUT_FILE_PATH: il percorso del file del documento in locale.
  • TOKEN: il token di autenticazione che hai ottenuto.
  • ENDPOINT: l'endpoint di traduzione Vertex AI che utilizzi per la tua organizzazione. Per ulteriori informazioni, consulta Stato del servizio ed endpoint.

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

Effettua una richiesta all'API preaddestrata di traduzione Vertex AI:

curl

Segui questi passaggi per effettuare una richiesta 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 rispettivi 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 rispettivi codici lingua.
    • INPUT_FILE_PATH: il percorso del bucket di archiviazione e il nome file di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: il percorso del bucket di archiviazione in cui sono archiviati tutti i documenti di output.
  2. Ottieni 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/locations/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"
}
}

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.

Effettua una richiesta all'API preaddestrata di traduzione Vertex AI:

curl

Segui questi passaggi per effettuare una richiesta 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 rispettivi 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 rispettivi codici lingua.
    • INPUT_FILE_PATH: il percorso del bucket di archiviazione e il nome file di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: il percorso del bucket di archiviazione in cui sono archiviati tutti i documenti di output.
  2. Ottieni 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/locations/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"
}
}

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.

Effettua una richiesta all'API preaddestrata di traduzione Vertex AI:

curl

Segui questi passaggi per effettuare una richiesta 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 rispettivi 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 rispettivi codici lingua.
    • INPUT_FILE_PATH: il percorso del bucket di archiviazione e il nome file di uno o più documenti di input.
    • OUTPUT_FILE_PREFIX: il percorso 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.
  2. Ottieni 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/locations/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"
}
}