1. סקירה כללית
בשיעור ה-Lab הזה תלמדו איך להשתמש במוצרי ה-AI הגנרטיבי של Google כדי לבנות תשתית ב-Google Cloud בעזרת Gemini Cloud Assist, לשלוח שאילתות על נתוני BigQuery באמצעות שפה טבעית לתכונות SQL של Data Canvas, לכתוב קוד במסמכי Jupyter ב-Colab Enterprise וב-Eclipse Theia (Visual Studio Code) בעזרת Gemini Code Assist, ולשלב תכונות חיפוש וצ'אט מבוססות-AI שמבוססות על מקורות מידע של Cloud Storage ו-BigQuery ב-Vertex AI Agent Builder.
המטרה שלנו היא ליצור אתר מתכונים ובישול שנקרא AI Recipe Haven. האתר יבנה ב-Python וב-Streamlit ויכלול שני דפים עיקריים. ב-Cooking Advice יתארח צ'אטבוט שיצרנו באמצעות Gemini ומקור מבוסס של Vertex AI Agent Builder שמקושר לקבוצה של ספרי בישול. הצ'אטבוט יציע עצות בישול ויענה על שאלות שקשורות לבישול. חיפוש המתכונים יהיה מנוע חיפוש שמקבל נתונים מ-Gemini, והפעם הוא מבוסס על מסד נתונים של מתכונים ב-BigQuery.
אם אתם נתקלים בבעיה בקוד כלשהו במטלה הזו, הפתרונות לכל קובצי הקוד נמצאים במאגר GitHub של המטלה, בהסתעפות solution.
מטרות
בשיעור ה-Lab הזה תלמדו איך לבצע את המשימות הבאות:
- הפעלה של Gemini Cloud Assist ושימוש בו
- יצירת אפליקציית חיפוש ב-Vertex AI Agent Builder ל-chatbot של ייעוץ בישול
- איך מעמיסים ומנקים נתונים במחברת ב-Colab Enterprise בעזרת Gemini Code Assist
- יצירת אפליקציית חיפוש ב-Vertex AI Agent Builder ליצירת המתכונים
- יצירת מסגרת לאפליקציית האינטרנט המרכזית ב-Python וב-Streamlit, עם קצת עזרה מ-Gemini
- פריסת אפליקציית האינטרנט ב-Cloud Run
- קישור הדף 'טיפים לבישול' לאפליקציית ה-Agent Builder לחיפוש ספרי בישול
- (אופציונלי) חיבור דף החיפוש של המתכונים לאפליקציית ה-Agent Builder לחיפוש מתכונים
- (אופציונלי) בדיקת האפליקציה הסופית
2. דרישות מוקדמות
- אם עדיין אין לכם חשבון Google, עליכם ליצור חשבון Google.
- משתמשים בחשבון אישי במקום בחשבון לצורכי עבודה או בחשבון בית ספרי. יכול להיות שבחשבונות לצורכי עבודה ובחשבונות בית ספריים יש הגבלות שמונעות מכם להפעיל את ממשקי ה-API הנדרשים לסדנה הזו.
3. הגדרת הפרויקט
- נכנסים למסוף Google Cloud.
- מפעילים את החיוב במסוף Cloud.
- השלמת ה-Lab הזה אמורה לעלות פחות מ-1 $בארה"ב במשאבי Cloud.
- כדי למנוע חיובים נוספים, תוכלו לפעול לפי השלבים שמפורטים בסוף שיעור ה-Lab הזה כדי למחוק את המשאבים.
- משתמשים חדשים זכאים לתקופת ניסיון בחינם בשווי 300$.
- יש מישהו שמשתתף באירוע וירטואלי מעשי של שיעור Lab? יכול להיות שתהיה לך אפשרות לקבל קרדיט בסך 5$.
- יוצרים פרויקט חדש או בוחרים לעשות שימוש חוזר בפרויקט קיים.
- מוודאים שהחיוב מופעל בקטע My projects (הפרויקטים שלי) בדף החיוב ב-Cloud
- אם בעמודה
Billing account
מופיע הערךBilling is disabled
בפרויקט החדש:- לוחצים על שלוש הנקודות בעמודה
Actions
. - לוחצים על שינוי פרטי החיוב.
- בוחרים את החשבון לחיוב שבו רוצים להשתמש.
- לוחצים על שלוש הנקודות בעמודה
- אם אתם משתתפים באירוע בשידור חי, סביר להניח שהשם של החשבון יהיה Google Cloud Platform Trial Billing Account.
- אם בעמודה
4. הפעלה של Gemini Cloud Assist ושימוש בו
במשימה הזו נעביר הדרכה על הפעלה של Gemini Cloud Assist ועל שימוש בו. כשעובדים במסוף Google Cloud, Gemini Cloud Assist יכול להציע עצות, לעזור בתהליך היצירה, ההגדרה והמעקב אחרי התשתית של Google Cloud, ואפילו להציע פקודות gcloud
ולכתוב סקריפטים של Terraform.
- כדי להפעיל את Cloud Assist לשימוש, לוחצים על תיבת החיפוש בחלק העליון של ממשק המשתמש של מסוף Cloud ובוחרים באפשרות Ask Gemini או Ask Gemini for Cloud console.
- גוללים לקטע Required API (API נדרש) בדף ומפעילים את Gemini for Google Cloud API.
- אם ממשק הצ'אט לא מופיע מייד, לוחצים על התחלת צ'אט. כדי להתחיל, אפשר לבקש מ-Gemini להסביר על כמה מהיתרונות של השימוש ב-Cloud Shell Editor. כדאי להקדיש כמה דקות כדי לבדוק את התשובה שנוצרה.
- בשלב הבא, כדאי לשאול על היתרונות של הכלי ליצירת סוכני AI וכיצד הוא יכול לעזור לכם ליצור תשובות גנרטיביות.
- לסיום, נציג השוואה. בחלון הצ'אט של Gemini במסוף Google Cloud, שואלים את השאלה הבאה:
What are the major steps to creating a search app grounded in a GCS data source using Vertex AI Agent builder?
5. יצירת אפליקציית חיפוש ב-Vertex AI Agent Builder ל-chatbot של ייעוץ בישול
באתר האינטרנט שאנחנו מפתחים יהיה דף עם טיפים לבישול שמכיל צ'אט בוט שנועד לעזור למשתמשים למצוא תשובות לשאלות שקשורות לבישול. הוא יופעל על ידי Gemini שמבוסס על מקור שמכיל 70 ספרי בישול בתחום הציבורי. ספרי הבישול ישמשו כמקור האמין שבו Gemini משתמש כדי לענות על שאלות.
- משתמשים בתיבת החיפוש של מסוף Cloud כדי לנווט אל Vertex AI. בלוח הבקרה, לוחצים על Enable All Recommended APIs (הפעלת כל ממשקי ה-API המומלצים). הפעולה עשויה להימשך מספר דקות. אם מופיעה תיבת קופץ עם בקשה להפעיל את Vertex AI API, צריך להפעיל אותו גם כן. אחרי הפעלת ממשקי ה-API, אפשר לעבור לשלב הבא.
- משתמשים בחיפוש כדי לנווט אל Agent Builder ואז לוחצים על Continue and Activate the API.
- כפי שציין Gemini בבקשת העזרה הקודמת שלנו, כדי ליצור אפליקציית חיפוש ב-Agent Builder, צריך קודם ליצור מקור נתונים מהימן. כשהמשתמש מבצע חיפוש, Gemini מבין את השאלה ואת האופן שבו צריך לכתוב תשובות חכמות, אבל הוא יבדוק את המקור המבוסס כדי למצוא את המידע שמשמש בתשובה הזו, במקום להשתמש בידע הטבעי שלו.בתפריט הימני, עוברים אל מאגרי נתונים ואל יצירת מאגר נתונים.
- ספרי הבישול בתחום הציבורי שבהם אנחנו משתמשים כדי להציג את העצות שלנו בנושא בישול נמצאים כרגע בקטגוריה של Cloud Storage בפרויקט חיצוני. בוחרים את סוג המקור ב-Cloud Storage.
- בודקים את אפשרויות ברירת המחדל שקשורות לסוג המידע שאנחנו מייבאים, אבל לא משנים אותן. משאירים את סוג הייבוא מוגדר כ-Folder (תיקייה), ובנתיב הקטגוריה מזינים:
labs.roitraining.com/labs/old-cookbooks
, ואז לוחצים על Continue (המשך). - נותנים שם למאגר הנתונים:
old-cookbooks
. לוחצים על EDIT (עריכה) ומשנים את המזהה ל-old-cookbooks-id
, ואז לוחצים על Create (יצירה) כדי ליצור את מאגר הנתונים.
Vertex AI Agent Builder תומך בכמה סוגים של אפליקציות, ו-Data Store משמש כמקור האמין של כל אחת מהן. אפליקציות חיפוש מתאימות לשימוש כללי ולחיפוש. אפליקציות צ'אט מיועדות לתהליכים גנרטיביים באפליקציות של צ'אטבוט או קולבוט שמבוססות על Dataflow. אפליקציות המלצות עוזרות ליצור מנועי המלצות טובים יותר. אפליקציות נציגים משמשות ליצירת נציגים מבוססי בינה מלאכותית גנרטיבית. בסופו של דבר, סביר להניח ש-Agent יעזור לנו להשיג את מה שאנחנו רוצים, אבל מכיוון שהמוצר נמצא כרגע בתצוגה מקדימה, נמשיך להשתמש בסוג 'אפליקציית חיפוש'.
- בתפריט שמימין, עוברים אל אפליקציות ולוחצים על יצירת אפליקציה חדשה.
- לוחצים על יצירה בכרטיס חיפוש האתר. נותנים לאפליקציה את השם
cookbook-search
. לוחצים על עריכה ומגדירים את מזהה האפליקציה כ-cookbook-search-id
. מגדירים את החברה כ-Google
ולוחצים על המשך. - בודקים את מאגר הנתונים old-cookbooks שיצרתם לפני כמה שלבים ויוצרים את אפליקציית החיפוש.
אם תבדקו בכרטיסייה פעילות, סביר להניח שתראו שהספרים עדיין מיובאים ומתווספים לאינדקס. תהליך ההוספה של אלפי הדפים שמכילים 70 ספרי הבישול שסיפקנו ל-Agent Builder לאינדקס יימשך יותר מ-5 דקות. בזמן שהיא פועלת, נטען וננקה נתונים מסוימים ממסד הנתונים של המתכונים לצורך הכלי ליצירת מתכונים.
6. איך מעמיסים ומנקים נתונים במחברת ב-Colab Enterprise בעזרת Gemini Code Assist
ב-Google Cloud יש כמה דרכים עיקריות לעבוד עם מסמכי Jupyter Notebooks. נשתמש במוצר החדש ביותר של Google, Colab Enterprise. יכול להיות שחלק מכם מכירים את המוצר Colab של Google, שמשמשים אנשים פרטיים וארגונים שרוצים להתנסות בקובצי notebook של Jupyter בסביבה חופשית. Colab Enterprise הוא חבילת שירות מסחרית של Google Cloud, שמשולבת באופן מלא עם שאר מוצרי הענן של Google ומאפשרת לנצל את מלוא יכולות האבטחה והתאימות של סביבת GCP.
אחת מהתכונות של Colab Enterprise היא שילוב עם Gemini Code Assist של Google. אפשר להשתמש בתכונה 'עזרה בקוד' במספר עורכי קוד שונים, והיא יכולה להציע טיפים וגם הצעות בתוך השורה בזמן הכתיבה. נשתמש במסגרת הזו של AI גנרטיבי בזמן שנעבוד על נתוני המתכונים שלנו.
- משתמשים בחיפוש כדי לעבור אל Colab Enterprise ולוחצים על Create notebook. אם תקבלו הצעה להתנסות בתכונות חדשות של Colab, סגרו אותה. כדי להפעיל את סביבת זמן הריצה, כלומר את כוח המחשוב שמאחורי המחברות, לוחצים על Connect (התחברות) בפינה השמאלית העליונה של המחברות החדשה.
- לוחצים על קובץ > שינוי שם כדי לשנות את שם המחברות ל-
Data Wrangling
. - לוחצים על + טקסט כדי ליצור תיבת טקסט חדשה, ומשתמשים בחץ למעלה כדי להזיז אותה כך שתהיה התא הראשון בדף.
- עורכים את תיבת הטקסט ומזינים את הפרטים הבאים:
# Data Wrangling Import the Pandas library
- בבלוק הקוד שמתחת לבלוק הטקסט שיצרתם, מתחילים להקליד
imp
וההצעות של Gemini Code Assist לשאר הייבוא יופיעו באפור. כדי לקבל את ההצעה, מקישים על Tab.import pandas as pd
- מתחת לתיבת קוד הייבוא, יוצרים תיבת טקסט נוספת ומזינים:
Create a Pandas DataFrame from: gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv. View the first few records.
- יוצרים ועורכים עוד בלוק קוד. שוב, מתחילים להקליד
df =
ובודקים את הקוד שנוצר על ידי Gemini Code Assistant. אם מופיעה רשימת נפתחת של השלמה אוטומטית של מילות מפתח ב-Python מעל ההצעה שנוצרה, מקישים על Esc כדי להציג את הקוד המוצע באפור בהיר. מקישים שוב על Tab כדי לאשר את ההצעה. אם ההצעה לא הכילה את קריאת הפונקציהhead()
, מוסיפים אותה.df = pd.read_csv('gs://labs.roitraining.com/labs/recipes/recipe_dataset.csv') df.head()
- לוחצים על תא הקוד הראשון שבו ייבאת את Pandas, ומשתמשים בתפריט Commands או במקלדת כדי להריץ את התא שנבחר. במקלדת, הקשה על shift+enter תפעיל את התא ותעביר את המיקוד לתא הבא, ותצור תא חדש אם יש צורך. ממתינים עד שהתא יבוצע לפני שממשיכים.הערה: אם התא לא בוצע, יופיע [ ] ממש משמאל. בזמן שהתא פועל, תוצג אנימציה של ספין. בסיום הטעינה של התא יופיע מספר, למשל [13].
- מריצים את התא שמטעין את קובץ ה-CSV ל-DataFrame. ממתינים שהקובץ ייטען ובודקים את חמש השורות הראשונות של הנתונים. אלה נתוני המתכונים שנטען ל-BigQuery, ובסופו של דבר נשתמש בהם כדי לבסס את הכלי ליצירת מתכונים.
- יוצרים בלוק קוד חדש ומזינים את התגובה הבאה. אחרי שמקלידים את התגובה, עוברים לשורת הקוד הבאה וצריך להופיע ההצעה
df.columns
. מאשרים את ההודעה ומריצים את התא. הראינו עכשיו שיש לכם שתי אפשרויות לקבלת עזרה מ-Gemini Code Assist ביומן Jupyter: תאי טקסט מעל תאי הקוד או תגובות בתוך תא הקוד עצמו. תגובות בתוך תאי קוד פועלות היטב במסמכי Jupyter, אבל הגישה הזו תפעל גם בכל סביבת פיתוח משולבת (IDE) אחרת שתומכת בתכונה Gemini Code assist של Google.# List the current DataFrame column names
- ננקה קצת את העמודות. משנים את השם של העמודה
Unnamed: 0
ל-id
, ואת השם של העמודהlink
ל-uri
. משתמשים בהנחיה ובשיטות הקוד שבחרתם כדי ליצור את הקוד, ואז מריצים את התא כשמרוצים.# Rename the column 'Unnamed: 0' to 'id' and 'link' to 'uri' df.rename(columns={'Unnamed: 0': 'id', 'link': 'uri'}, inplace=True)
- מסירים את העמודות
source
ו-NER
ומשתמשים ב-head()
כדי להציג את השורות הראשונות. שוב, אפשר לבקש עזרה מ-Gemini. מריצים את שתי השורות האחרונות ובודקים את התוצאות.# Remove the source and NER columns df.drop(columns=['source', 'NER'], inplace=True) df.head()
- נבדוק כמה רשומות יש במערך הנתונים שלנו. שוב, מתחילים עם שיטת ההנחיה שבחרתם ובודקים אם Gemini יכולה לעזור לכם ליצור את הקוד.
# Count the records in the DataFrame df.shape # count() will also work
- 2.23 מיליון רשומות הן כנראה יותר מתכונים ממה שיש לנו זמן להכין. תהליך ההוספה לאינדקס ב-Agent Builder כנראה יימשך יותר מדי זמן בשביל התרגיל שלנו היום. כפשרה, נבחר 150,000 מתכונים ונעבוד עם הנתונים האלה. משתמשים בשיטה של הנחיה > קוד כדי לבחור את הדגימה ולאחסן אותה ב-DataFrame חדש בשם
dfs
(s עבור קטן).# Sample out 150,000 records into a DataFrame named dfs dfs = df.sample(n=150000)
- נתוני המקור של המתכונים מוכנים לטעינה ב-BigQuery. לפני שנטען את הנתונים, נעבור ל-BigQuery ונכין מערך נתונים שיאכלס את הטבלה שלנו. במסוף Google Cloud, משתמשים בתיבת החיפוש כדי לנווט אל BigQuery. אפשר ללחוץ לחיצה ימנית על BigQuery ולפתוח אותו בכרטיסייה חדשה בדפדפן.
- אם היא עדיין לא מוצגת, פותחים את החלונית של Gemini AI Chat באמצעות הלוגו של Gemini בפינה הימנית העליונה של מסוף Cloud. אם תתבקשו להפעיל את ה-API שוב, תוכלו להקיש על 'הפעלה' או לרענן את הדף. מריצים את ההנחיה:
What is a dataset used for in BigQuery?
אחרי שבודקים את השאלה של התגובה,How can I create a dataset named recipe_data using the Cloud Console?
משווים את התוצאות לפי השלבים הבאים. - בחלונית BigQuery Explorer, לוחצים על התפריט View actions (הצגת פעולות) עם שלוש הנקודות לצד מזהה הפרויקט. לאחר מכן בוחרים באפשרות Create dataset.
- נותנים את מערך הנתונים והמזהה של
recipe_data
. משאירים את סוג המיקום כ-US ולוחצים על Create Dataset. אם מופיעה הודעת שגיאה על כך שמערך הנתונים כבר קיים, פשוט ממשיכים הלאה.אחרי שיוצרים את מערך הנתונים ב-BigQuery, חוזרים ל-Jupyter Notebook ומבצעים את ההוספה. - חוזרים לקובץ ה-notebook של עיבוד הנתונים ב-Colab Enterprise. בתא קוד חדש, יוצרים משתנה בשם
project_id
ומשתמשים בו כדי לאחסן את מזהה הפרויקט הנוכחי. מזהה הפרויקט הנוכחי מופיע בפינה הימנית העליונה של ההוראות האלה, מתחת ללחצן End Lab (סיום הסדנה). אפשר למצוא אותו גם בדף הבית של מסוף Cloud. מקצים את הערך למשתנהproject_id
ומפעילים את התא.# Create a variable to hold the current project_id project_id='YOUR_PROJECT_ID'
- משתמשים בשיטה של הנחיה > קוד כדי ליצור בלוק קוד שיוסיף את DataFrame
dfs
לטבלה בשםrecipes
במערך הנתונים שיצרנו עכשיוrecipe_data
. מפעילים את התא.dfs.to_gbq(destination_table='recipe_data.recipes', project_id=project_id, if_exists='replace')
7. יצירת אפליקציית חיפוש ב-Vertex AI Agent Builder ליצירת המתכונים
מעולה, עכשיו כשטבלת נתוני המתכונים שלנו נוצרה, נשתמש בה כדי ליצור מקור נתונים מבוסס ליצירת המתכונים. הגישה שלנו תהיה דומה לזו שבה השתמשנו ב-chatbot שלנו לבישול. נשתמש ב-Vertex AI Agent Builder כדי ליצור מאגר נתונים, ולאחר מכן נשתמש בו כמקור האמיתי של אפליקציית חיפוש.
אם רוצים, אפשר לבקש מ-Gemini במסוף Google Cloud להזכיר את השלבים ליצירת אפליקציית חיפוש של Agent Builder, או לפעול לפי השלבים שמפורטים בהמשך.
- משתמשים בחיפוש כדי לנווט אל Agent Builder. פותחים את מאגרי הנתונים ואת יצירת מאגר נתונים. הפעם, בוחרים את הסוג BigQuery Data Store.
- בתא הבחירה בטבלה, לוחצים על Browse ומחפשים את
recipes
. לוחצים על לחצן הבחירה לצד הטבלה. אם מופיעים מתכונים מפרויקטים אחרים מסוג qwiklabs-gcp-…, חשוב לבחור את המתכון ששייך לכם.הערה: אם לוחצים עלrecipes
במקום לסמן את לחצן הבחירה שלצידו, נפתחת כרטיסייה חדשה בדפדפן ומובילים לדף הסקירה הכללית של הטבלה ב-BigQuery. פשוט סוגרים את הכרטיסייה בדפדפן ובוחרים בלחצן האפשרויות ב-Agent Builder. - בודקים את שאר אפשרויות ברירת המחדל, אבל לא משנים אותן, ואז לוחצים על המשך.
- בדף בדיקת הסכימה, בודקים את הגדרות ברירת המחדל הראשוניות, אבל לא משנים דבר. המשך
- נותנים שם למאגר הנתונים
recipe-data
. עורכים את מזהה מאגר הנתונים ומגדירים אותו כ-recipe-data-id
. יוצרים את מאגר הנתונים. - עוברים אל Apps (אפליקציות) באמצעות תפריט הניווט הימני ואז אל Create A New App (יצירת אפליקציה חדשה).
- לוחצים על יצירה בכרטיס חיפוש האתר. נותנים לאפליקציה את השם
recipe-search
ולוחצים על EDIT (עריכה) כדי להגדיר את המזהה כ-recipe-search-id
. מגדירים את שם החברה כ-Google
ולוחצים על המשך. - הפעם, בודקים את מקורות הנתונים recipe-data. יוצרים את האפליקציה.
תהליך ההוספה של טבלת מסד הנתונים שלנו לאינדקס יימשך זמן מה. בינתיים, ננסה את קנבס הנתונים החדש של BigQuery ונראה אם נוכל למצוא כמה מתכונות מעניינות.
- משתמשים בתיבת החיפוש כדי לנווט אל BigQuery. בחלק העליון של BigQuery Studio, לוחצים על החץ למטה לצד הכרטיסייה השמאלית ביותר ובוחרים באפשרות Data canvas. מגדירים את האזור כ-us-central1.
- לוחצים על חיפוש נתונים. בתיבה לחיפוש ב'לוח הנתונים', מחפשים את
recipes
, לוחצים עלEnter/Return
כדי לחפש ולוחצים על הלחצן הוספה ללוח לצד שם הטבלה. - יטען לוח ציור של נתוני BigQuery עם ייצוג חזותי של טבלת המתכונים. אפשר לבחון את הסכימה של הטבלה, להציג תצוגה מקדימה של הנתונים בטבלה ולבדוק פרטים נוספים. מתחת לייצוג הטבלה, לוחצים על שאילתה.
- בקנבס יופיע תיבת דו-שיח רגילה פחות או יותר של שאילתה ב-BigQuery, עם תוספת אחת: מעל חלון השאילתה מופיעה תיבת טקסט שבה אפשר לבקש עזרה מ-Gemini. ננסה למצוא מתכונים לעוגות בדוגמה שלנו. מריצים את ההנחיה הבאה (מקלידים את הטקסט ומקישים על
Enter/Return
כדי להפעיל את יצירת ה-SQL):Please select the title and ingredients for all the recipes with a title that contains the word cake.
- בודקים את ה-SQL שנוצר. כשמרוצים מהתוצאה, מריצים את השאילתה.
- לא רע! לפני שממשיכים, אפשר להתנסות בכמה הנחיות ושאילתות אחרות. כשאתם עורכים ניסויים, נסו להשתמש בהנחיות פחות ספציפיות כדי לראות מה עובד ומה לא. לדוגמה, ההנחיה הבאה:
(לא לשכוח להריץ את השאילתה החדשה) החזירה רשימה של מתכונים לצ'ילי, אבל לא כללה את המצרכים עד ששיניתי אותה כך:Do I have any chili recipes?
(כן, אני אומרת 'בבקשה' כשאני מבקשת משהו. אמא שלי הייתה גאה מאוד.) שמתי לב שמתכון אחד לצ'ילי הכיל פטריות, ומי רוצה פטריות בצ'ילי? ביקשתי מ-Gemini לעזור לי להחריג את המתכונים האלה.Do I have any chili recipes? Please include their title and ingredients.
Do I have any chili recipes? Please include their title and ingredients, and ignore any recipes with mushrooms as an ingredient.
8. פתיחת Cloud Shell Editor
- עוברים אל Cloud Shell Editor.
- אם מסוף ה-SSH לא מופיע בחלק התחתון של המסך, פותחים אותו:
- לוחצים על תפריט שלושת הקווים
.
- לוחצים על Terminal (מסוף).
- לוחצים על מסוף חדש
- לוחצים על תפריט שלושת הקווים
- בטרמינל, מגדירים את הפרויקט באמצעות הפקודה הבאה:
- פורמט:
gcloud config set project [PROJECT_ID]
- דוגמה:
gcloud config set project lab-project-id-example
- אם לא זוכרים את מזהה הפרויקט:
- אפשר להציג את כל מזהי הפרויקטים באמצעות:
gcloud projects list | awk '/PROJECT_ID/{print $2}'
- אפשר להציג את כל מזהי הפרויקטים באמצעות:
- פורמט:
- אם מתבקשים לאשר, לוחצים על Authorize (מתן הרשאה) כדי להמשיך.
- אמורה להופיע ההודעה הבאה:
אם מופיעUpdated property [core/project].
WARNING
ונשאלת השאלהDo you want to continue (Y/N)?
, סביר להניח שהזנתם את מזהה הפרויקט בצורה שגויה. לוחצים עלN
, לוחצים עלEnter
ומנסים להריץ שוב את הפקודהgcloud config set project
.
9. הפעלת ממשקי API
מפעילים את ממשקי ה-API בטרמינל:
gcloud services enable \
compute.googleapis.com \
sqladmin.googleapis.com \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
networkconnectivity.googleapis.com \
servicenetworking.googleapis.com \
cloudaicompanion.googleapis.com
אם מתבקשים לאשר, לוחצים על Authorize (מתן הרשאה) כדי להמשיך.
השלמת הפקודה עשויה להימשך כמה דקות, אבל בסופו של דבר אמורה להופיע הודעה על השלמה, בדומה להודעה הבאה:
Operation "operations/acf.p2-73d90d00-47ee-447a-b600" finished successfully.
10. פיתוח הליבה של אפליקציית האינטרנט ב-Python וב-Streamlit, עם קצת עזרה מ-Gemini
עכשיו, אחרי ששתי מאגרי הנתונים של Vertex AI Agent Builder נוספו לאינדקס ואפליקציות החיפוש שלנו כמעט מוכנות, נתחיל לבנות את אפליקציית האינטרנט.
אנחנו נשתמש ב-Gemini Code Assist במהלך העבודה. מידע נוסף על השימוש ב-Gemini Code Assist ב-Visual Studio Code זמין כאן
- במסוף של Cloud Shell Editor, מריצים את הפקודה הבאה כדי להעתיק את המאגר של אפליקציית המתכונים.
git clone https://github.com/haggman/recipe-app
- מריצים את הפקודה הזו כדי לפתוח את תיקיית האפליקציות ב-Cloud Shell Editor.
cloudshell open-workspace recipe-app/
- לפני שנבדוק את התיקייה המשוכפלת ונתחיל לעבוד על אפליקציית האינטרנט, נצטרך להתחבר ל-Google Cloud דרך הפלאגין של Cloud Code ב-Visual Studio Code ולהפעיל את Gemini. עכשיו נבצע את הפעולה הזו. בפינה הימנית התחתונה של העורך, לוחצים על Cloud Code – Sign in. אם הקישור לא מופיע, ממתינים רגע ובודקים שוב.
- בחלון הטרמינל תוצג כתובת URL ארוכה. פותחים את כתובת ה-URL בדפדפן ומבצעים את השלבים כדי להעניק ל-Cloud Code גישה לסביבת Google Cloud. בתיבת הדו-שיח האחרונה, מעתיקים את קוד האימות ומדביקים אותו בחזרה בחלון המסוף שממתין בכרטיסייה של Cloud Shell Editor בדפדפן.
- אחרי כמה רגעים, הקישור ל-Cloud Code בפינה הימנית התחתונה של העורך ישתנה ל-Cloud Code – No Project. לוחצים על הקישור החדש כדי לבחור פרויקט. לוח הפקודות אמור להיפתח בחלק העליון של העורך. לוחצים על Select a Google Cloud project ובוחרים את הפרויקט. אחרי כמה רגעים, הקישור בפינה השמאלית התחתונה של הכלי יעודכן ויציג את מזהה הפרויקט. זה אומר ש-Cloud Code צורף בהצלחה לפרויקט העבודה שלכם.
- עכשיו, כש-Cloud Code מחובר לפרויקט, אפשר להפעיל את Gemini Code Assist. בפינה השמאלית התחתונה של ממשק העריכה, לוחצים על הלוגו של Gemini עם הקו החוצה. חלונית Gemini Chat תיפתח בצד ימין של העורך. לוחצים על Select a Google Cloud Project. כשלוח הפקודות נפתח, בוחרים את הפרויקט. אם פעלתם לפי השלבים בצורה נכונה (ו-Google לא שינתה שום דבר), עכשיו אמורה להופיע חלון פעיל של Gemini Chat.
- מעולה, עכשיו כשהגדרתם את מסוף Cloud, את צ'אט Gemini ואת Cloud Code, תוכלו לפתוח את הכרטיסייה Explorer ולעיין במשך כמה דקות בקבצים שבפרויקט הנוכחי.
- פותחים את הקובץ
requirements.txt
ב-Explorer לעריכה. עוברים לחלונית הצ'אט של Gemini ושואלים:From the dependencies specified in the requirements.txt file, what type of application are we building?
- אנחנו מפתחים אפליקציית אינטרנט אינטראקטיבית באמצעות Python ו-Streamlit, שמקיימת אינטראקציה עם Vertex AI ו-Discovery Engine. בשלב הזה, נתמקד ברכיבים של אפליקציית האינטרנט. לפי Gemini, Streamlit היא מסגרת ליצירת אפליקציות אינטרנט מבוססות-נתונים ב-Python. עכשיו שואלים:
במקרים כאלה, בדרך כלל יש בעיות ב-Gemini. ל-Gemini יש גישה לקובץ שפתוח כרגע בעורך, אבל הוא לא יכול לראות את הפרויקט כולו. אפשר לנסות לשאול את זה:Does the current project's folder structure seem appropriate for a Streamlit app?
רוצים לקבל תשובה טובה יותר?Given the below, does the current project's file and folder structure seem appropriate for a Streamlit app? - build.sh - Home.py - requirements.txt - pages -- Cooking_Advice.py -- Recipe_Search.py
- הנה מידע נוסף על Streamlit:
מצוין, אנחנו רואים ש-Gemini מציע סקירה כללית טובה, כולל יתרונות וחסרונות.What can you tell me about Streamlit?
- אם תרצו לבדוק את החסרונות, תוכלו לשאול:
שימו לב שלא היינו צריכים לומר "מ-Streamlit", כי Gemini Chat הוא צ'אט שיחה (עם כמה תשובות). Gemini יודע על מה דיברנו כי אנחנו נמצאים בשיחת צ'אט. אם תרצו למחוק את היסטוריית השיחות עם Gemini בשלב כלשהו, תוכלו להשתמש בסמל של פח האשפה בחלק העליון של חלון הצ'אט עם הקוד של Gemini.What are the major downsides or shortcomings?
11. פריסת אפליקציית האינטרנט ב-Cloud Run
מצוין, סיימנו ליצור את מבנה הליבה של האפליקציה, אבל האם הכל יפעל? עדיף, איפה כדאי לארח אותו ב-Google Cloud?
- בחלון הצ'אט של Gemini, שואלים:
If I containerize this application, what compute technologies in Google Cloud would be best for hosting it?
- חשוב לזכור: אם עדיין לא עבדו בסביבת הפיתוח המשולבת, אפשר גם להשתמש ב-Google Cloud Assist. פותחים את מסוף Google Cloud ואז פותחים את Gemini Cloud Assist ושואלים:
האם שתי קבוצות העצות היו זהות? האם יש לך הסכמה או אי-הסכמה לגבי אחת מהעצות? חשוב לזכור ש-Gemini הוא עוזר מבוסס-AI גנרטיבי, וכמו עוזר אנושי, לא תמיד תסכימו עם כל מה שהוא אומר. עם זאת, כשהעוזר הזה תמיד לצידכם בזמן העבודה ב-Google Cloud ובעורך הקוד, אתם יכולים להיות הרבה יותר יעילים.If I have a containerized web application, where would be the best place to run it in Google Cloud?
- Cloud Run היא אפשרות מצוינת לאפליקציית אינטרנט בקונטיינר לטווח קצר ללא שמירת מצב. בחלון הצ'אט של Gemini בכלי לעריכת קוד, מנסים את ההנחיה הבאה:
What steps would be required to run this application in Cloud Run?
- נראה שהדבר הראשון שצריך לעשות הוא ליצור קובץ Dockerfile. באמצעות העורך, יוצרים קובץ בשם
Dockerfile
ברמה הבסיסית של תיקיית הפרויקט. חשוב לוודא שלא שמתם אותו בטעות בתיקייה pages. פותחים את הקובץ לצורך עריכה. - נשתמש בחלונית הצ'אט הצדדית של Gemini כדי ליצור את Dockerfile. משתמשים בהנחיה כמו זו שבהמשך. כשהתוצאות מוצגות בצ'אט, משתמשים בסמל הפלוס (+) לצד סמל ההעתקה שמעל קובץ Dockerfile המוצע כדי להוסיף את הקוד המוצע לקובץ Dockerfile.
Gemini לא תמיד מחזיר את אותה תשובה לאותה הנחיה. בפעם הראשונה שביקשתי מ-Gemini קובץ Dockerfile, קיבלתי את הקובץ המדויק שאני הולך להציע לכם להשתמש בו. קיבלתי עכשיו את ההצעה הבאה:Create a Dockerfile for the application in the current folder. The dependencies are defined in requirements.txt and I want you to use the Python 3 slim bookworm base image.
זהו קובץ Docker עצום. אשמח לפשט את זה קצת. אין צורך בקטע apt-get כי כל מה שדרוש ל-Python כבר נמצא בתמונת הבסיס שלנו. בנוסף, שימוש בסביבה וירטואלית בקונטיינר של Python הוא בזבוז מקום, ולכן כדאי להסיר אותו. הפקודה expose לא חובה, אבל מומלץ להשתמש בה. בנוסף, הוא מנסה להפעיל את main.py שאין לי.# Base image FROM python:3-bookworm-slim # Set working directory WORKDIR /app # Install dependencies RUN apt-get update && apt-get install -y \ build-essential \ libpq-dev \ gcc \ python3-dev \ && rm -rf /var/lib/apt/lists/* # Install pip and virtualenv RUN pip install --upgrade pip virtualenv # Create virtual environment RUN python3 -m venv venv # Activate virtual environment WORKDIR /app/venv/bin RUN . activate # Install Streamlit and libraries from requirements.txt RUN pip install -r requirements.txt # Copy application files COPY . /app # Expose port 8501 for Streamlit EXPOSE 8501 # Start Streamlit app CMD ["streamlit", "run", "main.py"]
- בתיקייה
recipe-app
, יוצרים קובץ בשםDockerfile
ומדביקים את התוכן הבא:FROM python:3.11-slim-bookworm WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt COPY . . CMD ["streamlit", "run", "Home.py"]
- אפשר להפעיל את Gemini דרך חלון הצ'אט, אבל אפשר גם להפעיל אותו ישירות בקובץ הקוד באמצעות תגובות, כמו שעשינו במחברת Data Wrangling. אפשר גם להפעיל אותו באמצעות Control+i ב-Windows או Command+i ב-Mac. לוחצים במקום כלשהו ב-
Dockerfile
ומפעילים את Gemini באמצעות הפקודה המתאימה Command+i או Control+i. - מזינים את הטקסט הבא בהודעה שמופיעה. בודקים את השינוי ומאשרים אותו.
כמה מגניב זה?! כמה פעמים נאלצתם לעבוד עם קוד של מישהו אחר, רק כדי לבזבז זמן על הבנת העבודה הבסיסית שלו ללא תגובות, לפני שתוכלו אפילו להתחיל לבצע את השינויים שלכם? Gemini מציל את המצב!Please comment the current file.
- עכשיו שואלים את Gemini איך אפשר להשתמש ב-Cloud Run כדי ליצור ולפרוס קובץ אימג' חדש בשם
recipe-web-app
מקובץ Dockerfile בתיקייה הנוכחית.How could I use gcloud to build a new Cloud Run service named recipe-web-app from the current directory?
- נמשיך לפתח ולפרוס את האפליקציה. מריצים את הפקודה
gcloud run deploy
בחלון המסוף. אם מופיעה בקשה ליצור מאגר ב-Artifact Registry, מקישים עלgcloud run deploy recipe-web-app \ --allow-unauthenticated \ --source=. \ --region=us-central1 \ --port=8501
enter/return
Deploying from source requires an Artifact Registry Docker repository to store built containers. A repository named cloud-run-source-deploy in region us-central1 will be created. Do you want to continue (Y/n)?
- אם תצפו בתהליך ה-build, תראו קודם שיוצרים את מאגר ה-docker של Artifact Registry. לאחר מכן, המערכת משתמשת ב-Cloud Build כדי ליצור את קובץ האימג' של הקונטיינר מקובץ ה-Dockerfile בתיקייה המקומית. לבסוף, קובץ האימג' של Docker יוצג בשירות Cloud Run חדש. בסוף הסקריפט תקבלו כתובת URL לבדיקה של Cloud Run.
פותחים את הקישור שהוחזר בכרטיסייה חדשה בדפדפן. כדאי להקדיש כמה דקות כדי לבחון את המבנה והדפים של האפליקציה. מצוין, עכשיו אנחנו צריכים לקשר את הפונקציונליות של ה-AI הגנרטיבי.
12. קישור הדף 'טיפים לבישול' לאפליקציית ה-Agent Builder לחיפוש ספרי בישול
המסגרת של אפליקציית האינטרנט פועלת, אבל אנחנו צריכים לקשר את שני דפי העבודה לשתי אפליקציות החיפוש של Vertex AI Agent Builder. נתחיל עם 'טיפים לבישול'.
- משאירים את הכרטיסייה של Cloud Shell Editor פתוחה. במסוף Google Cloud, משתמשים בחיפוש כדי לנווט אל Chat ב-Vertex AI.
- בחלונית של דף ההגדרות בצד שמאל, מגדירים את המודל כ-gemini-1.5-flash-002. מחליקים את מגבלת האסימונים של הפלט למקסימום כדי שהמודל יוכל להחזיר תשובות ארוכות יותר במקרה הצורך. פותחים את ההגדרות של מסנן הבטיחות. מגדירים את האפשרויות 'דברי שטנה', 'תוכן מיני בוטה' ו'תוכן הטרדה' לאפשרות חסימה חלקית. מגדירים את האפשרות 'תוכן מסוכן' לאפשרות חסימת מעט ובוחרים באפשרות שמירה. אנחנו מגדירים את התוכן המסכן ברמה נמוכה יותר כי Gemini עלול לפרש שיחה על סכינים ועל חיתוך כאלימות.
- מחליקים את המתג כדי להפעיל את ההגדרה הארקה ולוחצים על התאמה אישית. מגדירים את מקור ההארקה כ-Vertex AI search, ובנתיב של מאגר הנתונים משתמשים בנתיב הבא. משנים את YOUR_PROJECT_ID למזהה הפרויקט שמופיע למעלה ליד הלחצן End Lab בהוראות האלה, ואז שומרים את הגדרות הארקה
הערה: אם מופיעה שגיאה, סימן שלא שיניתם את מזהה הפרויקט למזהה הפרויקט בפועל, או שפספסתם את השלב שבו שיניתם את מזהה מאגר הנתונים של Agent Builder במתכונים הישנים. מזהה מאגר הנתונים בפועל מופיע בקטע Agent Builder (יצירת סוכנים) > Data Stores (מאגרי נתונים) > old-cookbooks.projects/YOUR_PROJECT_ID/locations/global/collections/default_collection/dataStores/old-cookbooks-id
- בודקים כמה הודעות בצ'אט. כדאי להתחיל עם האפשרויות הבאות. אפשר לנסות עוד כמה אם רוצים.
How can I tell if a tomato is ripe?
- המודל פועל, עכשיו ננסה את הקוד. לוחצים על ניקוי השיחה כדי שהשיחות שלנו לא יהיו חלק מהקוד, ואז לוחצים על קבלת קוד.
- בחלק העליון של חלון הקוד, לוחצים על פתיחת מסמך notebook כדי שנוכל להתנסות בקוד ולשפר אותו ב-Colab Enterprise לפני שנטמיע אותו באפליקציה שלנו.
- כדאי להקדיש כמה דקות כדי להכיר את הקוד. נבצע כמה שינויים כדי להתאים אותו למה שאנחנו רוצים. לפני שנתחיל, מריצים את תא הקוד הראשון כדי להתחבר למכונה לעיבוד נתונים ולהתקין את AI Platform SDK. אחרי שהבלוק יפעל, תופיע בקשה להפעיל מחדש את הסשן. אפשר לעשות את זה.
- עוברים לקוד שחולץ מ-Vertex AI Studio. משנים את השם של method multiturn_generate_content ל-
start_chat_session
. - גוללים אל קריאת ה-method
model = GenerativeModel(
. הקוד הקיים מגדיר אתgeneration_config
ו-safety_settings
, אבל לא משתמש בהם בפועל. משנים את היצירה שלGenerativeModel
כך שתהיה דומה לזו:model = GenerativeModel( "gemini-1.5-flash-002", tools=tools, generation_config=generation_config, safety_settings=safety_settings, )
- ולבסוף, מוסיפים שורה אחרונה לשיטה, ממש מתחת ל-
chat = model.start_chat()
, כדי שהפונקציה תחזיר את האובייקטchat
. הפונקציה המוגמרת אמורה להיראות כך.הערה: אל תעתיקו את הקוד הזה למחברת. הוא נמצא כאן רק כבדיקה.def start_chat_session(): vertexai.init(project="qwiklabs-gcp-02-9a7298ceaaec", location="us-central1") tools = [ Tool.from_retrieval( retrieval=grounding.Retrieval( source=grounding.VertexAISearch(datastore="projects/qwiklabs-gcp-02-9a7298ceaaec/locations/global/collections/default_collection/dataStores/old-cookbooks-id"), ) ), ] model = GenerativeModel( "gemini-1.5-flash-002", tools=tools, generation_config=generation_config, safety_settings=safety_settings, ) chat = model.start_chat() return chat
- גוללים לתחתית תא הקוד ומשנים את השורה האחרונה שמפעילה את הפונקציה הישנה כך שתפעיל את שם הפונקציה החדשה ותשמור את האובייקט שהוחזר במשתנה
chat
. כשמרוצים מהשינויים, מריצים את התא.chat = start_chat_session()
- יוצרים תא קוד חדש ומוסיפים את התגובה
# Use chat to invoke Gemini and print out the response
. עוברים לשורה הבאה ומקלידיםresp
. Gemini אמורה להשלים את הבלוק באופן אוטומטי. מעדכנים את ההנחיה ל-How can I tell if a tomato is ripe?
. הרצת התאresponse = chat.send_message("How can I tell if a tomato is ripe?") print(response)
- זו התשובה, אבל החלק שאנחנו רוצים הוא השדה
text
בתצוגת עץ. משנים את קוד הבלוק כך שיודפס רק הקטע הזה, למשל:response = chat.send_message("How can I tell if a tomato is ripe?") print(response.candidates[0].content.parts[0].text)
- מעולה, עכשיו שיש לנו קוד צ'אט שפועל, נשתמש בו כדי לשלב את האפליקציה לאינטרנט. מעתיקים את כל התוכן של תא הקוד שיוצר את הפונקציה
start_chat_session
(לא נצטרך את תא הבדיקה). אם לוחצים על התא, אפשר ללחוץ על תפריט שלוש הנקודות בפינה השמאלית העליונה ולהעתיק משם - עוברים לכרטיסייה של Cloud Shell Editor ופותחים את הקובץ
pages\Cooking_Advice.py
לעריכה. - מאתרים את התגובה:
# # Add the code you copied from your notebook below this message #
- מדביקים את הקוד שהעתקתם מתחת לתגובה Add the code (הוספת הקוד). מצוין, עכשיו יש לנו את הקטע שמפעיל את מנוע הצ'אט באמצעות קריאה מבוססת ל-Gemini. עכשיו נשתמש ב-Streamlit.
- מאתרים את הקטע של הקוד עם ההערה שמתחת לתגובה:
# # Here's the code to setup your session variables # Uncomment this block when instructed #
- מסירים את ההערה מקטע הקוד הזה (עד לקטע
Setup done, let's build the page UI
הבא) ובודקים אותו. הוא יוצר או מאחזר את המשתנים של סשן הצ'אט ושל היסטוריית הצ'אט. - בשלב הבא נצטרך לשלב את ההיסטוריה ואת פונקציית הצ'אט בממשק המשתמש. גוללים בקוד עד שמוצאים את התגובה הבאה.
# # Here's the code to create the chat interface # Uncomment the below code when instructed #
- מסירים את ההערה של שאר הקוד שמתחת לתגובה ומעיינים בו. אם רוצים, אפשר להדגיש אותו ולבקש מ-Gemini להסביר את הפונקציונליות שלו.
- מעולה, עכשיו נבנה את האפליקציה ונפרוס אותה. כשכתובת ה-URL תופיע שוב, אפשר להפעיל את האפליקציה ולנסות את הדף 'המדריך לבישול'. אולי כדאי לשאול אותו על עגבניות בשלות, או שהבוט יודע איך להכין ברוקולי.
gcloud run deploy recipe-web-app \ --allow-unauthenticated \ --source=. \ --region=us-central1 \ --port=8501
נכון שזה מגניב?! יועץ בישול אישי מבוסס-AI :-)
13. (אופציונלי) חיבור דף החיפוש של המתכונים לאפליקציית ה-Agent Builder לחיפוש מתכונים
כשחיברנו את הדף Cooking Advice למקור המאומת שלו, עשינו זאת ישירות באמצעות Gemini API. כדי לחפש מתכונים, נתחבר ישירות לאפליקציית החיפוש של Vertex AI Agent Builder.
- פותחים את הדף
pages/Recipe_Search.py
לצורך עריכה ב-Cloud Shell Editor. בודקים את המבנה של הדף. - בחלק העליון של הקובץ, מגדירים את מזהה הפרויקט.
- בודקים את הפונקציה
search_sample
. הקוד הזה מגיע כמעט ישירות מהמסמך כאן בנושא מנוע החיפוש Discovery. עותק פעיל זמין כאן.השינוי היחיד שביצעתי היה להחזיר אתresponse.results
במקום רק את התוצאות. בלי זה, סוג ההחזרה הוא אובייקט שנועד לדפדף בתוצאות, וזה משהו שאנחנו לא צריכים באפליקציה הבסיסית שלנו. - גוללים עד לסוף הקובץ ומבטלים את ההערה של כל הקטע שמתחת ל-
Here are the first 5 recipes I found
. - מדגישים את כל הקטע שבו הסרתם את התגובה ופותחים את הצ'אט של Gemini Code. שואלים,
Explain the highlighted code
. אם לא בחרתם שום דבר, Gemini יכול להסביר את כל הקובץ. אם תדגישו קטע ותבקשו מ-Gemini להסביר אותו, להוסיף לו תגובה או לשפר אותו, הוא יעשה זאת.כדאי לקחת רגע ולקרוא את ההסבר. כדאי לדעת ששימוש במחברת של Colab Enterprise הוא דרך מצוינת לבדוק את ממשקי ה-API של Gemini לפני שמשלבים אותם באפליקציה. הוא שימושי במיוחד לבדיקה של חלק מממשקי ה-API החדשים יותר, שיכול להיות שהתיעוד שלהם לא מקיף מספיק. - בחלון המסוף של העורך, מריצים את הפקודה
build.sh
כדי לפרוס את האפליקציה הסופית. צריך להמתין עד שהגרסה החדשה תופעל לפני שממשיכים לשלב הבא.
14. (אופציונלי) בדיקת האפליקציה הסופית
כדאי להקדיש כמה דקות כדי לבדוק את האפליקציה הסופית.
- במסוף Google Cloud, משתמשים בחיפוש כדי לנווט אל
Cloud Run
ולוחצים על recipe-web-app. - מאתרים את כתובת ה-URL לבדיקה של האפליקציה (למעלה) ופותחים אותה בכרטיסייה חדשה בדפדפן.
- דף הבית של האפליקציה אמור להופיע. שימו לב לפריסה ולניווט הבסיסיים ש-Streamlit מספק, שבהם קובצי Python מהתיקייה
pages
מוצגים כאפשרויות ניווט, ו-Home.py
נטען כדף הבית. עוברים לדף טיפים לבישול. - אחרי כמה רגעים יופיע ממשק הצ'אט. שוב, שימו לב לפריסה הנעימה של הליבה ש-Streamlit מספקת.
- נסו לשאול כמה שאלות שקשורות לבישול ולראות איך הבוט פועל. משהו כזה:
Do you have any advice for preparing broccoli? How about a classic chicken soup recipe? Tell me about meringue.
- עכשיו נמצא מתכון או שניים. עוברים לדף החיפוש של המתכונים ומנסים כמה חיפושים. משהו כזה:
Chili con carne Chili, corn, rice Lemon Meringue Pie A dessert containing strawberries
15. מעולה!
יצרתם אפליקציה שמשתמשת באפליקציות של Vertex AI Agent Builder. לאורך הדרך, הכרתם את Gemini Cloud Assist, Gemini Code Assist והתכונות של המרת שפה טבעית ל-SQL ב-Data Canvas של BigQuery. עבודה נהדרת!
הסרת המשאבים
ל-Cloud SQL אין שכבה חינמית, ותתבקשו לשלם אם תמשיכו להשתמש בו. כדי להימנע מחיובים נוספים, אפשר למחוק את הפרויקט ב-Cloud.
אמנם אין חיוב ב-Cloud Run כשלא משתמשים בשירות, אבל יכול להיות שתחויבו על אחסון קובץ האימג' בקונטיינר ב-Artifact Registry. מחיקת הפרויקט ב-Cloud תפסיק את החיוב על כל המשאבים שבהם נעשה שימוש באותו פרויקט.
אם רוצים, מוחקים את הפרויקט:
gcloud projects delete $GOOGLE_CLOUD_PROJECT
מומלץ גם למחוק משאבים לא נחוצים מהדיסק של cloudshell. אפשר:
- מוחקים את הספרייה של פרויקט ה-codelab:
rm -rf ~/task-app
- אזהרה! אי אפשר לבטל את הפעולה הבאה! אם רוצים למחוק את כל התוכן ב-Cloud Shell כדי לפנות מקום, אפשר למחוק את כל ספריית הבית. חשוב לוודא שכל מה שרוצים לשמור נשמר במקום אחר.
sudo rm -rf $HOME