שימוש בסוכן Gemini CLI לבדיקת הקשר של הנתונים

סוכני AI יכולים להסיק מסקנות, אבל הם מתחילים ללא ידע על החברה הספציפית שלכם. תארו לעצמכם שאתם שואלים נציג, "What is our Q1 revenue?‎" ללא הנחיה, יכול להיות שהסוכן יבחר מתוך עשרות טבלאות בשם 'הכנסה' במסדי הנתונים שלכם, החל מדוחות רשמיים ועד נתוני בדיקה לא מסודרים. אם הסוכן יבחר את הטבלה עם השם הכי דומה, הוא עלול להחזיר תשובות שגויות באופן משכנע על סמך מקורות לא מאומתים.

הפתרון לבעיית ההקשר הזו הוא העשרה של המטא-נתונים. במדריך הזה, תגדירו היבטים שיספקו את ההקשר הזה, ותשתמשו ב-Gemini CLI כדי לבדוק את הקשר הנתונים ולוודא שהסוכן יכול לבסס את התשובות שלו על נתונים מהימנים ומאושרים.

מטרות

  • ליצור אגם נתונים ריאליסטי לבדיקה.
  • אתם יכולים להשתמש בהיבטים של Knowledge Catalog כדי להוסיף תוויות לנתוני ה'זהב' שלכם ולהבדיל אותם מנתוני בדיקה.
  • בודקים את הקשר הנתונים באופן מקומי באמצעות Gemini CLI.

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

לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:

כדי להשלים את המדריך הזה, צריך גם להבין את המושגים הבסיסיים של BigQuery,‏ Knowledge Catalog ו-Terraform.

הכנת הסביבה

במדריך הזה משתמשים ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.

  1. במסוף, לוחצים על Activate Cloud Shell (הפעלת Cloud Shell) בסרגל הכלים שבפינה הימנית העליונה. Google Cloud יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו.

  2. ב-Cloud Shell, מגדירים את המשתנים PROJECT_ID ו-REGION כך שכל הפקודות העתידיות יופנו לפרויקט הספציפי Google Cloud שלכם.

    export PROJECT_ID=$(gcloud config get-value project)
    gcloud config set project $PROJECT_ID
    export REGION="us-central1"
    
  3. מפעילים את השירותים הנדרשים. Google Cloud

    gcloud services enable \
      artifactregistry.googleapis.com \
      bigqueryunified.googleapis.com \
      cloudaicompanion.googleapis.com \
      cloudbuild.googleapis.com \
      cloudresourcemanager.googleapis.com \
      datacatalog.googleapis.com \
      run.googleapis.com
    
  4. משכפלים את Google Cloud מאגר ההדגמות של DevRel.

    מורידים את קוד התשתית ואת הסקריפטים מ-GitHub. כדי למשוך רק את התיקייה הספציפית שדרושה לכם במדריך הזה, אתם יכולים להשתמש ב-sparse checkout.

    # Perform a shallow clone to get only the latest repository structure without the full history
    git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
    cd devrel-demos
    
    # Specify and download only the folder you need for this tutorial
    git sparse-checkout set data-analytics/governance-context
    cd data-analytics/governance-context
    

בניית אגם הנתונים

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

ההגדרה של Terraform מטפלת בשתי משימות:

  • הסקריפט מגדיר את סוגי ההיבטים (תבניות מטא-נתונים) של Knowledge Catalog, את מערכי הנתונים ואת הטבלאות ב-BigQuery, כולל finance_mart.fin_monthly_closing_internal ו-analyst_sandbox.tmp_data_dump_v2_final_real.
  • טוען נתונים לדוגמה לטבלאות.
  1. פותחים את הספרייה terraform ומפעילים אותה.

    cd terraform
    terraform init
    
  2. מחילים את ההגדרה. יכול להיות שהפעולה תימשך עד כדקה.

    terraform apply -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
    

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

החלת אמצעי בקרה

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

יצירת מטען ייעודי (payload) של ניהול

‫Terraform כבר הגדירה את סוגי ההיבטים, ועכשיו צריך ליצור את הנתונים כדי למלא אותם.

מריצים את הסקריפט ./generate_payloads.sh כדי ליצור את הספרייה aspect_payloads/. הספרייה מכילה ארבעה קובצי YAML שמגדירים תרחישי ניהול שונים, שאותם תפעילו בשלב הבא.

חוזרים לרמה הבסיסית (root) של ספריית המדריך ומריצים את הסקריפט ./generate_payloads.sh:

cd ..
chmod +x ./generate_payloads.sh
./generate_payloads.sh

החלת היבטים

  1. לפני שמריצים את הסקריפט apply_governance.sh, כדאי לעיין בנתונים שיצורפו לטבלאות. מריצים את הפקודה הבאה כדי לראות את המטא-נתונים שהוגדרו לנתונים הפיננסיים הפנימיים:

    cat aspect_payloads/fin_internal.yaml
    

    קובץ ה-YAML מגדיר את ההקשר העסקי של הטבלה:

    your-project-id.us-central1.official-data-product-spec:
      data:
        product_tier: GOLD_CRITICAL
        data_domain: FINANCE
        usage_scope: INTERNAL_ONLY
        update_frequency: DAILY_BATCH
        is_certified: true
    

    שימו לב שהנתונים מסומנים באופן מפורש כis_certified: true ומוקצים לרמה GOLD_CRITICAL. כך סוכן ה-AI מקבל כללים ברורים ומובנים לפעולה.

  2. מריצים את הסקריפט apply_governance.sh. הסקריפט הזה מבצע איטרציה בטבלאות שלכם ב-BigQuery ומשתמש ב-CLI של gcloud כדי להוסיף לכל טבלה את המטא-נתונים ממטען ה-YAML.

    chmod +x ./apply_governance.sh
    ./apply_governance.sh
    

אימות המטא-נתונים

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

  1. פותחים את הדף Knowledge Catalog במסוף Google Cloud . אפשר להשתמש בסרגל החיפוש העליון כדי למצוא אותו.
  2. חיפוש של fin_monthly_closing_internal. בוחרים את שם הטבלה בתוצאות כדי לפתוח את דף הפרטים שלה.
  3. בקטע Optional tags and aspects (תגים והיבטים אופציונליים), מאתרים את ההיבט official-data-product-spec. מוודאים שהערכים תואמים לתרחיש 'Gold Internal' שהגדרתם.

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

בדיקת הקשר הנתונים באמצעות Gemini CLI

לפני שיוצרים אפליקציית אינטרנט מלאה, אפשר לבדוק את לוגיקת השליטה באופן מקומי באמצעות סביבת Model Context Protocol‏ (MCP). בהגדרה הזו, Gemini CLI פועל כלקוח (הממשק שאיתו מתקשרים) והתוסף Knowledge Catalog פועל כשרת מקומי.

התקנת התוסף Knowledge Catalog

ב-Cloud Shell, מתקינים את התוסף Knowledge Catalog.

export DATAPLEX_PROJECT="${PROJECT_ID}"

gemini extensions install https://github.com/gemini-cli-extensions/dataplex

הגדרת כללים

קובץ ההגדרות GEMINI.md כולל לוגיקה שממירה כללים הצהרתיים כמו "אני צריך נתונים בטוחים" לחיפושים מדויקים שמחזירים רק טבלאות עם תוויות ניהול מתאימות.

בשלב הזה, קובץ ההגדרות הוא רק תבנית. צריך להוסיף את מזהה הפרויקט הספציפי שלכם לכללים כדי שכשתריצו את ה-CLI, הוא יטרגט בצורה נכונה את הנתונים המפוקחים. Google Cloud

  1. מוסיפים את PROJECT_ID לקובץ התצורה.

    envsubst < GEMINI.md > GEMINI.md.tmp && mv GEMINI.md.tmp GEMINI.md
    
  2. כדי לבדוק את השינויים ולהבין איך הקשר של הנתונים פועל, אפשר לעיין בקובץ GEMINI.md:

    cat GEMINI.md
    

    שימו לב שהכללים בקובץ מחולקים לשלב 1 ולשלב 2. כך נשמר סדר פעולות קפדני. הנציג צריך קודם לחפש את תוויות השליטה המתאימות (שלב 1) לפני שהוא מקבל הרשאה לגשת לנתונים עצמם (שלב 2). הלוגיקה הזו של 'חיפוש קודם' מונעת מהסוכן לנחש שמות של טבלאות או להמציא תשובות ממקורות לא מאומתים.

    מוודאים שבשלב 2 מופיע מזהה הפרויקט Google Cloud האמיתי. אם זה לא נכון, הסוכן לא יידע איפה לחפש את הנתונים שלכם.

הפעלת Gemini CLI ותרחישי בדיקה

מתחילים סשן חדש עם Gemini. מכיוון שאתם נמצאים בתיקיית הפרויקט, ה-CLI מזהה באופן אוטומטי את GEMINI.md המקומי וטוען אותו כהקשר המערכת.

gemini

אימות ההתקנה

מוודאים שהתוסף Knowledge Catalog פעיל. dataplex אמור להופיע ברשימת הכלים המוגדרים של שרת ה-MCP.

/mcp desc

רוצה לנסות?

עכשיו נראה את הקשר הנתונים בפעולה. מדביקים את ההנחיות האלה ב-CLI אחת אחרי השנייה.

תרחיש 1: איתור נתונים סטנדרטיים מסוג Gold

האם Gemini CLI יכול למצוא את הנתונים הכי מהימנים לפגישה חשובה של הדירקטוריון?

We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?

ממשק ה-CLI אמור לדלג על הנתונים הגולמיים ולמצוא את fin_monthly_closing_internal. היא עושה זאת על ידי התאמת הבקשה שלך לנתונים מסוג 'סופיים' ו'חסויים' לתגי GOLD_CRITICAL ו-INTERNAL_ONLY שהוספת קודם.

תרחיש 2: גילוי נאות לציבור

נניח שאתם רוצים לשתף נתונים עם גורמים חיצוניים. אתם רוצים לוודא שה-CLI לא יאפשר לדליפת סודות פנימיים.

I need to share our quarterly financial summary with an external consulting firm. It is critical that we do not leak any raw or internal metrics. Which dataset is officially scrubbed and explicitly approved for external sharing?

למרות שהטבלה הפנימית מכילה את הפרטים הכי מפורטים, ממשק ה-CLI צריך לעקוף אותה. היא אמורה להפנות אתכם אל fin_quarterly_public_report כי זו הטבלה היחידה שתויגה כ-EXTERNAL_READY.

תרחיש 3: צרכים תפעוליים בזמן אמת

מדעני נתונים צריכים לעיתים קרובות את המידע העדכני ביותר. כדאי לבדוק אם Gemini CLI מבין את ההבדל בין נתונים יומיים לבין שידור חי.

My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?

ה-CLI אמור למצוא את mkt_realtime_campaign_performance. הוא מזהה את תדירות העדכון של REALTIME_STREAMING במטא-נתונים.

תרחיש 4: חקר ארגז החול

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

I'm just playing around with some new ML models and need a lot of raw data. It doesn't need to be perfect, just a sandbox environment.

ה-CLI אמור למצוא את tmp_data_dump_v2_final_real. הוא יודע שזו הבחירה הנכונה כי היא תואמת לרמת BRONZE_ADHOC ומסומנת במפורש בסימן is_certified: false.

אחרי שמסיימים את הבדיקה, אפשר לצאת מהסשן של CLI:

/quit

הסרת המשאבים

כדי להימנע מחיובים חוזרים, צריך לבצע את הפעולות הבאות:

  1. מחיקה של משאבי Terraform.

    cd ~/devrel-demos/data-analytics/governance-context/terraform
    terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approve
    
  2. מסירים את ההתקנה של התוסף Knowledge Catalog ומסירים את קובצי ההדגמה המקומיים.

    gemini extensions uninstall dataplex
    cd ~
    rm -rf ~/devrel-demos
    

סיכום

יצרתם בסיס נתונים מוצק, השתמשתם בהקשר מוגדר באמצעות מטא-נתונים ואימתתם שהכל פועל באופן מקומי באמצעות Gemini CLI.

המאמרים הבאים