שירותי Vertex AI Translation וזיהוי תווים אופטי (OCR) משולבים כדי לספק תכונה לעיבוד מסמכים שנקראת Document Translate (תרגום מסמכים).
הכלי 'תרגום מסמכים' מתרגם ישירות מסמכים מעוצבים כמו קובצי PDF. בהשוואה לתרגום טקסט רגיל, התכונה הזו שומרת על העיצוב והפריסה המקוריים במסמכים המתורגמים, ועוזרת לשמור על רוב ההקשר המקורי, כמו מעברי פסקאות.
הכלי 'תרגום מסמכים' תומך בתרגום מסמכים בתוך הטקסט, ממאגרי אחסון ובצורה של אצווה.
בדף הזה מוסבר איך להשתמש בתכונה לעיבוד מסמכים ב-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 מקוריים ובקובצי 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 שעברו אימון מראש ולוודא שיש לכם את פרטי הכניסה המתאימים. כדאי להתקין את ספריות הלקוח של Vertex AI Translation ו-OCR כדי להקל על קריאות ה-API. מידע נוסף על הדרישות המוקדמות זמין במאמר הגדרת פרויקט תרגום.
תרגום מסמך מקטגוריית אחסון
כדי לתרגם מסמך שמאוחסן בדלי, משתמשים ב-Vertex AI Translation API.
בקטע הזה נסביר איך לתרגם מסמך מקטגוריה ולאחסן את התוצאה בנתיב אחר של קטגוריית פלט. התגובה מחזירה גם זרם בייטים. אתם יכולים לציין את סוג ה-MIME. אם לא תציינו אותו, הכלי לתרגום מסמכים יקבע אותו לפי הסיומת של קובץ הקלט.
התכונה 'תרגום מסמכים' תומכת בזיהוי אוטומטי של שפות במסמכים שמאוחסנים בדליים. אם לא מציינים קוד של שפת מקור, הכלי לתרגום מסמכים מזהה את השפה בשבילכם. השפה שזוהתה מופיעה בפלט בשדה detectedLanguageCode.
כדי לתרגם מסמך ממאגר אחסון:
- הגדרת ה-CLI של gcloud לאחסון אובייקטים.
יוצרים קטגוריית אחסון במרחב השמות
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) שבו משתמש שירות התרגום של Vertex AI הרשאותreadו-writeבקטגוריית האחסון.כדי ליצור את התפקיד ואת הקישור לתפקיד באמצעות משאבים בהתאמה אישית, פועלים לפי השלבים הבאים:
יוצרים את התפקיד על ידי פריסת משאב
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
מעלים את המסמך לקטגוריית האחסון שיצרתם. מידע נוסף זמין במאמר העלאה והורדה של אובייקטים של אחסון בפרויקטים.
שליחת בקשה אל Vertex AI Translation API שעבר אימון מראש:
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.
שליחת בקשה אל Vertex AI Translation API שעבר אימון מראש:
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.
תרגום של כמה מסמכים
בדוגמה הבאה מוצגות כמה הגדרות קלט. כל הגדרת קלט היא מצביע לקובץ בדלי אחסון.
שליחת בקשה אל Vertex AI Translation API שעבר אימון מראש:
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 מקוריים, מומלץ לארגן אותם בדלי אחסון נפרדים. כך, כשמבקשים תרגום והמרה של קבוצת קבצים, אפשר להחריג את ה-bucket שמכיל קובצי PDF סרוקים, במקום להחריג קבצים בודדים.
שליחת בקשה אל Vertex AI Translation API שעבר אימון מראש:
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 שפות יעד עם מילון מונחים משלהן.
אם מציינים מילון מונחים לשפות יעד מסוימות, המערכת לא משתמשת במילון מונחים לשפות שלא צוינו.
שליחת בקשה אל Vertex AI Translation API שעבר אימון מראש:
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" }, ... } }מחליפים את מה שכתוב בשדות הבאים:
-
SOURCE_LANGUAGE: קוד השפה של מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות ובקודים של השפות האלה. -
TARGET_LANGUAGE: שפת היעד או השפות שאליהן רוצים לתרגם את מסמכי הקלט. כאן אפשר לעיין ברשימת השפות הנתמכות ובקודים של השפות האלה. -
INPUT_FILE_PATH: המיקום של קטגוריית האחסון ושם הקובץ של מסמך קלט אחד או יותר. OUTPUT_FILE_PREFIX: המיקום של מאגר האחסון שבו נשמרים כל מסמכי הפלט.-
GLOSSARY_PROJECT_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"
}
}