איך יוצרים אפליקציית צ'אט באמצעות Conversational Analytics API ל-Looker ול-BigQuery

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

ב-codelab הזה נסביר איך להשתמש ב-Conversational Analytics API ‏ (CA API) עם Looker ו-BigQuery כדי ליצור אפליקציית צ'אט משלכם להרצת שאילתות על נתונים. כדי להפיק את הערך המרבי, מומלץ להכיר את BigQuery, ‏ Looker, ‏ LLM וסוכנים, ו-Python.

מה תלמדו

אחרי שתעברו על ה-Codelab הזה, תלמדו:

  • איך משתמשים בניתוח נתוני השיחות עם Looker
  • איך מגדירים ומשתמשים באפליקציית Python של Conversational Analytics Streamlit Quickstart (והסבר על אופן הפעולה של האפליקציה)
  • היתרונות של שימוש ב-Looker לבניית מודלים סמנטיים עם ניתוח נתונים שיחתי

מה תצטרכו

כדי להשלים את ה-codelab הזה, תצטרכו:

  • מכונת Looker עם בלוק Lookר של נתונים דמוגרפיים של ASC מותקן
  • גישה לממשקי API ולמפתחים במופע Looker
  • סביבה מקומית עם Python בגרסה 3.11 ומעלה, Git ו-gcloud מותקנים.
  • פרויקט בענן עם התפקידים הבאים ב-IAM שמוגדרים בחשבון המשתמש:
  • roles/bigquery.dataViewer צפייה בנתוני BigQuery
  • roles/bigquery.user BigQuery User
  • roles/looker.instanceUser משתמש במופע Looker

2. פיתוח אפליקציית צ'אט והתנסות בה באמצעות BigQuery

קודם נגדיר את אפליקציית ההפעלה המהירה של Conversational Analytics וננסה אותה עם BigQuery כמקור נתונים.

אימות והפעלה של Cloud APIs

  1. אימות מקומי באמצעות חשבון המשתמש:
gcloud auth login
  1. מפעילים ממשקי API של פרויקט בענן. צריך להחליף את YOUR_PROJECT_ID במזהה הפרויקט ב-Google Cloud:
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
  1. מגדירים Application Default Credentials‏ (ADC) וחיוב:
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

הגדרת האפליקציה למתחילים

  1. משכפלים את מאגר ה-GitHub של המדריך למתחילים לסביבה המקומית. דוגמה לפקודה:
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. מנווטים לספרייה ca-api-quickstarts ששיבטתם:
cd ca-api-quickstarts
  1. יוצרים קובץ secrets.toml בספרייה .streamlit. ‫YOUR_LOOKER_CLIENT_ID ו-YOUR_LOOKER_CLIENT_SECRET צריכים להיות מזהה הלקוח וסוד הלקוח של Looker ממופע Looker שלכם. תוכן הקובץ צריך להיות כזה:
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"

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

cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
  1. מתקינים את דרישות Python של אפליקציית המדריך למתחילים:
pip install -r requirements.txt
  1. מריצים את האפליקציה למתחילים:
streamlit run app.py
  1. פותחים את https://localhost:8501 בדפדפן הרצוי.

התנסות באפליקציה למתחילים

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

  1. עכשיו ניצור סוכן נתונים שמדבר כמו פיראט בטופס יצירת סוכן:
  2. מגדירים את השדה שם מוצג:
Pirate BQ Agent
  1. מגדירים את השדה הוראות למערכת:
You are a pirate. Answer questions like a pirate
  1. בוחרים באפשרות BigQuery.
  2. מגדירים את השדה Project:
bigquery-public-data
  1. מגדירים את השדה Dataset (מערך נתונים):
google_trends
  1. מגדירים את השדה Table (טבלה):
top_rising_terms
  1. בוחרים באפשרות יצירת סוכן.
  1. עכשיו נעבור לדף הצ'אט דרך תפריט הניווט הראשי שמימין. הנציג/ה החדש/ה שלנו זמין/ה לצ'אט. כדי להתחיל שיחה, מוסיפים הצעה לפעולה או הודעה: "שלום, מה שלומך?"
  2. עכשיו נלמד קצת על מערך הנתונים הזה: "What's this dataset about?"
  1. לשאול שאלה אחרת – למשל:
  2. ‫"What [Enter State] locations are in the dataset?‎" ‏(אילו מיקומים ב[מדינה] נמצאים במערך הנתונים?)
  3. "אפשר לקבל את הנתונים מ[שם העיר, שם המדינה] בשבועיים האחרונים?"
  4. "תצור תרשים?"

ניהלתם שיחה מרובת תפניות עם סוכן הנתונים ועם נתוני BigQuery באפליקציית הצ'אט שלכם.

3. מודלים וסקירה של הנתונים ב-Looker

עכשיו נבנה מודל של אותם נתונים מ-BigQuery ונבדוק אותם ב-Looker.

הרצת שאילתות על נתוני מפקד האוכלוסין ב-BigQuery

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

  1. חוזרים לטופס יצירת סוכן בדף הסוכנים.
  2. מגדירים את השדה שם מוצג:
BQ Census Agent
  1. מגדירים את השדה הוראות למערכת:
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
  1. בוחרים באפשרות BigQuery.
  2. מגדירים את השדה Project:
bigquery-public-data
  1. מגדירים את השדה Dataset (מערך נתונים):
census_bureau_acs
  1. מגדירים את השדה Table (טבלה):
blockgroup_2018_5yr
  1. בוחרים באפשרות יצירת סוכן.
  2. שואלים את הסוכן החדש שתי שאלות:
  3. "What data do you have?‎"
  4. ‫"Can you show me a preview of my data"?

שימוש ב-Looker כדי ליצור מודל של נתוני המפקד

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

  1. כניסה לחשבון במכונה של Looker
  2. כדי לעבור לקבצים של בלוק נתוני הדמוגרפיה של ACS, עוברים לתפריט הניווט הראשי בצד ימין, בוחרים באפשרות Develop ואז בוחרים באפשרות marketplace_acs_census-v2.
  3. בואו נסתכל על תצוגה ב-Looker. פותחים את הספרייה imported_project, את הספרייה acs_census-v2 ואת הספרייה geography.
  4. לבסוף, פותחים את הקובץ cbsa.view.
  5. בשורה 17, אפשר לראות שקוד ה-LookML יוצר טבלה נגזרת. במילים אחרות, הקוד הזה יוצר טבלה חדשה משולבת על ידי צירוף של שני מערכי נתונים ציבוריים ב-BigQuery, אחד עם נתוני מפקד האוכלוסין ואחד עם נתוני גבולות גיאוגרפיים. ‫LookML מאפשרת לנו לבצע הצטרפות למספר מערכי נתונים על ידי יצירת טבלה נגזרת מתמשכת לביצוע שאילתות.

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

עיון בנתוני מפקד האוכלוסין לפי מודל ב-Looker

נריץ שאילתה מהירה ב'ניתוח' כדי להראות שיש לנו מקור נתונים מרכזי אחד שאפשר להריץ עליו שאילתות.

  1. בתפריט הניווט הראשי שמימין, בוחרים באפשרות ניתוח נתונים, ואז בבלוק נתוני מפקד האוכלוסין ואז במדינה ומחוז.
  2. בוחרים במדד Education (השכלה) > Associates Degree (תואר חבר).
  3. בוחרים את המאפיינים הבאים:
  4. מיקום גיאוגרפי > חסימת קבוצה
  5. מיקום גיאוגרפי > מחוז > שם המחוז
  6. מיקום גיאוגרפי > מדינה > מדינה.
  7. מריצים את השאילתה (בפינה השמאלית העליונה) ועכשיו אפשר לראות שמזהי המיקום הגיאוגרפי האלה (שנקראים 'קבוצת בלוקים') משויכים למחרוזות שניתנות לקריאה על ידי בני אדם.
  8. פותחים את כרטיסיית ההמחשה ורואים את הנתונים במפה.

4. התנסות באפליקציית הצ'אט עם Looker

עכשיו ניצור סוכן נתונים ל-Looker.

  1. עוברים לטופס יצירת סוכן בדף הסוכן של האפליקציה למדריך למתחילים:
  2. מגדירים את השדה שם מוצג:
Cartoon character data analyst
  1. מגדירים את השדה הוראות למערכת:
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
  1. בוחרים באפשרות Looker.
  2. מגדירים את השדה Url לכתובת ה-URL של מופע Looker: "https://..."
  3. מגדירים את השדה Model (מודל):
data_block_acs_bigquery
  1. מגדירים את השדה ניתוח:
cbsa
  1. בוחרים באפשרות יצירת סוכן.
  2. עוברים לדף הצ'אט ובוחרים את הסוכן החדש שנוצר.
  3. כדי להתחיל שיחה, מוסיפים הצעה לפעולה או הודעה: "שלום, מה שלומך?"
  4. נבקש מהסוכן לתאר את מערך הנתונים: "What data do you have available?" (אילו נתונים זמינים לך?).
  5. אשאל אותך עוד כמה שאלות:
  6. "באיזה מחוז בניו יורק יש את האוכלוסייה הכי גדולה?"
  7. "What about the most graduates from high school per capita?"
  8. "אפשר לקבל את נתוני האוכלוסייה לפי מגדר ומדינה?"
  9. "אני רוצה לראות תרשים עמודות של 10 המדינות עם האוכלוסייה הגדולה ביותר".

5. מה עוד אפשר לעשות עם האפליקציה למתחילים?

עכשיו יש לכם:

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

ננסה את היכולות האחרות של אפליקציית ההפעלה המהירה:

  1. טוענים מחדש את דף האינטרנט של אפליקציית ההפעלה המהירה ועוברים לדף הצ'אט.
  2. אתם יכולים לראות את השיחות הקודמות עם כל ההודעות הרלוונטיות מהסוכנים של BigQuery ו-Looker. הקצה הקדמי של האפליקציה לא שומר את השיחות או ההודעות הקודמות, אלא מאחזר אותן מ-CA API.
  1. עכשיו עוברים לדף הסוכנים ובוחרים את סוכן Looker מהרשימה.
  2. אם רוצים, אפשר לעדכן את ההגדרות של הנציג או למחוק אותו. אף נציג לא מאוחסן בחלק הקדמי של האפליקציה.

6. אתגרים אופציונליים וחקירה נוספת

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

מידע נוסף על CA API ואפליקציית ההפעלה המהירה

אתגרים בשינוי אפליקציות למתחילים

  • האם יש לך ניסיון בהטמעה של Looker? אם כן, נסו להטמיע לוח בקרה של Looker באפליקציית ההפעלה המהירה. אפשר להשתמש ברכיב ה-iframe של Streamlit.
  • מוצאים מערך נתונים ציבורי שכולל כתובות URL של סרטונים, ומעדכנים את לוגיקת העיבוד של הצ'אט באפליקציה כדי להציג סרטון בצ'אט.

7. סיכום ומסקנות

הגעת לסוף! יצרתם אפליקציית צ'אט, יצרתם סוכני נתונים וניהלתם צ'אט עם הנתונים שלכם – והכול באמצעות Conversational Analytics API. נתחיל בסקירת כמה יכולות ומושגים חשובים.

היכולות של ניתוח נתוני השיחות

הסברנו על הרבה מהיכולות של ניתוח נתונים שיחתי, כמו היכולת:

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

היתרונות של שימוש ב-Looker עם CA API

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

השלבים הבאים