Google Distributed Cloud (GDC) 實體隔離設備中的 Vertex AI Translation 服務,可讓您在支援的語言之間翻譯純文字和 HTML。您可以使用 curl 或 Python 用戶端程式庫,將要求傳送至 Vertex AI Translation API。此外,這個 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) 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。
指定不要翻譯的文字
在要求的 contents 欄位中使用下列其中一個 HTML 代碼,即可排除部分文字,不進行翻譯:
<span translate="no">"TEXT"</span><span class="notranslate">"TEXT"</span>
將 TEXT 替換為要從翻譯中排除的文字部分。
舉例來說,假設您有下列法文輸入文字:
Bonjour, c'est un test.
這段文字翻譯成英文後,會變成以下句子:
Hello, this is a test.
假設您只想翻譯下列文字,並從輸入文字中排除 Bonjour,:
c'est un test.
這段文字翻譯成英文後,會變成以下句子:
this is a test.
使用 HTML 代碼,即可排除不需翻譯的文字。舉例來說,下列 curl 要求使用 <span class="notranslate">"TEXT"</span> 標記,在將文字翻譯成英文時,從先前的法文輸入文字中排除 Bonjour,:
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": "fr", "target_language_code": "en", "contents": ["<span class=\"notranslate\">\"Bonjour,\"</span>\"c'est un test.\""]}'
偵測語言
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"}'
取得支援語言
supportedLanguages 方法會傳回 Vertex AI Translation API 支援的語言清單。
舉例來說,下列要求會指定 Vertex AI Translation 端點,傳回支援的語言:
curl
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID/supportedLanguages
如需支援語言的完整清單,請參閱「Vertex AI Translation 支援的語言」。