סוכני AI יכולים להסיק מסקנות, אבל הם מתחילים ללא ידע על החברה הספציפית שלכם. תארו לעצמכם שאתם שואלים נציג, "What is our Q1 revenue?" ללא הנחיה, יכול להיות שהסוכן יבחר מתוך עשרות טבלאות בשם 'הכנסה' במסדי הנתונים שלכם, החל מדוחות רשמיים ועד נתוני בדיקה לא מסודרים. אם הסוכן יבחר את הטבלה עם השם הכי דומה, הוא עלול להחזיר תשובות שגויות באופן משכנע על סמך מקורות לא מאומתים.
הפתרון לבעיית ההקשר הזו הוא העשרה של המטא-נתונים. במדריך הזה, תגדירו היבטים שיספקו את ההקשר הזה, ותשתמשו ב-Gemini CLI כדי לבדוק את הקשר הנתונים ולוודא שהסוכן יכול לבסס את התשובות שלו על נתונים מהימנים ומאושרים.
מטרות
- ליצור אגם נתונים ריאליסטי לבדיקה.
- אתם יכולים להשתמש בהיבטים של Knowledge Catalog כדי להוסיף תוויות לנתוני ה'זהב' שלכם ולהבדיל אותם מנתוני בדיקה.
- בודקים את הקשר הנתונים באופן מקומי באמצעות Gemini CLI.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- בוחרים Google Cloud פרויקט למדריך הזה.
- מוודאים שהחיוב מופעל בפרויקט.
כדי להשלים את המדריך הזה, צריך גם להבין את המושגים הבסיסיים של BigQuery, Knowledge Catalog ו-Terraform.
הכנת הסביבה
במדריך הזה משתמשים ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן.
במסוף, לוחצים על Activate Cloud Shell (הפעלת Cloud Shell) בסרגל הכלים שבפינה הימנית העליונה. Google Cloud יחלפו כמה רגעים עד שההקצאה והחיבור לסביבת העבודה יושלמו.
ב-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"מפעילים את השירותים הנדרשים. 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משכפלים את 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. - טוען נתונים לדוגמה לטבלאות.
פותחים את הספרייה
terraformומפעילים אותה.cd terraform terraform initמחילים את ההגדרה. יכול להיות שהפעולה תימשך עד כדקה.
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
החלת היבטים
לפני שמריצים את הסקריפט
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 מקבל כללים ברורים ומובנים לפעולה.מריצים את הסקריפט
apply_governance.sh. הסקריפט הזה מבצע איטרציה בטבלאות שלכם ב-BigQuery ומשתמש ב-CLI שלgcloudכדי להוסיף לכל טבלה את המטא-נתונים ממטען ה-YAML.chmod +x ./apply_governance.sh ./apply_governance.sh
אימות המטא-נתונים
לפני שממשיכים, חשוב לוודא שהסקריפט החיל את ההיבטים בצורה נכונה.
- פותחים את הדף Knowledge Catalog במסוף Google Cloud . אפשר להשתמש בסרגל החיפוש העליון כדי למצוא אותו.
- חיפוש של
fin_monthly_closing_internal. בוחרים את שם הטבלה בתוצאות כדי לפתוח את דף הפרטים שלה. - בקטע 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
מוסיפים את
PROJECT_IDלקובץ התצורה.envsubst < GEMINI.md > GEMINI.md.tmp && mv GEMINI.md.tmp GEMINI.mdכדי לבדוק את השינויים ולהבין איך הקשר של הנתונים פועל, אפשר לעיין בקובץ
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
הסרת המשאבים
כדי להימנע מחיובים חוזרים, צריך לבצע את הפעולות הבאות:
מחיקה של משאבי Terraform.
cd ~/devrel-demos/data-analytics/governance-context/terraform terraform destroy -var="project_id=${PROJECT_ID}" -var="region=${REGION}" -auto-approveמסירים את ההתקנה של התוסף Knowledge Catalog ומסירים את קובצי ההדגמה המקומיים.
gemini extensions uninstall dataplex cd ~ rm -rf ~/devrel-demos
סיכום
יצרתם בסיס נתונים מוצק, השתמשתם בהקשר מוגדר באמצעות מטא-נתונים ואימתתם שהכל פועל באופן מקומי באמצעות Gemini CLI.