Text übersetzen

Mit dem Vertex AI Translation-Dienst können Sie Text, der in einer Sprache verfasst ist, in eine beliebige andere unterstützte Sprache übersetzen.

Auf dieser Seite wird beschrieben, wie Sie einen Beispieltext mit der Vertex AI Translation API in Google Distributed Cloud (GDC) Air-Gapped übersetzen.

Hinweis

Wenn Sie Text übersetzen möchten, bitten Sie Ihren Projekt-IAM-Administrator, Ihnen die Rolle AI Translation Developer (ai-translation-developer) in Ihrem Projektnamespace zuzuweisen.

Weitere Informationen zu dieser Rolle finden Sie unter IAM-Berechtigungen vorbereiten.

Bevor Sie die Vertex AI Translation API verwenden können, benötigen Sie ein Projekt, in dem die Vertex AI Translation API aktiviert ist, und die entsprechenden Anmeldedaten. Sie können auch Clientbibliotheken installieren, um Aufrufe an die API zu ermöglichen. Weitere Informationen finden Sie unter Übersetzungsprojekt einrichten.

Text übersetzen

Die Methode translateText nimmt Eingabetext in einer bestimmten Sprache entgegen und gibt den übersetzten Text in einer anderen Sprache zurück. Sie können Nur-Text oder HTML-Text als Eingabe eingeben.

Wenn Sie HTML-Text eingeben, übersetzt die Methode translateText nur den Text zwischen den HTML-Tags, ohne die Tags zu übersetzen. Sie übersetzt jedoch Attribute in HTML5-Tags wie alt-Attribute. Ein Beispiel für die Verwendung von HTML5 Tags und -Attributen wird in der Syntax verwendet, um Text von der Übersetzung auszuschließen. Die Ausgabe behält die nicht übersetzten HTML-Tags bei und enthält den übersetzten Text zwischen ihnen.

Stellen Sie eine curl-Anfrage an die vortrainierte Vertex AI Translation API. Alternativ können Sie über ein Python-Skript mit der vortrainierten Vertex AI Translation API interagieren, um Text von einer Sprache in eine andere zu übersetzen.

In den folgenden Beispielen wird gezeigt, wie Sie einen Eingabetext von einer Sprache in eine andere übersetzen:

curl

So stellen Sie eine curl-Anfrage:

  1. Rufen Sie ein Authentifizierungstoken ab.

  2. Stellen Sie die Anfrage:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

Ersetzen Sie Folgendes:

  • TOKEN: das Authentifizierungstoken, das Sie erhalten haben.
  • ENDPOINT: der Vertex AI Translation-Endpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte.
  • PROJECT_ID: Ihre Projekt-ID.
  • SOURCE_LANGUAGE: der Sprachcode Ihres Eingabetexts. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
  • TARGET_LANGUAGE: der Sprachcode, in den Sie Ihren Text übersetzen möchten. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
  • INPUT_TEXT: Ihr Eingabetext in der Ausgangssprache.

Verwenden Sie das Feld mime_type, um einen Dateityp anzugeben. Setzen Sie das Feld mime_type auf einen der folgenden Werte:

  • text/plain: Ihre Eingabe ist Nur-Text.
  • text/html: Ihre Eingabe ist HTML-Text.

Wenn das Feld mime_type leer ist, ist text/html der Standardwert.

Im folgenden Beispiel wird das Feld mime_type verwendet:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"mime_type": "text/html", "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "contents": ["INPUT_TEXT"]}'

Die Ausgabe enthält den übersetzten Text.

Python

So verwenden Sie den Vertex AI Translation-Dienst über ein Python-Skript:

  1. Installieren Sie die aktuelle Version der Vertex AI Translation-Clientbibliothek.

  2. Legen Sie die erforderlichen Umgebungsvariablen in einem Python-Skript fest.

  3. Authentifizieren Sie Ihre API-Anfrage.

  4. Fügen Sie dem erstellten Python-Skript den folgenden Code hinzu:

    from google.cloud import translate
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience = "https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def translate_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return translate.TranslationServiceClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def translate_func(creds):
      tc = translate_client(creds)
      req = {
        "parent": "projects/PROJECT_ID",
        "source_language_code": "SOURCE_LANGUAGE",
        "target_language_code": "TARGET_LANGUAGE",
        "mime_type": "text/plain",
        "contents": ["INPUT_TEXT"]
      }
    
      resp = tc.translate_text(req)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      translate_func(creds)
    

    Ersetzen Sie Folgendes:

    • ENDPOINT: der Vertex AI Translation-Endpunkt, den Sie für Ihre Organisation verwenden. Weitere Informationen finden Sie unter Dienststatus und Endpunkte.
    • PROJECT_ID: Ihre Projekt-ID.
    • SOURCE_LANGUAGE: der Sprachcode Ihres Eingabetexts. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
    • TARGET_LANGUAGE: der Sprachcode, in den Sie Ihren Text übersetzen möchten. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
    • INPUT_TEXT: Ihr Eingabetext in der Ausgangssprache.

    Verwenden Sie das Feld mime_type, um einen Dateityp anzugeben. Setzen Sie das Feld mime_type auf einen der folgenden Werte:

    • text/plain: Ihre Eingabe ist Nur-Text.
    • text/html: Ihre Eingabe ist HTML-Text.

    Wenn das Feld mime_type leer ist, ist text/html der Standardwert.

  5. Speichern Sie das Python-Skript.

  6. Führen Sie das Python-Skript aus, um den Text zu übersetzen:

    python SCRIPT_NAME
    

    Ersetzen Sie SCRIPT_NAME durch den Namen, den Sie Ihrem Python-Skript gegeben haben, z. B. translation.py.

Weitere Informationen zur Methode translateText finden Sie in der Python-Clientbibliothek.

Text von der Übersetzung ausschließen

Verwenden Sie eines der folgenden HTML-Tags im Feld contents von Anfragen, um Teile Ihres Texts von der Übersetzung auszuschließen:

  • <span translate="no">"TEXT"</span>
  • <span class="notranslate">"TEXT"</span>

Ersetzen Sie TEXT durch den Teil des Texts, den Sie von der Übersetzung ausschließen möchten.

Angenommen, Sie haben den folgenden Eingabetext auf Spanisch:

Hola, esto es una prueba.

Der erwartete übersetzte Text auf Englisch ist:

Hello, this is a test.

Angenommen, Sie möchten nur den folgenden Teil des Texts übersetzen und Hola, aus dem Eingabetext ausschließen:

esto es una prueba.

Der erwartete übersetzte Text auf Englisch ist:

this is a test.

Verwenden Sie die HTML-Tags, um Text von der Übersetzung auszuschließen. In der folgenden Anfrage wird beispielsweise das curl<span class="notranslate">"TEXT"</span> Tag verwendet, um Hola, aus dem vorherigen Eingabetext auf Spanisch auszuschließen, wenn der Text ins Englische übersetzt wird:

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d '{"parent": "projects/PROJECT_ID", "source_language_code": "es", "target_language_code": "en", "contents": ["<span class=\"notranslate\">\"Hola,\"</span>\"esto es una prueba.\""]}'

Mit Glossar übersetzen

Wenn Sie Text mit Wörtern aus einem Glossar übersetzen möchten, müssen Sie ein Glossar erstellen:

  1. Speichern Sie die folgende Datei request_glossary.json:

    cat <<- EOF > request_glossary.json
    {
    "sourceLanguageCode": "SOURCE_LANGUAGE",
    "targetLanguageCode": "SOURCE_LANGUAGE",
    "contents": "TEXT",
    "glossaryConfig": {
      "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID",
      "ignoreCase": IGNORE_CASE_BOOLEAN,
      "contextual_translation_enabled": CONTEXTUAL_BOOLEAN
    }
    }
    EOF
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID.
    • SOURCE_LANGUAGE: die Sprache, in der Ihr Dokument verfasst ist. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
    • TARGET_LANGUAGE: die Sprache oder Sprachen, in die Sie Ihr Dokument übersetzen möchten. Eine Liste der unterstützten Sprachen und ihrer jeweiligen Sprachcodes finden Sie hier.
    • TEXT: Text übersetzen, der Glossarwörter enthält
    • GLOSSARY_ID: die ID des Glossars, z. B. G11111111114524
  2. Stellen Sie die Anfrage:

    curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
    

Beispiel und erwartete Ausgabe:

Anfrage:

{
  "sourceLanguageCode": "es",
  "targetLanguageCode": "en",
  "contents": "La novela cuenta la historia de una joven que viaja a Madrid",
  "glossaryConfig": {
    "glossary": "projects/test-project/glossaries/GLOSSARY_ID",
    "ignoreCase": true,
    "contextual_translation_enabled": true
  }
}

Response:

{"translations":[
  {
    "translatedText":"The novel tells the story of a young woman who travels to Madrid"}],
    "glossaryTranslations":[{"translatedText":"The novel account the story of a young woman who travels to Madrid",
    "glossaryConfig":
      {
        "glossary":"projects/test-project/glossaries/GLOSSARY_ID"
      }}
  ]}

Das Feld translations enthält die reguläre maschinelle Übersetzung ohne angewendetes Glossar. Das Feld glossaryTranslations enthält die Übersetzung, nachdem das Glossar angewendet wurde. Wenn Sie das Feld contextual_translation_enabled auf true setzen, enthält die Antwort nur das Feld glossaryTranslations und nicht das Feld translations.

Sprache erkennen

Die Methode detectLanguage gibt die Sprache eines Textstrings zurück, indem sie eine HTTP-Anfrage sendet.

Die folgende Anfrage erkennt beispielsweise Englisch als Sprache des Eingabetexts Hello, this is a test:

curl

curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:detectLanguage -d '{"parent": "projects/PROJECT_ID", "content": "Hello, this is a test"}'

Einen Vorgang abrufen

Die Methode getOperation gibt den letzten Status eines Vorgangs mit langer Ausführungszeit zurück. Mit dieser Methode können Sie das vom Vertex AI Translation API-Dienst generierte Vorgangsergebnis abrufen. Dazu müssen Sie Ihre Projekt-ID und den Vertex AI Translation-Endpunkt angeben.

Die folgende Anfrage gibt beispielsweise den Status eines Vorgangs mit langer Ausführungszeit zurück, z. B. das Erstellen eines Glossars, der in Ihrem Projekt ausgeführt wird:

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_ID

Vorgänge auflisten

Die Methode listOperations gibt eine Liste der Vorgänge mit langer Ausführungszeit zurück, die einem bestimmten Filter in der Anfrage entsprechen. Dazu müssen Sie Ihre Projekt-ID und den Vertex AI Translation-Endpunkt angeben.

Die folgende Anfrage gibt beispielsweise die Liste der Vorgänge zurück, die in Ihrem Projekt ausgeführt werden, und begrenzt die Seitengröße auf zehn Ergebnisse pro Seite:

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10

Unterstützte Sprachen abrufen

Die Methode supportedLanguages gibt die Liste der Sprachen zurück, die von der Vertex AI Translation API unterstützt werden.

Die folgende Anfrage gibt beispielsweise die unterstützten Sprachen zurück, indem der Vertex AI Translation-Endpunkt angegeben wird:

curl

curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID/supportedLanguages

Eine vollständige Liste der unterstützten Sprachen finden Sie unter Unterstützte Sprachen für Vertex AI Translation.