Batchübersetzung mit dem Cloud Translation-Connector ausführen

In dieser Anleitung erfahren Sie, wie Sie einen Workflow erstellen, der den Cloud Translation API-Connector verwendet, um Dateien im asynchronen Batchmodus in andere Sprachen zu übersetzen. So erhalten Sie eine Echtzeitausgabe, während die Eingaben verarbeitet werden.

Cloud Storage-Bucket und Dateien für die Eingabe erstellen

Sie können Cloud Storage zum Speichern von Objekten verwenden. Objekte sind unveränderliche Datenelemente, die aus einer Datei mit einem beliebigen Format bestehen und in Containern, sogenannten Buckets, gespeichert werden.

  1. Erstellen Sie einen Cloud Storage-Bucket zum Speichern der zu übersetzenden Dateien:

    BUCKET_INPUT=${GOOGLE_CLOUD_PROJECT}-input-files
    gcloud storage buckets create gs://${BUCKET_INPUT}
  2. Erstellen Sie zwei Dateien auf Englisch und laden Sie sie in den Eingabe-Bucket hoch:

    echo "Hello World!" > file1.txt
    gcloud storage cp file1.txt gs://${BUCKET_INPUT}
    echo "Workflows connectors simplify calling services." > file2.txt
    gcloud storage cp file2.txt gs://${BUCKET_INPUT}

Workflow bereitstellen und ausführen

Ein Workflow besteht aus einer Reihe von Schritten, die mit der Workflows-Syntax beschrieben werden. Diese kann entweder im YAML- oder JSON-Format geschrieben werden. Dies ist die Definition des Workflows. Nachdem Sie einen Workflow erstellt haben, stellen Sie ihn bereit, um ihn für die Ausführung verfügbar zu machen.

  1. Erstellen Sie eine Textdatei mit dem Dateinamen workflow.yaml und folgendem Inhalt:

    main:
      steps:
      - init:
          assign:
          - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
          - location: ${sys.get_env("GOOGLE_CLOUD_LOCATION")}
          - inputBucketName: ${projectId + "-input-files"}
          - outputBucketName: ${projectId + "-output-files-" + string(int(sys.now()))}
      - createOutputBucket:
            call: googleapis.storage.v1.buckets.insert
            args:
              project: ${projectId}
              body:
                name: ${outputBucketName}
      - batchTranslateText:
          call: googleapis.translate.v3beta1.projects.locations.batchTranslateText
          args:
              parent: ${"projects/" + projectId + "/locations/" + location}
              body:
                  inputConfigs:
                    gcsSource:
                      inputUri: ${"gs://" + inputBucketName + "/*"}
                  outputConfig:
                      gcsDestination:
                        outputUriPrefix: ${"gs://" + outputBucketName + "/"}
                  sourceLanguageCode: "en"
                  targetLanguageCodes: ["es", "fr"]
          result: batchTranslateTextResult

    Im Workflow werden Variablen zugewiesen, ein Ausgabebucket erstellt und die Übersetzung der Dateien initiiert. Die Ergebnisse werden im Ausgabebucket gespeichert.

  2. Nachdem Sie den Workflow erstellt haben, stellen Sie ihn bereit:

    gcloud workflows deploy batch-translation --source=workflow.yaml
  3. Führen Sie den Workflow aus:

    gcloud workflows execute batch-translation
  4. Sie können den zurückgegebenen Befehl ausführen, um den Workflowstatus aufzurufen. Beispiel:

    gcloud workflows executions describe eb4a6239-cffa-4672-81d8-d4caef7d8424 /
      --workflow batch-translation /
      --location us-central1

    Der Workflow sollte ACTIVE lauten. Nach einigen Minuten werden die übersetzten Dateien (auf Französisch und Spanisch) in den Ausgabebucket hochgeladen.

Objekte im Ausgabebucket auflisten

Sie können prüfen, ob der Workflow wie erwartet funktioniert hat, indem Sie die Objekte in Ihrem Ausgabebucket auflisten.

  1. Rufen Sie den Namen Ihres Ausgabebuckets ab:

    gcloud storage ls

    Die entsprechende Ausgabe sieht etwa so aus:

    gs://PROJECT_ID-input-files/
    gs://PROJECT_ID-output-files-TIMESTAMP/

  2. Objekte in Ihrem Bucket auflisten:

    gcloud storage ls gs://PROJECT_ID-output-files-TIMESTAMP/** --recursive

    Nach einigen Minuten werden die übersetzten Dateien aufgeführt, jeweils zwei auf Französisch und Spanisch.