סנכרון מ-Cloud Storage

יש שתי דרכים ליצור מאגרי נתונים מטבלאות ב-Cloud Storage:

  • הטמעה חד-פעמית: מייבאים נתונים מתיקייה או מקובץ ב-Cloud Storage למאגר נתונים. הנתונים במאגר הנתונים לא משתנים אלא אם מרעננים את הנתונים באופן ידני.

  • הטמעה תקופתית: אתם מייבאים נתונים מתיקייה או מקובץ ב-Cloud Storage, ומגדירים תדירות סנכרון שקובעת כמה פעמים מאגר הנתונים מתעדכן בנתונים העדכניים ביותר ממיקום Cloud Storage הזה.

בטבלה הבאה מוצגות שתי הדרכים שבהן אפשר לייבא נתונים מ-Cloud Storage למאגרי נתונים של Gemini Enterprise.

הוספה חד-פעמית הטמעה תקופתית
זמינות לכלל המשתמשים (GA). גרסת טרום-השקה ציבורית.
צריך לרענן את הנתונים באופן ידני. הנתונים מתעדכנים אוטומטית כל יום, כל שלושה ימים או כל חמישה ימים. אי אפשר לרענן את הנתונים באופן ידני.
‫Gemini Enterprise יוצר מאגר נתונים יחיד מתיקייה או מקובץ אחד ב-Cloud Storage. ‫Gemini Enterprise יוצר מחבר נתונים, ומקשר אליו מאגר נתונים (שנקרא מאגר נתונים של ישויות) עבור הקובץ או התיקייה שצוינו. לכל מחבר נתונים של Cloud Storage יכול להיות מאגר נתונים של ישות אחת.
אפשר לשלב נתונים מכמה קבצים, תיקיות וקטגוריות במאגר נתונים אחד. לשם כך, קודם צריך להטמיע נתונים ממיקום אחד ב-Cloud Storage, ואז להטמיע עוד נתונים ממיקום אחר. מכיוון שאין תמיכה בייבוא נתונים ידני, אפשר לייבא את הנתונים במאגר נתוני ישויות רק מקובץ או מתיקייה אחת ב-Cloud Storage.
יש תמיכה בבקרת גישה למקורות נתונים. מידע נוסף מופיע במאמר בקרת גישה למקורות נתונים. בקרת גישה למקור הנתונים אינה אפשרית. הנתונים המיובאים יכולים לכלול אמצעי בקרה לגישה, אבל המערכת לא תתחשב בהם.
אפשר ליצור מאגר נתונים באמצעותGoogle Cloud המסוף או ה-API. צריך להשתמש במסוף כדי ליצור מחברי נתונים ומאגרי נתונים של ישויות.
תואם ל-CMEK. תואם ל-CMEK.

לפני שמתחילים

כדי לייבא נתונים מ Google Cloud פרויקט מקור ששונה מGoogle Cloud הפרויקט עם מאגר הנתונים של Gemini Enterprise, צריך להעניק את תפקידי ניהול הזהויות והרשאות הגישה (IAM) הבאים לחשבון השירות service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam.gserviceaccount.comבפרויקט שמכיל את מאגר הנתונים של Gemini Enterprise:

ייבוא חד-פעמי מ-Cloud Storage

כדי להטמיע נתונים מ-Cloud Storage, צריך ליצור מאגר נתונים ולהטמיע נתונים באמצעות Google Cloud המסוף או ה-API.

לפני שמייבאים את הנתונים, כדאי לעיין במאמר בנושא הכנת נתונים להוספה.

המסוף

כדי להטמיע נתונים מקטגוריה של Cloud Storage באמצעות המסוף, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Gemini Enterprise במסוף Google Cloud .

    Gemini Enterprise

  2. עוברים לדף מאגרי נתונים.

  3. לוחצים על יצירת מאגר נתונים.

  4. בדף בחירת מקור נתונים, בוחרים באפשרות Cloud Storage.

  5. בקטע Select a folder or file you want to import (בחירת תיקייה או קובץ לייבוא), בוחרים באפשרות Folder (תיקייה) או File (קובץ).

  6. לוחצים על עיון, בוחרים את הנתונים שהכנתם להעלאה ולוחצים על בחירה. אפשר גם להזין את המיקום ישירות בשדה gs://.

  7. בוחרים את סוג הנתונים שמייבאים.

  8. לוחצים על Continue.

  9. אם אתם מבצעים ייבוא חד-פעמי של נתונים מובְנים:

    1. מיפוי שדות למאפייני מפתח.

    2. אם חסרים בשדה סכימה שדות חשובים, משתמשים באפשרות הוספת שדה חדש כדי להוסיף אותם.

      מידע נוסף זמין במאמר מידע על זיהוי ועריכה אוטומטיים.

    3. לוחצים על Continue.

  10. בוחרים אזור למאגר הנתונים.

  11. מזינים שם למאגר הנתונים.

  12. אופציונלי: אם בחרתם מסמכים לא מובנים, אתם יכולים לבחור אפשרויות ניתוח וחלוקה למקטעים של המסמכים. כדי להשוות בין מנתחי נתונים, אפשר לעיין במאמר בנושא ניתוח מסמכים. מידע על חלוקה לקטעים זמין במאמר חלוקת מסמכים לקטעים לשימוש ב-RAG.

    שימוש בכלי לניתוח OCR ובכלי לניתוח פריסה עלול לגרור עלויות נוספות. מידע על התמחור של התכונות ב-Document AI

    כדי לבחור מנתח, מרחיבים את אפשרויות לעיבוד מסמכים ומציינים את אפשרויות המנתח שרוצים להשתמש בהן.

  13. לוחצים על יצירה.

  14. כדי לבדוק את סטטוס ההטמעה, עוברים לדף מאגרי נתונים ולוחצים על השם של מאגר הנתונים כדי לראות את הפרטים שלו בדף נתונים. ההטמעה מסתיימת כשהסטטוס בעמודה סטטוס בכרטיסייה פעילות משתנה מבתהליך להייבוא הושלם.

    בהתאם לגודל הנתונים, תהליך ההטמעה יכול להימשך כמה דקות או כמה שעות.

REST

כדי ליצור מאגר נתונים ולהטמיע נתונים מ-Cloud Storage באמצעות שורת הפקודה, פועלים לפי השלבים הבאים.

  1. יוצרים מאגר נתונים.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores?dataStoreId=DATA_STORE_ID" \
    -d '{
      "displayName": "DATA_STORE_DISPLAY_NAME",
      "industryVertical": "GENERIC",
      "solutionTypes": ["SOLUTION_TYPE_SEARCH"],
      "contentConfig": "CONTENT_REQUIRED",
    }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • DATA_STORE_ID: המזהה של מאגר הנתונים שרוצים ליצור. המזהה יכול להכיל רק אותיות קטנות, ספרות, קווים תחתונים ומקפים.
    • DATA_STORE_DISPLAY_NAME: השם המוצג של מאגר הנתונים שרוצים ליצור.

    אופציונלי: כדי להגדיר ניתוח של מסמכים או להפעיל חלוקה של מסמכים לחלקים עבור RAG, מציינים את אובייקט documentProcessingConfig וכוללים אותו בבקשה ליצירת מאגר נתונים. מומלץ להגדיר מנתח OCR לקובצי PDF אם אתם מבצעים המרה של קובצי PDF סרוקים. במאמר ניתוח מסמכים וחלוקה שלהם לחלקים מוסבר איך מגדירים את האפשרויות של ניתוח או חלוקה לחלקים.

  2. ייבוא נתונים מ-Cloud Storage.

      curl -X POST \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
      -d '{
        "gcsSource": {
          "inputUris": ["INPUT_FILE_PATTERN_1", "INPUT_FILE_PATTERN_2"],
          "dataSchema": "DATA_SCHEMA",
        },
        "reconciliationMode": "RECONCILIATION_MODE",
        "autoGenerateIds": "AUTO_GENERATE_IDS",
        "idField": "ID_FIELD",
        "errorConfig": {
          "gcsPrefix": "ERROR_DIRECTORY"
        }
      }'
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה הפרויקט.
    • DATA_STORE_ID: המזהה של מאגר הנתונים.
    • INPUT_FILE_PATTERN: תבנית קובץ ב-Cloud Storage שמכילה את המסמכים שלכם.

      לנתונים מובְנים או לנתונים לא מובְנים עם מטא-נתונים, דוגמה לתבנית של קובץ קלט היא gs://<your-gcs-bucket>/directory/object.jsonודוגמה להתאמת תבנית לקובץ אחד או יותר היא gs://<your-gcs-bucket>/directory/*.json.

      דוגמה למסמך לא מובנה היא gs://<your-gcs-bucket>/directory/*.pdf. כל קובץ שתואם לתבנית הופך למסמך.

      אם <your-gcs-bucket> לא מופיע בקטע PROJECT_ID, צריך לתת לחשבון השירות service-<project number>@gcp-sa-discoveryengine.iam.gserviceaccount.com הרשאות 'צפייה באובייקט אחסון' בקטגוריה של Cloud Storage. לדוגמה, אם מייבאים קטגוריה של Cloud Storage מפרויקט המקור '123' לפרויקט היעד '456', צריך לתת הרשאות service-456@gcp-sa-discoveryengine.iam.gserviceaccount.com בקטגוריה של Cloud Storage בפרויקט '123'.

    • DATA_SCHEMA: אופציונלי. הערכים הם document,‏ custom,‏ csv ו-content. ערך ברירת המחדל הוא document.

      • document: העלאת נתונים לא מובנים עם מטא-נתונים עבור מסמכים לא מובנים. כל שורה בקובץ צריכה להיות באחד מהפורמטים הבאים. אפשר להגדיר את המזהה של כל מסמך:

        • { "id": "<your-id>", "jsonData": "<JSON string>", "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
        • { "id": "<your-id>", "structData": <JSON object>, "content": { "mimeType": "<application/pdf or text/html>", "uri": "gs://<your-gcs-bucket>/directory/filename.pdf" } }
      • custom: העלאת JSON למסמכים מובנים. הנתונים מאורגנים לפי סכימה. אפשר לציין את הסכימה, אחרת המערכת תזהה אותה באופן אוטומטי. אפשר להזין את מחרוזת ה-JSON של המסמך בפורמט עקבי ישירות בכל שורה, ו-Gemini Enterprise ייצור אוטומטית את המזהים לכל מסמך שיובא.

      • content: העלאת מסמכים לא מובנים (PDF, ‏ HTML, ‏ DOC, ‏ TXT,‏ PPTX). המזהה של כל מסמך נוצר אוטומטית בתור 128 הביטים הראשונים של SHA256(GCS_URI) שמקודדים כמחרוזת הקסדצימלית. אפשר לציין כמה תבניות של קובצי קלט, כל עוד מספר הקבצים התואמים לא חורג מהמגבלה של 100,000 קבצים.

      • csv: כוללים שורת כותרת בקובץ ה-CSV, כשכל כותרת ממופה לשדה במסמך. מציינים את הנתיב לקובץ ה-CSV באמצעות השדה inputUris.

    • ERROR_DIRECTORY: אופציונלי. ספרייה ב-Cloud Storage למידע על שגיאות בייבוא – לדוגמה, gs://<your-gcs-bucket>/directory/import_errors. ‫Google ממליצה להשאיר את השדה הזה ריק כדי לאפשר ל-Gemini Enterprise ליצור באופן אוטומטי ספרייה זמנית.

    • RECONCILIATION_MODE: אופציונלי. הערכים הם FULL ו-INCREMENTAL. ברירת המחדל היא INCREMENTAL. הגדרה של INCREMENTAL גורמת לרענון מצטבר של נתונים מ-Cloud Storage למאגר הנתונים. הפעולה הזו מבצעת upsert, שמוסיפה מסמכים חדשים ומחליפה מסמכים קיימים במסמכים מעודכנים עם אותו מזהה. הגדרת FULL גורמת לשינוי בסיס מלא של המסמכים במאגר הנתונים. כלומר, מסמכים חדשים ומעודכנים מתווספים למאגר הנתונים, ומסמכים שלא נמצאים ב-Cloud Storage מוסרים ממנו. מצב FULL שימושי אם רוצים למחוק באופן אוטומטי מסמכים שכבר לא צריכים.

    • AUTO_GENERATE_IDS: אופציונלי. ההגדרה קובעת אם מזהי המסמכים ייווצרו באופן אוטומטי. אם המדיניות מוגדרת לערך true, מזהי המסמכים נוצרים על סמך גיבוב של מטען הייעודי (payload). שימו לב: יכול להיות שמזהי המסמכים שנוצרו לא יישארו עקביים בכמה ייבואים. אם אתם יוצרים מזהים באופן אוטומטי בכמה ייבואים, מומלץ מאוד להגדיר את reconciliationMode ל-FULL כדי לשמור על מזהים עקביים של מסמכים.

      מציינים את autoGenerateIds רק כשמגדירים את gcsSource.dataSchema לערך custom או csv. אחרת, תוחזר שגיאת INVALID_ARGUMENT. אם לא מציינים את autoGenerateIds או מגדירים אותו ל-false, צריך לציין את idField. אחרת, ייבוא המסמכים ייכשל.

    • ID_FIELD: אופציונלי. מציינים אילו שדות הם מזהי המסמכים. במסמכי מקור של Cloud Storage, idField מציין את השם בשדות ה-JSON שהם מזהי מסמכים. לדוגמה, אם {"my_id":"some_uuid"} הוא שדה מזהה המסמך באחד מהמסמכים, מציינים "idField":"my_id". השדה הזה מזהה את כל שדות ה-JSON עם השם "my_id" כמזהי מסמכים.

      מציינים את השדה הזה רק אם: (1) השדה gcsSource.dataSchema מוגדר לערך custom או csv, ו-(2) השדה auto_generate_ids מוגדר לערך false או שלא צוין ערך. אחרת, תוחזר שגיאת INVALID_ARGUMENT.

      שימו לב ששם השדה ב-JSON שצוין על ידי id_field חייב להיות מסוג מחרוזת, חייב לכלול בין 1 ל-63 תווים ולהיות תואם ל-RFC-1034. אחרת, ייבוא המסמכים ייכשל.

חיבור ל-Cloud Storage עם סנכרון תקופתי

לפני שמייבאים את הנתונים, כדאי לעיין במאמר בנושא הכנת נתונים להוספה.

בתהליך הבא מוסבר איך ליצור מחבר נתונים שמקשר מיקום ב-Cloud Storage למחבר נתונים של Gemini Enterprise, ואיך לציין תיקייה או קובץ במיקום הזה בשביל מאגר הנתונים שרוצים ליצור. מאגרי נתונים שהם צאצאים של מחברי נתונים נקראים מאגרי נתונים של ישויות.

הנתונים מסתנכרנים מעת לעת עם מאגר נתוני הישות. אפשר לציין סנכרון יומי, כל שלושה ימים או כל חמישה ימים.

המסוף

  1. נכנסים לדף Gemini Enterprise במסוף Google Cloud .

    Gemini Enterprise

  2. עוברים לדף מאגרי נתונים.

  3. לוחצים על יצירת מאגר נתונים.

  4. בדף מקור, בוחרים באפשרות Cloud Storage.

  5. בוחרים את סוג הנתונים שמייבאים.

  6. לוחצים על תקופתי.

  7. בוחרים את תדירות הסנכרון, כלומר באיזו תדירות רוצים שהמחבר של Gemini Enterprise יסונכרן עם המיקום ב-Cloud Storage. אפשר לשנות את התדירות בהמשך.

  8. בקטע Select a folder or file you want to import (בחירת תיקייה או קובץ לייבוא), בוחרים באפשרות Folder (תיקייה) או File (קובץ).

  9. לוחצים על עיון, בוחרים את הנתונים שהכנתם להעלאה ולוחצים על בחירה. אפשר גם להזין את המיקום ישירות בשדה gs://.

  10. לוחצים על Continue.

  11. בוחרים אזור למחבר הנתונים.

  12. מזינים שם למחבר הנתונים.

  13. אופציונלי: אם בחרתם מסמכים לא מובנים, אתם יכולים לבחור אפשרויות ניתוח וחלוקה למקטעים של המסמכים. כדי להשוות בין מנתחי נתונים, אפשר לעיין במאמר בנושא ניתוח מסמכים. מידע על חלוקה לקטעים זמין במאמר חלוקת מסמכים לקטעים לשימוש ב-RAG.

    יכול להיות שיהיו עלויות נוספות על מנתח ה-OCR ומנתח הפריסה.

    כדי לבחור מנתח, מרחיבים את אפשרויות לעיבוד מסמכים ומציינים את אפשרויות המנתח שרוצים להשתמש בהן.

  14. לוחצים על יצירה.

    יצרתם עכשיו מחבר נתונים, שיסנכרן נתונים באופן תקופתי עם המיקום ב-Cloud Storage. יצרתם גם מאגר נתוני ישויות בשם gcs_store.

  15. כדי לבדוק את סטטוס ההטמעה, עוברים לדף מאגרי נתונים ולוחצים על השם של מחבר הנתונים כדי לראות את הפרטים שלו בדף נתונים.

    הכרטיסייה פעילות של הטמעת נתונים. כשהסטטוס בעמודה Data ingestion activity (פעילות של הכנסת נתונים) בכרטיסייה Data (נתונים) משתנה מ-In progress (בתהליך) ל-succeeded (הושלם), סימן שההכנסה הראשונה של הנתונים הסתיימה.

    בהתאם לגודל הנתונים, תהליך ההטמעה יכול להימשך כמה דקות עד כמה שעות.

אחרי שמגדירים את מקור הנתונים ומייבאים נתונים בפעם הראשונה, הנתונים מסונכרנים ממקור הנתונים בתדירות שבוחרים במהלך ההגדרה. כשעה אחרי שיוצרים את מחבר הנתונים, מתבצע הסנכרון הראשון. הסנכרון הבא מתרחש כ-24 שעות, 72 שעות או 120 שעות לאחר מכן.

השלבים הבאים

  • כדי לצרף את מאגר הנתונים לאפליקציה, יוצרים אפליקציה ובוחרים את מאגר הנתונים לפי השלבים שמפורטים במאמר יצירת אפליקציה לחיפוש.

  • כדי לראות תצוגה מקדימה של תוצאות החיפוש אחרי שמגדירים את האפליקציה ואת מאגר הנתונים, אפשר לעיין במאמר בנושא תצוגה מקדימה של תוצאות החיפוש.