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 標記之間的文字,不會翻譯標記。不過,這項工具會翻譯 HTML5 標記中的屬性,例如 alt
屬性。語法中會使用 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", "content": "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 端點。
舉例來說,下列要求會傳回專案中執行的作業清單,並將每頁大小限制為每頁十個結果:
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10
取得支援的語言
supportedLanguages
方法會傳回 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/locations/PROJECT_ID/supportedLanguages -d "{}"
如需支援語言的完整清單,請參閱「Vertex AI Translation 支援的語言」。