ייבוא מ-Cloud Storage

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

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

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

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

הטמעה חד-פעמית הטמעה תקופתית
זמינות לכלל המשתמשים (GA). Public preview.
צריך לרענן את הנתונים באופן ידני. הנתונים מתעדכנים באופן אוטומטי כל יום, שלושה ימים או חמישה ימים. אי אפשר לרענן את הנתונים באופן ידני.
‫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. בפרויקט שמכיל את מאגר הנתונים של Gemini Enterprise:

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

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

לפני שאתם מייבאים את הנתונים, קראו את המאמר הכנת הנתונים להטמעה.

המסוף

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

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

    Gemini Enterprise

  2. נכנסים לדף Data Stores.

  3. לוחצים על Create Data Store.

  4. בדף Select a data source, בוחרים באפשרות Cloud Storage.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. הרשאות "צפייה באובייקט אחסון" בקטגוריה של Cloud Storage. לדוגמה, אם אתם מייבאים קטגוריה של Cloud Storage מפרויקט המקור "123" לפרויקט היעד "456", תנו הרשאות service-456@gcp-sa-discoveryengine. לקטגוריה של 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, מזהי המסמכים נוצרים על סמך גיבוב (hash) של המטען הייעודי (payload). חשוב לדעת שמזהי המסמכים שנוצרו לא בהכרח יישארו עקביים בכמה פעולות ייבוא. אם אתם יוצרים מזהים באופן אוטומטי בכמה פעולות ייבוא, Google ממליצה מאוד להגדיר את 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. נכנסים לדף Data Stores.

  3. לוחצים על Create Data Store.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

השלבים הבאים