שירות Vertex AI Translation ב-Google Distributed Cloud (GDC) עם air gap מאפשר לתרגם טקסט פשוט ו-HTML בין כל השפות הנתמכות.
אתם יכולים לשלוח בקשות ל-Vertex AI Translation API באמצעות curl או ספריית הלקוח של Python. ה-API גם מספק שיטות להחלת מילוני מונחים בהתאמה אישית, לזיהוי שפות מקור, להצגת רשימה של שפות נתמכות ולבדיקת סטטוס הפעולה.
לפני שמתחילים
כדי לתרגם טקסט, צריך לבקש מאדמין ה-IAM של הפרויקט את התפקיד מפתח AI Translation (ai-translation-developer) במרחב השמות של הפרויקט.
למידע נוסף על התפקיד הזה, קראו את המאמר הכנת הרשאות IAM.
כדי להתחיל להשתמש ב-Vertex AI Translation API, צריך פרויקט שבו מופעל Vertex AI Translation API ופרטי כניסה מתאימים. אפשר גם להתקין ספריות לקוח שיעזרו לכם לבצע קריאות ל-API. מידע נוסף זמין במאמר הגדרת פרויקט תרגום.
תרגום טקסט
השיטה translateText מקבלת טקסט קלט בשפה מסוימת ומחזירה את הטקסט המתורגם לשפה אחרת. אפשר להזין טקסט פשוט או טקסט ב-HTML.
אם מזינים טקסט ב-HTML, השיטה translateText מתרגמת רק את הטקסט שבין תגי ה-HTML, בלי לתרגם את התגים עצמם. עם זאת, הוא מתרגם מאפיינים בתגי HTML5, כמו מאפייני alt. דוגמה לשימוש בתגים ובמאפיינים של HTML5 מופיעה בתחביר להחרגת טקסט מתרגום.
הפלט שומר על תגי ה-HTML שלא תורגמו וכולל את הטקסט המתורגם ביניהם.
שולחים בקשת curl ל-API שעבר אימון מראש של Vertex AI Translation. אחרת, אתם יכולים להשתמש ב-API המאומן מראש של Vertex AI Translation מסקריפט Python כדי לתרגם טקסט משפה אחת לאחרת.
הדוגמאות הבאות מראות איך לתרגם טקסט קלט משפה אחת לאחרת:
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: מזהה הפרויקט.-
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
כדי להשתמש בשירות Vertex AI Translation מסקריפט 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: מזהה הפרויקט.-
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.
החרגת טקסט מהתרגום
כדי להחריג חלקים מהטקסט מהתרגום, צריך להשתמש באחד מתגי ה-HTML הבאים בשדה contents של הבקשות:
<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."]}'
תרגום באמצעות מילון מונחים
כדי לתרגם טקסט עם מילים ממילון מונחים, צריך ליצור מילון מונחים:
שומרים את קובץ ה-
request_glossary.jsonהבא:{ "sourceLanguageCode": "SOURCE_LANGUAGE", "targetLanguageCode": "TARGET_LANGUAGE", "contents": ["TEXT"], "glossaryConfig": { "glossary": "projects/PROJECT_ID/glossaries/GLOSSARY_ID", "ignoreCase": IGNORE_CASE_BOOLEAN } }מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
SOURCE_LANGUAGE: השפה שבה הטקסט כתוב. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: השפה שאליה רוצים לתרגם את הטקסט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. TEXT: תרגום טקסט שכולל מילים ממילון המונחים-
GLOSSARY_ID: המזהה של מילון המונחים, לדוגמה:G11111111114524 -
IGNORE_CASE_BOOLEAN: אם ההתאמה למונח במילון המונחים לא תלוית-רישיות (trueאוfalse).
שולחים את הבקשה:
curl -vv -X POST -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID:translateText -d @request_glossary.json
דוגמה והפלט הצפוי:
בקשה:
{
"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
}
}
תשובה:
{"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"
}}
]}
השדה translations מכיל את התרגום האוטומטי הרגיל לפני החלת מילון המונחים.
השדה glossaryTranslations מכיל את התרגום אחרי החלת מילון המונחים.
זהה את השפה
השיטה detectLanguage מחזירה את השפה של מחרוזת טקסט על ידי שליחת בקשת HTTP.
לדוגמה, הבקשה הבאה מזהה את השפה אנגלית מטקסט הקלט Hello, this is a test:
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"}'
קבלת פעולה
ה-method getOperation מחזירה את המצב האחרון של פעולה ממושכת.
אתם יכולים להשתמש בשיטה הזו כדי לאחזר את תוצאת הפעולה שנוצרה על ידי שירות Vertex AI Translation API. כדי להשתמש בשיטה הזו, צריך לציין את מזהה הפרויקט, את מזהה הפעולה (OPERATION_ID) שהוחזר מהקריאה לפעולה ממושכת ואת נקודת הקצה של Vertex AI Translation.
לדוגמה, הבקשה הבאה מחזירה את הסטטוס של פעולה ממושכת, כמו יצירת מילון מונחים, שפועלת בפרויקט:
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations/OPERATION_ID
הצגת רשימה של פעולות
ה-method listOperations מחזירה רשימה של הפעולות הממושכות שתואמות למסנן שצוין בבקשה. כדי להשתמש בשיטה הזו, צריך לציין את מזהה הפרויקט ואת נקודת הקצה של Vertex AI Translation.
לדוגמה, הבקשה הבאה מחזירה את רשימת הפעולות שפועלות בפרויקט, ומגבילה את גודל הדף ל-10 תוצאות בכל דף:
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/operations?page_size=10
השפות הנתמכות
ה-method supportedLanguages מחזירה את רשימת השפות שנתמכות ב-Vertex AI Translation API.
לדוגמה, הבקשה הבאה מחזירה את השפות הנתמכות על ידי ציון נקודת הקצה של Vertex AI Translation:
curl -vv -X GET -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/supportedLanguages
רשימת השפות שנתמכות ב-Vertex AI Translation