שירותי Vertex AI Translation וזיהוי תווים אופטי (OCR) משולבים כדי לספק תכונה לעיבוד מסמכים שנקראת Document Translate.
התכונה "תרגום מסמכים" מתרגמת ישירות מסמכים בפורמט מסוים, כמו קובצי PDF. בהשוואה לתרגום טקסט פשוט, התכונה שומרת על העיצוב והפריסה המקוריים במסמכים המתורגמים, וכך עוזרת לשמור על חלק גדול מההקשר המקורי, כמו מעברי פסקאות.
הכלי Document Translate תומך בתרגום מסמכים באופן מוטבע, מקטגוריות אחסון ובאצווה.
בדף הזה מוסבר איך להשתמש בתכונה לעיבוד מסמכים ב-Google Distributed Cloud (GDC) עם פער אוויר כדי לתרגם מסמכים בלי לשנות את הפורמט שלהם.
פורמטים נתמכים
התכונה "תרגום מסמכים" תומכת בסוגי הקבצים הבאים לקלט ולפלט:
| הנחיות | סוג MIME של המסמך | פלט |
|---|---|---|
application/pdf |
PDF, DOCX | |
| DOC | application/msword |
DOC, DOCX |
| DOCX | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
DOCX |
| PPT | application/vnd.ms-powerpoint |
PPT, PPTX |
| PPTX | application/vnd.openxmlformats-officedocument.presentationml.presentation |
PPTX |
| XLS | application/vnd.ms-excel |
XLS, XLSX |
| XLSX | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
XLSX |
תרגום של מסמכי PDF מקוריים וסרוקים
אפשר לתרגם מסמכי PDF מקוריים וסרוקים, כולל תרגומים לשפות שנכתבות מימין לשמאל או משפות כאלה. בנוסף, התכונה "תרגום מסמכים" שומרת על ההיפר-קישורים, גודל הגופן וצבע הגופן מהקבצים.
לפני שמתחילים
כדי להשתמש בתכונה של עיבוד מסמכים, צריך פרויקט בשם dt-project. המשאב המותאם אישית של הפרויקט צריך להיראות כמו בדוגמה הבאה:
apiVersion: resourcemanager.gdc.goog/v1
kind: Project
metadata:
labels:
atat.config.google.com/clin-number: CLIN_NUMBER
atat.config.google.com/task-order-number: TASK_ORDER_NUMBER
name: dt-project
namespace: platform
בנוסף, צריך להפעיל את ממשקי ה-API של Vertex AI Translation ו-OCR שעברו אימון מראש, ולוודא שיש לכם את פרטי הכניסה המתאימים. כדי להקל על הקריאות ל-API, כדאי להתקין את ספריות הלקוח של Vertex AI Translation ו-OCR. איך מגדירים פרויקט תרגום
תרגום מסמך מקטגוריית אחסון
כדי לתרגם מסמך שמאוחסן בקטגוריה, משתמשים ב-Vertex AI Translation API.
בקטע הזה מוסבר איך לתרגם מסמך מקטגוריה ולאחסן את התוצאה בנתיב של קטגוריית פלט אחרת. התגובה גם מחזירה זרם בייטים. אתם יכולים לציין את סוג ה-MIME. אם לא תציינו אותו, סוג ה-MIME ייקבע לפי הסיומת של קובץ הקלט.
התכונה "תרגום מסמכים" תומכת בזיהוי שפה אוטומטי במסמכים שמאוחסנים בקטגוריות. אם לא תציינו קוד שפת מקור, השפה תזוהה על ידי Document Translate. השפה שזוהתה נכללת בפלט בשדה detectedLanguageCode.
כדי לתרגם מסמך מקטגוריית אחסון:
- הגדרת ה-gdcloud CLI למאגר אובייקטים.
יוצרים קטגוריית אחסון במרחב השמות
dt-project. משתמשים בסוג האחסון (storage class)Standard.כדי ליצור את קטגוריית האחסון, פורסים משאב
Bucketבמרחב השמותdt-project:apiVersion: object.gdc.goog/v1 kind: Bucket metadata: name: dt-bucket namespace: dt-project spec: description: bucket for document vision service storageClass: Standard bucketPolicy: lockingPolicy: defaultObjectRetentionDays: 90נותנים לחשבונות השירות (
ai-translation-system-saו-g-vai-translation-sie-sa) שמשמשים את שירות Vertex AI Translation את ההרשאותreadו-writeבקטגוריה.כדי ליצור את התפקיד ואת קישור התפקיד באמצעות משאבים בהתאמה אישית בשרת ה-API לניהול:
יוצרים את התפקיד על ידי פריסת משאב
Roleבמרחב השמותdt-project:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: dvs-reader-writer namespace: dt-project rules: - apiGroups: - object.gdc.goog resources: - buckets verbs: - read-object - write-objectיוצרים את קישור התפקיד על ידי פריסת משאב
RoleBindingבמרחב השמותdt-project:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: dvs-reader-writer-rolebinding namespace: dt-project roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: dvs-reader-writer subjects: - kind: ServiceAccount name: ai-translation-system-sa namespace: g-vai-translation-sie - kind: ServiceAccount name: g-vai-translation-sie-sa namespace: g-vai-translation-sie
מעלים את המסמך לקטגוריית האחסון שיצרתם. מידע נוסף זמין במאמר העלאה והורדה של אובייקטים באחסון בפרויקטים.
שולחים בקשה ל-API של Vertex AI Translation שעבר אימון מראש:
curl
כדי לשלוח בקשה ל-
curl:שומרים את קובץ ה-
request.jsonהבא:cat <<- EOF > request.json { "parent": "projects/PROJECT_ID/locations/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "s3_source": { "input_uri": "s3://INPUT_FILE_PATH" } }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true" } EOFמחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
SOURCE_LANGUAGE: השפה שבה כתוב המסמך. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: השפה או השפות שאליהן רוצים לתרגם את המסמך. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
INPUT_FILE_PATH: הנתיב של קובץ המסמך בקטגוריית האחסון.
משנים את הערך של
mime_typeבהתאם למסמך.שולחים את הבקשה:
curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument < request.jsonמחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. ENDPOINT: נקודת הקצה של Vertex AI Translation שבה משתמשים בארגון. למידע נוסף על סטטוס השירות ונקודות הקצהPROJECT_ID: מזהה הפרויקט.
-
תרגום מסמך בתוך השורה
בקטע הזה מוסבר איך לשלוח מסמך כחלק מבקשת ה-API. צריך לכלול את סוג ה-MIME לתרגומים של מסמכים מוטבעים.
התכונה "תרגום מסמכים" תומכת בזיהוי שפה אוטומטי לתרגום טקסט מוטבע. אם לא תציינו קוד שפת מקור, השפה תזוהה אוטומטית על ידי Document Translate. השפה שזוהתה נכללת בפלט בשדה detectedLanguageCode.
שולחים בקשה ל-API של Vertex AI Translation שעבר אימון מראש:
curl
כדי לשלוח בקשה ל-curl:
שולחים את הבקשה:
echo '{"parent": "projects/PROJECT_ID/locations/PROJECT_ID","source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "content": "'$(base64 -w 0 INPUT_FILE_PATH)'" }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true"}' | curl --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument
מחליפים את מה שכתוב בשדות הבאים:
PROJECT_ID: מזהה הפרויקט.-
SOURCE_LANGUAGE: השפה שבה כתוב המסמך. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: השפה או השפות שאליהן רוצים לתרגם את המסמך. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
INPUT_FILE_PATH: הנתיב של קובץ המסמך באופן מקומי. -
TOKEN: אסימון האימות שקיבלתם. ENDPOINT: נקודת הקצה של Vertex AI Translation שבה משתמשים בארגון. מידע נוסף על סטטוס השירות ונקודות הקצה
תרגום של כמה מסמכים בבת אחת
תרגום באצווה מאפשר לתרגם כמה קבצים לכמה שפות בבקשה אחת. בכל בקשה אפשר לשלוח עד 100 קבצים, עם תוכן בגודל כולל של עד 1GB או 100 מיליון נקודות קוד של Unicode, המגבלה הראשונה מביניהן. אפשר לציין מודל תרגום מסוים לכל שפה.
מידע נוסף זמין במאמר batchTranslateDocument.
תרגום של כמה מסמכים
הדוגמה הבאה כוללת כמה הגדרות קלט. כל הגדרת קלט היא מצביע לקובץ בקטגוריית אחסון.
שולחים בקשה ל-API של Vertex AI Translation שעבר אימון מראש:
curl
כדי לשלוח בקשה ל-curl:
שומרים את גוף הבקשה הבא בקובץ בשם
request.json:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_1" } }, { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } } }מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_LANGUAGE: קוד השפה של מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: שפת היעד או השפות שאליהן רוצים לתרגם את מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
INPUT_FILE_PATH: המיקום של קטגוריית האחסון ושם הקובץ של מסמך קלט אחד או יותר. OUTPUT_FILE_PREFIX: המיקום של קטגוריית האחסון שבה נשמרים כל מסמכי הפלט.
-
שולחים את הבקשה:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"מחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. ENDPOINT: נקודת הקצה של Vertex AI Translation שבה משתמשים בארגון. למידע נוסף על סטטוס השירות ונקודות הקצהPROJECT_ID: מזהה הפרויקט.
-
התגובה מכילה את המזהה של פעולה ממושכת:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
תרגום והמרה של קובץ PDF מקורי
בדוגמה הבאה, קובץ PDF מקורי מתורגם ומומר לקובץ DOCX. אפשר לציין כמה קלטים מסוגי קבצים שונים, ולא כולם חייבים להיות קובצי PDF מקוריים. עם זאת, אי אפשר לכלול קובצי PDF סרוקים כשכוללים המרה. הבקשה נדחית ולא מתבצעים תרגומים. רק קובצי PDF מקוריים מתורגמים ומומרים לקובצי DOCX. לדוגמה, אם אתם כוללים קובצי PPTX, הם מתורגמים ומוחזרים כקובצי PPTX.
אם אתם מתרגמים באופן קבוע שילוב של קובצי PDF סרוקים ומקוריים, מומלץ לארגן אותם בקטגוריות נפרדות. כך, כשאתם מבקשים תרגום והמרה של קבוצת קבצים, אתם יכולים להחריג את הקטגוריה שמכילה קובצי PDF סרוקים במקום להחריג קבצים בודדים.
שולחים בקשה ל-API של Vertex AI Translation שעבר אימון מראש:
curl
כדי לשלוח בקשה ל-curl:
שומרים את גוף הבקשה הבא בקובץ בשם
request.json:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_1" } }, { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } }, "format_conversions": { "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" } }מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_LANGUAGE: קוד השפה של מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: שפת היעד או השפות שאליהן רוצים לתרגם את מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
INPUT_FILE_PATH: המיקום של קטגוריית האחסון ושם הקובץ של מסמך קלט אחד או יותר. OUTPUT_FILE_PREFIX: המיקום של קטגוריית האחסון שבה נשמרים כל מסמכי הפלט.
-
שולחים את הבקשה:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"מחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. ENDPOINT: נקודת הקצה של Vertex AI Translation שבה משתמשים בארגון. למידע נוסף על סטטוס השירות ונקודות הקצהPROJECT_ID: מזהה הפרויקט.
-
התגובה מכילה את המזהה של פעולה ממושכת:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
שימוש במילון מונחים
אפשר לכלול מילון מונחים כדי לטפל בטרמינולוגיה ספציפית לתחום. אם מציינים מילון מונחים, צריך לציין את שפת המקור. בדוגמה הבאה נעשה שימוש במילון מונחים. אפשר לציין עד 10 שפות יעד, שלכל אחת מהן יש מילון מונחים משלה.
אם תציינו מילון מונחים לחלק משפות היעד, המערכת לא תשתמש במילון מונחים לשפות שלא צוינו.
שולחים בקשה ל-API של Vertex AI Translation שעבר אימון מראש:
curl
כדי לשלוח בקשה ל-curl:
שומרים את גוף הבקשה הבא בקובץ בשם
request.json:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH" } } ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } }, "glossaries": { "TARGET_LANGUAGE": { "glossary": "projects/GLOSSARY_PROJECT_ID/glossaries/GLOSSARY_ID" }, ... } }מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_LANGUAGE: קוד השפה של מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
TARGET_LANGUAGE: שפת היעד או השפות שאליהן רוצים לתרגם את מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן. -
INPUT_FILE_PATH: המיקום של קטגוריית האחסון ושם הקובץ של מסמך קלט אחד או יותר. OUTPUT_FILE_PREFIX: המיקום של קטגוריית האחסון שבה נשמרים כל מסמכי הפלט.-
GLOSSARY_PROJECT_ID: מזהה הפרויקט שבו נמצא מילון המונחים. -
GLOSSARY_ID: מזהה מילון המונחים.
-
שולחים את הבקשה:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"מחליפים את מה שכתוב בשדות הבאים:
-
TOKEN: אסימון האימות שקיבלתם. ENDPOINT: נקודת הקצה של Vertex AI Translation שבה משתמשים בארגון. למידע נוסף על סטטוס השירות ונקודות הקצהPROJECT_ID: מזהה הפרויקט.
-
התגובה מכילה את המזהה של פעולה ממושכת:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}