מבוא לניתוח שיחות ב-BigQuery

1. מבוא

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

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

דרישות מוקדמות

  • הבנה בסיסית של Google Cloud

מה תלמדו

  • איך מנווטים בקטלוג הסוכנים של BigQuery
  • איך יוצרים סוכן ייעודי ומגדירים מקורות ידע
  • איך משתמשים ב-Gemini כדי ליצור מטא-נתונים סמנטיים
  • איך מוסיפים הנחיות למערכת ושאילתות מאומתות כדי להנחות את הנציג
  • איך מפרסמים ומשתפים סוכנים

מה תצטרכו

  • חשבון Google Cloud ופרויקט בענן של Google Cloud
  • ידע בסיסי ב-BigQuery וב-SQL
  • דפדפן אינטרנט כמו Chrome

2. הגדרה ודרישות

בחירת פרויקט

  1. נכנסים ל-מסוף Google Cloud ויוצרים פרויקט חדש או משתמשים בפרויקט קיים. אם עדיין אין לכם חשבון Gmail או Google Workspace, אתם צריכים ליצור חשבון.

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. תמיד אפשר לעדכן את המיקום.
  • מזהה הפרויקט הוא ייחודי לכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו אחרי שהוא מוגדר. מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל מסומן כ-PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר לאורך הפרויקט.
  • לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
  1. בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. השלמת ה-codelab הזה לא תעלה לכם הרבה, אם בכלל. כדי להשבית את המשאבים ולמנוע חיובים נוספים אחרי שתסיימו את המדריך הזה, תוכלו למחוק את המשאבים שיצרתם או למחוק את הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.

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

הקצאת התפקידים הנדרשים לעצמכם

עוברים אל דף ה-IAM של הפרויקט ומקצים לעצמכם את התפקיד Gemini Data Analytics Data Agent Owner:

1d3874c1bc28d81d.png

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

הפעלת ממשקי ה-API הנדרשים

משתמשים בתפריט הניווט שבסרגל הצד או בתפריט החיפוש שבראש הדף כדי לנווט אל BigQuery > Agents.

לוחצים על הפעלת Data Analytics API עם Gemini:

4bc781d1a83ba367.png

מפעילים את Gemini ב-BigQuery API ואת Gemini for Google Cloud API:

71678b9b8900a7a6.png

עכשיו אמור להופיע הדף של הנציג החדש:

23935c00cd4b23c1.png

4. יצירת סוכן

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

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

שם הסוכן

Google Trends Agent

תיאור הסוכן

Data agent for the Google Trends International Top Terms public dataset

מקורות מידע

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

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

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

bigquery-public-data.google_trends.international_top_terms

8b84bd4c4227637d.png

הקשר מובנה

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

f802527c7d72ae63.png

‫Gemini יוצר באופן אוטומטי הצעות לתיאורים. לוחצים על אישור לצד תיאור הטבלה:

cc02e10c0c74bf4b.png

כדי להוסיף תיאורים לכל העמודות, מסמנים את התיבה בחירת כל השורות ואז לוחצים על אישור ההצעות:

f811458ff0240c.png

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

הוראות

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

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

מעתיקים ומדביקים את ההוראות הבאות:

### System Instruction

* You are an expert data analyst for the Google Trends International public dataset.
* Always filter on yesterday's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY).
* If yesterday returns no data, filter on 2 days ago's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY).
* Default to country-level results (one row per term).
* "Top" queries must deduplicate snapshot rows.
* Only include week or score when the user explicitly asks for trends over time.
* This is an international dataset and does not include any data for the United States.

### Additional Descriptions

#### 1. Core model:

* refresh_date selects the daily Top-25 term set.
* week + score are historical weekly values attached to those terms.
* Filtering week does not change which terms appear.

#### 2. Deduplication rule (critical):

* Snapshot rows repeat across weeks and regions.
* For "top" queries, always GROUP BY term (country-level) and compute rank as MIN(rank).

#### 3. Defaults:

* Country-level results only.
* Use region_code only if the user explicitly asks for regions.
* Limit results unless the user asks otherwise.

#### 4. Time series usage:

* Only include week or score when the user asks for trends over time, historical context, or week-over-week score changes.

#### 5. Field guidance:

* Prefer country_code or region_code for filters.
* country_name / region_name are for display only.
* score is normalized; compare trends within a term, not across terms.

שאילתות מאומתות

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

נוסיף שתי דוגמאות לסוכן. לוחצים על הוספת שאילתה ומעתיקים את השאלה והשאילתה הבאות ומדביקים אותן:

שאלה 1:

What are the top search terms in the UK right now?

שאילתה 1:

SELECT term, MIN(rank) AS rank
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  AND country_code = 'GB'
GROUP BY term
ORDER BY rank
LIMIT 25;

לפני ששומרים את השאילתה, כדאי להריץ אותה כדי לוודא שהיא תקינה.

e3fb570a4109e93c.png

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

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

שאלה 2:

Show the last 12 weeks of interest for the current top 5 terms in Auckland.

תשובה 2:

WITH top5 AS (
  SELECT term, MIN(rank) AS rank
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
  GROUP BY 1
  ORDER BY 2
  LIMIT 5
),
series AS (
  SELECT term, week, score,
    ROW_NUMBER() OVER (PARTITION BY term ORDER BY week DESC) AS rn
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
    AND term IN (SELECT term FROM top5)
)
SELECT week, term, score
FROM series
WHERE rn <= 12
ORDER BY 1 DESC, 3

לפני שנעבור לקטע הבא, נבדוק את ההצעות שנוצרו על ידי Gemini:

b52489d21f503a76.png

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

מילון מונחים

בואו נוסיף מונח למילון המונחים. אם העסק שלכם משתמש ב-Dataplex, המונחים האלה מיובאים ישירות ממילון המונחים הארגוני ב-Dataplex Universal Catalog.

לוחצים על הוספת מונח ומעתיקים את הדוגמה הבאה ומדביקים אותה:

תקופה:

refresh_date

הגדרה:

Snapshot date that selects the daily Top 25 term set. All rows for that date belong to the same "what's trending now" snapshot. Attach Historical week and score values after this selection.

מילים נרדפות:

today, latest, current, now, recent

אחר כך לוחצים על 'הוספה' ואז על 'שמירה'.

33b4a74fcde504d5.png

הגדרות הסוכן

בקטע הגדרות, אפשר להגדיר תוויות וחיוב מקסימלי בבייט.

תוויות

תוויות הן צמדי מפתח/ערך שמשמשים לארגון משאבי Google Cloud לקבוצות לוגיות. כדי לשמור על המיקוד של ה-Lab הזה, לא נזין תוויות.

מספר הבייטים המקסימלי שיחויבו

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

10000000000

‫10,000,000,000 בייטים הם בערך 9.3GB. אם לא מציינים ערך, מספר הבייטים המקסימלי לחיוב יהיה כברירת מחדל המיכסה היומית של השימוש בשאילתות בפרויקט.

5. שמירה ושיתוף של הסוכן

תצוגה מקדימה

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

נשאל את הסוכן לאילו נתונים יש לו גישה. אתם יכולים לשאול כמה שאלות במילים שלכם:

b2679cc7c6c926b2.png

שמירה

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

56a45347d496dd42.png

פרסום הסוכן יאפשר להשתמש בו ב-BigQuery Studio, ב-Conversational Analytics API וב-Looker Studio Pro (בכפוף לרישיון):

a4fbeb3011d409f5.png

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

שיתוף

אמורה להופיע הודעת אישור שהסוכן פורסם. עכשיו אפשר לשתף את הסוכן עם משתמשים אחרים.

bdd4ee4be02c26d8.png

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

חשוב לציין שאפשר להקצות את התפקידים האלה בשתי רמות שונות:

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

התפקידים המוגדרים מראש לניתוח נתוני השיחות הם:

  1. בעלים של סוכן נתונים ב-Gemini Data Analytics (roles/geminidataanalytics.dataAgentOwner) יצירה, עריכה, שיתוף ומחיקה של כל סוכני הנתונים
  2. Gemini Data Analytics Data Agent Creator (roles/geminidataanalytics.dataAgentCreator) – יצירה, עריכה, שיתוף ומחיקה של סוכני נתונים משלכם
  3. עורך סוכני נתונים ב-Gemini לניתוח נתונים (roles/geminidataanalytics.dataAgentEditor) – גישת עריכה וצ'אט לסוכני נתונים
  4. משתמש בסוכן נתונים של ניתוח נתונים (roles/geminidataanalytics.dataAgentUser) – גישת צפייה וצ'אט לסוכני נתונים
  5. Gemini Data Analytics Data Agent Viewer (roles/geminidataanalytics.dataAgentViewer) – גישה לתצוגה (קריאה בלבד) של סוכני נתונים

6. התחלת שיחה עם סוכן

נצא מהכרטיסייה שיתוף וניצור שיחה חדשה:

d7a824ed0aaeaf12.png

כשלוחצים על יצירת שיחה, נוצרת שיחה חדשה ללא שם.

בואו נשאל אילו מונחים פופולריים באנגליה (אפשר להחליף במיקום אחר):

Based on the top 10 terms in England, how did they trend for the past 3 months?

פירוק של זרם התגובה

בדרך כלל, סוכן הנתונים עונה על שאלות לפי אותו רצף של פעולות:

  1. חשיבה רציונלית: הסוכן קודם "חושב" על ההנחיה. מרחיבים את הלחצן הצגת החשיבה הרציונלית כדי לראות תובנות מפורטות לגבי תהליך קבלת ההחלטות של ה-Agent.
  2. סיכום: הסוכן יוצר סיכום כללי של השאילתה, הדוח שנוצר וההדמיה.
  3. Generated SQL (שאילתת SQL שנוצרה): מרחיבים את הקטע Here's the query... (הנה השאילתה...) כדי לבדוק את ה-SQL. לוחצים על Open in Editor (פתיחה בעורך) כדי לכוונן את השאילתה באופן ידני ב-BigQuery Studio.
  4. תוצאות נתונים: הסוכן מציג את תוצאות השאילתה בפורמט טבלאי ברור.
  5. תצוגה חזותית: תרשים שמופיע לצד תיאור קצר. הסוכן מסיק אוטומטית את סוג התצוגה החזותית הטוב ביותר (למשל, תרשים קו עם כמה סדרות) לנתונים שלכם.
  6. תובנות לגבי נתונים: הסוכן מסכם את המגמות העיקריות והמסקנות העיקריות שנמצאו בתוצאות.
  7. שאלות המשך: לבסוף, הסוכן מציע שאלות המשך רלוונטיות שיעזרו לכם להמשיך בניתוח.

ee07f83cdbd20de1.png

תמיכה ב-BigQuery ML

נמשיך ונשאל אם סוכן הנתונים יכול להריץ תחזיות על סמך התוצאות האלה. הפונקציה הזו מתבססת על פונקציות של BigQuery ML כדי לחזות נקודות עתידיות.

מזינים את ההנחיה הבאה (חשוב להחליף את המונח 'לוח מונופול' במונח שרלוונטי לשאילתה שלכם):

Can you predict and visualize how monopoly board will trend in the next 4 weeks?

אפשר לראות שנעשה שימוש ב-AI_FORECAST כדי לחזות סדרת זמנים. אין הפתעות, אבל מעניין לראות עלייה משמעותית באוגוסט 2021, שחלה במקביל לפתיחה הגדולה של האטרקציה Monopoly Lifesized בלונדון.

441a92d19f7d15e0.png

7. עיון בקטלוג הסוכנים

לפני שנסיים, כדאי לעיין בקטלוג הסוכנים. לוחצים על Agent Catalog (קטלוג הסוכנים) בחלק העליון של החלון:

59acded82548bd.png

הדף הזה משמש כמרכז לניהול סוכני נתונים, והוא מחולק לקטעים הבאים:

  • הסוכנים שלי: הסוכנים שפורסמו כרגע.
  • הסוכנים שלי שבמצב טיוטה: הגדרות ששמרתם אבל עדיין לא פרסמתם.
  • סוכנים שאנשים אחרים בארגון שיתפו: סוכנים שנוצרו על ידי עמיתים ויש לכם הרשאת גישה אליהם.
  • סוכנים לדוגמה של Google: דוגמאות שהוגדרו מראש כדי לעזור לכם להתחיל.

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

8. סיכום

הצלחתם ליצור סוכן נתונים לניתוח נתונים בשיחה. מידע נוסף זמין בחומרי העזר.

חומרי עזר