Vertex AI Translation サービスを使用すると、ある言語で記述されたテキストを、他のサポートされている言語のいずれかに翻訳できます。
このページでは、Google Distributed Cloud(GDC)エアギャップで Vertex AI Translation API を使用してサンプル テキストを翻訳する方法について説明します。
始める前に
Vertex AI Translation API を使用するには、Vertex AI Translation API が有効になっているプロジェクトと適切な認証情報が必要です。また、API の呼び出しを支援するクライアント ライブラリをインストールすることもできます。詳細については、翻訳プロジェクトを設定するをご覧ください。
テキスト翻訳
translateText
メソッドは、特定の言語の入力テキストを受け取り、別の言語に翻訳されたテキストを返します。入力としてプレーン テキストまたは HTML テキストを入力できます。
HTML テキストを入力すると、translateText
メソッドはタグを翻訳せずに、HTML タグ間のテキストのみを翻訳します。ただし、alt
属性など、HTML5 タグの属性は翻訳されます。HTML5 タグと属性の使用例は、テキストを翻訳から除外する構文で使用されています。出力では、未翻訳の HTML タグが保持され、その間に翻訳されたテキストが挿入されます。
Vertex AI Translation の事前トレーニング済み API に curl
リクエストを行います。それ以外の場合は、Python スクリプトから Vertex AI Translation 事前トレーニング済み API を操作して、テキストをある言語から別の言語に翻訳します。
次の例は、入力テキストをある言語から別の言語に翻訳する方法を示しています。
curl
curl
リクエストを行う手順は次のとおりです。
次のリクエストを行います。
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"]}'
次のように置き換えます。
TOKEN
: 取得した認証トークン。ENDPOINT
: 組織で使用する Vertex AI Translation エンドポイント。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。PROJECT_ID
: プロジェクト ID。SOURCE_LANGUAGE
: 入力テキストの言語コード。サポートされている言語とそれぞれの言語コードの一覧をご覧ください。TARGET_LANGUAGE
: テキストの翻訳先の言語コード。サポートされている言語とその言語コードのリストをご覧ください。INPUT_TEXT
: 原文の言語の入力テキスト。
mime_type
フィールドを使用して、ファイルの種類を指定します。mime_type
フィールドを次のいずれかの値に設定します。
text/plain
: 入力がプレーン テキストの場合。text/html
: 入力が HTML テキストである。
mime_type
フィールドが空の場合、デフォルト値は text/html
です。
次の例では、mime_type
フィールドを使用しています。
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"]}'
出力では、翻訳されたテキストが返されます。
Python
Python スクリプトから Vertex AI Translation サービスを使用する手順は次のとおりです。
作成した Python スクリプトに次のコードを追加します。
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)
次のように置き換えます。
ENDPOINT
: 組織で使用する Vertex AI Translation エンドポイント。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。PROJECT_ID
: プロジェクト ID。SOURCE_LANGUAGE
: 入力テキストの言語コード。サポートされている言語とそれぞれの言語コードの一覧をご覧ください。TARGET_LANGUAGE
: テキストの翻訳先の言語コード。サポートされている言語とその言語コードのリストをご覧ください。INPUT_TEXT
: 原文の言語の入力テキスト。
mime_type
フィールドを使用して、ファイルの種類を指定します。mime_type
フィールドを次のいずれかの値に設定します。text/plain
: 入力がプレーン テキストの場合。text/html
: 入力が HTML テキストである。
mime_type
フィールドが空の場合、デフォルト値はtext/html
です。Python スクリプトを保存します。
Python スクリプトを実行してテキストを翻訳します。
python SCRIPT_NAME
SCRIPT_NAME
は、Python スクリプトに付けた名前(translation.py
など)に置き換えます。
translateText
メソッドの詳細については、Python クライアント ライブラリをご覧ください。
翻訳からテキストを除外する
リクエストの contents
フィールドで次のいずれかの HTML タグを使用して、テキストの一部を翻訳から除外します。
<span translate="no">"TEXT"</span>
<span class="notranslate">"TEXT"</span>
TEXT
は、翻訳から除外するテキストの部分に置き換えます。
たとえば、次のようなスペイン語の入力テキストがあるとします。
Hola, esto es una prueba.
このテキストは英語に翻訳され、次の文になります。
Hello, this is a test.
入力テキストから Hola,
を除外して、テキストの次の部分のみを変換するとします。
esto es una prueba.
この部分のテキストは、英語では次のように翻訳されます。
this is a test.
HTML タグを使用して、翻訳からテキストを除外します。たとえば、次の curl
リクエストでは、テキストを英語に翻訳するときに、<span class="notranslate">"TEXT"</span>
タグを使用して、スペイン語の前の入力テキストから Hola,
を除外します。
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."]}'
言語を検出する
detectLanguage
メソッドは、HTTP リクエストを送信してテキスト文字列の言語を返します。
たとえば、次のリクエストは、入力テキスト 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", "contents": ["Hello, this is a test"]}'
オペレーションを取得する
getOperation
メソッドは、長時間実行オペレーションの最新の状態を返します。このメソッドを使用して、Vertex AI Translation API サービスによって生成されたオペレーション結果を取得します。このメソッドを使用するには、プロジェクト ID と Vertex AI Translation エンドポイントを指定します。
たとえば、次のリクエストは、プロジェクトで実行されている長時間実行オペレーション(用語集の作成など)の状態を返します。
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/PROJECT_ID
処理の一覧を表示します
listOperations
メソッドは、リクエストで指定されたフィルタに一致する長時間実行オペレーションのリストを返します。このメソッドを使用するには、プロジェクト ID と Vertex AI Translation エンドポイントを指定します。
たとえば、次のリクエストは、プロジェクトで実行されているオペレーションのリストを返し、ページサイズを 1 ページあたり 10 件の結果に制限します。
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10
サポートされている言語を取得する
getSupportedLanguages
メソッドは、Vertex AI Translation API でサポートされている言語のリストを返します。
たとえば、次のリクエストは、Vertex AI Translation エンドポイントを指定して、サポートされている言語を返します。
curl
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:getSupportedLanguages -d "{}"
サポートされている言語の完全なリストについては、Vertex AI Translation でサポートされている言語をご覧ください。