1. לפני שמתחילים
בשיעור ה-Codelab הזה ללימוד עצמי תלמדו איך ליצור סוכני AI באמצעות הכלי לפיתוח סוכנים מבוססי-Vertex AI של Google Cloud. בכל שלב נסביר את המטרה של תכונה ספציפית ב-Agent Builder.
דרישות מוקדמות
- הבנה בסיסית של בינה מלאכותית גנרטיבית ב-Google Cloud
- הבנה בסיסית של המושגים של סוכני AI
- הבנה בסיסית של Gemini CodeAssist (אופציונלי)
מה תלמדו
- איך יוצרים סוכן AI פשוט באמצעות Vertex AI Agent Builder
- איך לצרף מאגר נתונים כדי לאפס את הסוכנות שנוצרה
- איך לשלב את AI Agent באתר(אופציונלי)
מה צריך להכין
- מוח סקרן
- מחשב שפועל ורשת Wi-Fi אמינה
- פרויקט ב-Google Cloud עם חיוב מצורף.
הערה: אם עדיין אין לכם פרויקט ב-Google Cloud, תוכלו ליצור פרויקט לפי ההוראות. אפשר גם לעיין בשירותים בתוכנית ללא תשלום של Google Cloud.
2. עיצוב הסוכן הראשון מבוסס-ה-AI
עכשיו אתם מוכנים ליצור סוכן AI משלכם. אבל לפני שמתחילים בפיתוח, חשוב ליצור חזון ברור לנציג. כדאי לשאול את עצמכם את השאלות הבאות:
- איזו בעיה הפתרון יפתור? האם הוא יעזור לכם לבצע משימות באופן אוטומטי, לספק מידע, להציע בידור או לעודד חקירה יצירתית?
- מהן הפונקציות העיקריות שלה? האם הוא יבצע משימות או יעביר אותן לגורם אחר? האם המערכת תיצור טקסט או שילוב של מדיה שונים?
- מהן המגבלות שלה? האם היא תוכל לעשות הכול באופן אוטונומי?
- איזו אישיות או דמות צריכה להיות לו? האם הוא יהיה רשמי, לא רשמי, מצחיק, מועיל או אינפורמטיבי?
- מהם מדדי ההצלחה? איך תמדדו את היעילות של הסוכן?
כדי לזרז את התהליך, ריכזנו כאן את התשובות לשאלות האלה לגבי סוכנות הנסיעות שתיצרו היום:
- איזו בעיה הפתרון יפתור?
- תכנון נסיעה יכול להיות זמן רב ומבלבל. סוכנות הנסיעות הזו תעזור למשתמשים לגלות יעדים, לתכנן מסלולי נסיעה, להזמין טיסות ומקומות לינה.
- מהן הפונקציות העיקריות שלה?
- הנציג צריך להיות מסוגל
- לענות על שאלות לגבי יעדים, כמו דרישות הוויזה
- לתכנן מסלולי נסיעה שמתאימים ללוחות הזמנים וליעדים של המשתמשים
- הזמנת טיסות ומקומות אירוח
- מהן המגבלות שלה?
- יכול להיות שהסוכן לא יוכל לענות על שאילתות מורכבות כברירת מחדל
- הסוכן לא יוכל ליצור תמונות חזותיות
- הידע של הנציג יהיה מוגבל על ידי המודל הבסיסי
- איזו אישיות או דמות צריכה להיות לו?
- הנציג הזה צריך להיות בעל ידע, מועיל ומלא התלהבות מנסיעות. הוא צריך לאפשר העברת מידע בצורה ברורה ותמציתית.
- מהם מדדי ההצלחה?
- אפשר למדוד את ההצלחה של הסוכן הזה לפי מידת שביעות הרצון של המשתמשים מההמלצות שלו (סיור, תכנון, הזמנת מקום)
3. פיתוח סוכן AI באמצעות Vertex AI Agent Builder
בעזרת Vertex AI Agent Builder אפשר ליצור סוכני AI בכמה שלבים פשוטים.
שלב 1:
- אפשר להיכנס אל Vertex AI Agent Builder.
- אמור להופיע דף הפתיחה.
- לוחצים על הלחצן המשך והפעלת ה-API.
שלב 2:
- המערכת תפנה אתכם לדף 'יצירת אפליקציה'.
- לוחצים על הלחצן CREATE A NEW APP (יצירת אפליקציה חדשה).
שלב 3:
- בוחרים באפשרות נציג תמיכה שיוצר אינטראקציה ולוחצים על יצירה.
הערה:
- אחרי שלוחצים על יצירה, נפתחת כרטיסייה חדשה של סוכנים שיחה של Dialogflow.
- אם תופיע בקשה לבחור פרויקט ב-Google Cloud, עליך לבחור את הפרויקט ב-Google Cloud שמשויך לחשבון הנכון ב-Gmail.
- אם אתם מבצעים את הסדנה הזו בחשבון חדש, תתבקשו להפעיל את Dialogflow API. לוחצים על Enable API כדי להפעיל אותו.
- אם לחיצה על הלחצן לא פועלת, אפשר להפעיל אותו באופן ידני על ידי מעבר ישירות אל דף ה-API .
- בדף Dialogflow שנפתח, לוחצים על Create Agent (יצירת סוכן).
- יוצגו לכם כמה אפשרויות ליצירת סוכן. בוחרים באפשרות יצירת סוכן משלכם.
שלב 4:
- בוחרים שם לתצוגה (למשל, 'חברים בנסיעות')
- בקטע Location (מיקום), בוחרים באפשרות global (Global serving, data-at-rest in US) כRegion (אזור).
- שמירה של הגדרות אחרות, ברירת מחדל
- לוחצים על הלחצן CREATE.
שלב 5:
- בוחרים שם לפלייבוק (למשל Info Agent)
- מוסיפים יעד (למשל, עזרה ללקוחות לענות על שאילתות שקשורות לנסיעות)
- מגדירים הוראה (למשל: 'שלום', ואז 'איך אוכל לעזור לך?')
- לוחצים על שמירה כשהכול מוכן.
שלב 6:
- לוחצים על הסמל החלפת מצב הסימולטור
.
- בוחרים את הסוכן שיצרתם (למשל סוכן מידע)
- בוחרים את מודל ה-AI הגנרטיבי הבסיסי של הסוכן (למשל, gemini-1.5-flash)
- בודקים את הנציג באמצעות שיחה איתו (כלומר, מקלידים משהו בתיבת הטקסט 'הזנת קלט משתמש')
מעולה! סיימתם ליצור סוכן AI באמצעות Vertex AI Agent Builder.
4. צירוף מאגרי נתונים ל-Agent
אפשר לנסות לשאול את הנציג איך מגיעים לוונקאנדה (למשל, "מהי הדרך הטובה ביותר להגיע לוונקאנדה?"). תקבלו תשובה כמו זו:
זה נכון מבחינה עובדתית, אבל במקום פשוט לומר "אין לי אפשרות לספק מידע" ולסיים את השיחה, יהיה שימושי יותר למשתמש אם הנציג יציע מקומות דומים. הגישה הזו עשויה לגרום למשתמשים להזמין נסיעה בפועל דרך הסוכנות.
כדי שהסוכן יוכל להמליץ על מקומות דומים, אתם יכולים לספק לו מידע נוסף באמצעות מאגרי נתונים. הוא משמש כבסיס ידע נוסף שאליו הנציג יכול להפנות אם הוא לא יכול לענות על שאלות של משתמשים על סמך הידע המובנה שלו.
הערה: כדי לסגור את הסימולטור, לוחצים שוב על סמל המתג של הסימולטור.
יצירת מאגר נתונים היא פשוטה. לוחצים על הלחצן + מאגר נתונים בתחתית הדף Agent Basics.
ממלאים את הפרטים הבאים:
- שם הכלי: מיקום חלופי
- סוג: מאגר נתונים
- תיאור: משתמשים בכלי הזה אם הבקשה של המשתמש מכילה מיקום שלא קיים
בסיום, לוחצים על שמירה.
הפעולה הזו יוצרת כלי של מאגר נתונים כדי שהסוכן יוכל לתקשר עם מאגר הנתונים, אבל עדיין צריך ליצור מאגר נתונים בפועל שמכיל את המידע. כדי לעשות זאת, לוחצים על הוספת מאגרי נתונים וליצור מאגר נתונים.
אחרי שלוחצים על Create new data store, המערכת מפנה לדף ה-builder של הסוכן של Vertex AI, כפי שמוצג בהמשך.
בחירה באפשרות של Cloud Storage
בסיום השלב,
- לוחצים על קובץ (הפעולה הזו חשובה מאוד, אחרת הייבוא נכשל)
- מקלידים ai-workshops/agents/data/wakanda.txt
- לוחצים על המשך.
לידיעתך, זהו התוכן של קובץ הטקסט שסיפקת:
Places that are similar to Wakanda
- Oribi Gorge in South Africa: The rock formations here are reminiscent of the Warrior Falls in Wakanda.
- Iguazu Falls: Located on the border of Argentina and Brazil, these massive waterfalls were a major inspiration for the Warrior Falls.
- Immerse yourself in Wakandan culture: Read the Black Panther comics, watch the movies, and explore online resources to learn more about Wakandan culture, language, and technology.
- Visit a Disney theme park: While there isn't a dedicated Wakanda land yet, you might be able to meet Black Panther at Disneyland or on a Marvel Day at Sea Disney cruise.
בדף הבא, נותנים שם למאגר הנתונים (למשל Wakanda Alternative) ולוחצים על CREATE.
בשלב האחרון, בוחרים את מקור הנתונים שיצרתם ולוחצים על יצירה. אפשר לראות את ההתקדמות של ייבוא מאגר הנתונים בלחיצה על מאגר הנתונים**.**
הערה: פעילות הייבוא תימשך זמן מה עד שהיא תושלם. בינתיים, בזמן שהפעילות הזו מתבצעת, תוכלו לבדוק אפשרויות נוספות של מאגרי נתונים שזמינים לסוכני Vertex AI כאן.
אם הכל התנהל בצורה חלקה, חוזרים אל הכרטיסייה של Dialogflow ולוחצים על רענון. מאגר הנתונים שנוצר אמור להופיע בדף מאגרי נתונים זמינים.
כדי למנוע מה-Agent לדמיין דברים, צריך להגדיר את ההגדרה Very Low (רמה נמוכה מאוד) בהגדרות הארקה של מאגר הנתונים. ההגדרה הזו מחילה הגבלות מחמירות יותר על ה-Agent כדי למנוע ממנו להמציא דברים. בשלב הזה, כדאי להשאיר את ההגדרה שמוגדרת כברירת מחדל, אבל אפשר לבדוק אותה עם הגדרות שונות בכל שלב.
עכשיו בוחרים את מאגר הנתונים שנוסף, לוחצים על אישור ואז על שמירה.
עכשיו חוזרים לדף Agent Basics. בתחתית הגדרת ספר הפעולות, מאגר הנתונים החדש שיצרתם(למשל, Alternative Location) יהיה זמין לשימוש. מסמנים את מאגר הנתונים (למשל, Alternative Location) ולוחצים על לחצן השמירה בחלק העליון של הדף.
כמעט סיימת! השלב האחרון הוא לכלול את הכלי מיקום חלופי בהוראות של הנציג. מוסיפים את השורה - Use ${TOOL: Alternative Location} if the user's request contains a location that does not exist להוראות של הנציג, ואז לוחצים על save.
הכול מוכן. נפתח שוב את הסימולטור של המתגים ונשאל את אותן השאלות (למשל, מהי הדרך הטובה ביותר להגיע לוואקנדה?).
מעולה! עכשיו הסוכן שלך ממליץ על מקומות על סמך המידע שסיפקתם מקובץ טקסט.
זהו, סיימנו ליצור את הסוכן העצמאי שלנו מבוסס-AI. אם אתם רוצים לקבל מידע נוסף על התאמה אישית של הסוכן לקבלת חוויה טובה יותר, תוכלו לעיין בפעילויות הנוספות שבהמשך.
5. פעילויות נוספות – הפעלת נציג ה-AI
בשלבים הקודמים פיתחתם סוכן AI והוספתם לו נתוני עזר רלוונטיים. בקטע הבא נענה על השאלה החשובה: איך להטמיע את הסוכן הזה באתר כדי לאפשר אינטראקציה בזמן אמת עם המבקרים.
יש הרבה דרכים לחשוף את הסוכן. אפשר לייצא אותו או לפרסם אותו ישירות. אפשר לעיין במסמכי העזרה כדי לקבל מידע על האפשרויות האפשריות.
בפינה הימנית העליונה של הכרטיסייה Dialogflow, לוחצים על Overflow menu (תפריט האפשרויות הנוספות) ואז על Publish agent (פרסום הסוכן).
משאירים את כל ההגדרות כברירת מחדל ולוחצים על Enable unauthenticated API.
הערה: הפעלת ה-API ללא אימות מיועדת למטרות הדגמה בלבד, ולא מומלץ להשתמש בהגדרה הזו בעומס העבודה בסביבת הייצור. אם אתם רוצים לפרסם בצורה מאובטחת, כדאי לעיין במסמכי התיעוד האלה.
אחרי הלחיצה, אמור להופיע קטע קוד CSS קטן:
פשוט מעתיקים את קטע הקוד. בהמשך תצטרכו לשלב את קטע הקוד הזה באתר.
כדי ליצור אתר, תשתמשו בסביבה של Cloud Editor. כך פותחים את Cloud Editor:
- פותחים את מסוף Google Cloud בכרטיסייה אחרת.
- לוחצים על הלחצן Cloud Shell להפעלה בפינה הימנית העליונה.
- לוחצים על הלחצן פתיחת העורך.
אם מופיעה בקשה לאשר את Cloud Shell, לוחצים על Authorize כדי להמשיך.
בקטע הבא נעזרים ב-Gemini Code Assist כדי ליצור אפליקציית אינטרנט לדוגמה ב-Python flask, שתשמש לשילוב עם קטע הקוד של ה-Agent.
אחרי שפותחים את Cloud Shell Editor, לוחצים על Gemini Code Assist ונכנסים לפרויקט ב-Google Cloud. אם מופיעה בקשה להפעיל את ה-API, לוחצים על Enable.
בסיום, נבקש מ-Gemini Code Assist ליצור אפליקציית flask ולשלב בה את קטע הקוד של סוכן ה-AI.
זוהי ההנחיה לדוגמה, אפשר להשתמש
Here
is
my
Travel
buddy
Vertex
AI
agent
builder
agent
publish
code
snippet,
<REPLACE IT WITH YOUR AI AGENT PUBLISH CODE SNIPPET>
can
you
create
a
sample
flask
app
to
use
it
הערה: כאן ביקשנו אפליקציית Python Flask. אם אתם מעדיפים שפת תכנות או framework אחרים, אתם יכולים להשתמש בהם. ל-Gemini Code Assist יש יכולת ליצור שפות תכנות שונות. פרטים נוספים זמינים במאמר שפות, סביבות פיתוח משולבות וממשקים נתמכים.
תוכלו לראות שקטע הקוד שסיפקתם כבר משולב עם סוכן ה-AI. כדי לבדוק אם הקוד שסופק תקין ופועל כמצופה, אפשר לפעול לפי ההוראות של Gemini Code Assist להרצת קטע הקוד הזה בתשובת הפלט.
קטע קוד לדוגמה של תגובה בפלט –
from
flask
import
Flask,
render_template_string
app
=
Flask(__name__)
#
HTML
template
string
with
the
provided
Dialogflow
Messenger
code
html_template
=
"""
<!DOCTYPE
html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="viewport"
content="width=device-width,
initial-scale=1.0">
<title>Travel
Buddy
Chatbot</title>
<link
rel="stylesheet"
href="https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/themes/df-messenger-default.css">
<script
src="https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/df-messenger.js"></script>
<style>
df-messenger
{
z-index:
999;
position:
fixed;
--df-messenger-font-color:
#000;
--df-messenger-font-family:
Google
Sans;
--df-messenger-chat-background:
#f3f6fc;
--df-messenger-message-user-background:
#d3e3fd;
--df-messenger-message-bot-background:
#fff;
bottom:
16px;
right:
16px;
}
body
{
font-family:
sans-serif;
margin:
20px;
}
</style>
</head>
<body>
<h1>Welcome
to
Travel
Buddy!</h1>
<p>Start
chatting
with
our
AI
Travel
buddy,
in
the
bottom
right
corner.</p>
<df-messenger
project-id="<SAMPLE>"
agent-id="<SAMPLE>"
language-code="en"
max-query-length="-1">
<df-messenger-chat-bubble
chat-title="Travel
Buddy">
</df-messenger-chat-bubble>
</df-messenger>
</body>
</html>
"""
@app.route("/")
def
index():
"""Renders
the
HTML
template
with
the
Dialogflow
Messenger."""
return
render_template_string(html_template)
if
__name__
==
"__main__":
app.run(debug=True)
בהתאם להוראות
- מעתיקים את קטע הקוד לדוגמה של אפליקציית flask,
- יוצרים קובץ חדש בשם app.py ושומרים אותו.
בשלב הבא, תופיע בקשה להתקין את flask כדי להריץ את קטע הקוד הזה. בשלב הזה אין צורך בכך, כי כבר מותקנות ב-Cloud Shell כברירת מחדל כל כלי השירות הנפוצים.
שומרים את הקובץ (Ctrl + S או Cmd + S) ואז לוחצים על Open Terminal (פתיחת מסוף), שבו מריצים את הקוד שסופק.
מריצים את הפקודה הבאה בטרמינל:
python app.py
הערה: חשוב לוודא שאתם נמצאים בתיקייה הנכונה שבה נמצא הקובץ app.py.
אפליקציית flask של Python תפעל ביציאה 5000. כדי לראות את התצוגה המקדימה של אפליקציית האינטרנט הזו, לוחצים על הסמל Web Preview (תצוגה מקדימה של האתר) ב-Cloud Shell. לאחר מכן, אפשר ללחוץ על Change Port, input 5000 (שינוי היציאה, הזנת 5000) ואז על Change and Preview (שינוי ותצוגה מקדימה) כדי לשמור את השינויים.
יוצג אתר לדוגמה, וסוכן AI כבר יהיה זמין. פשוט לוחצים על נציג ה-AI ומתחילים להתכתב איתו בצ'אט.
מומלץ לבדוק את התכונה עם הנחיות שונות. אפשר גם לבקש מ-Gemini Code Assist לשפר את המראה של האתר, או להוסיף עוד נתונים בסיסיים לסוכנות ה-AI כדי לשפר את המשאבים שלה.
כשתהיו מוכנים, תוכלו לנסות לארח את סוכן ה-AI הזה ב-Google Cloud כדי שכל אחד יוכל לגשת אליו מכל מקום. רצינו להזכיר לך שבסיום הקודלאב הזה, תפרסו את אפליקציית flask לדוגמה ב-Cloud Run כקונטיינר.
הערה: האפשרות הזו לא מוגבלת רק ל-Cloud Run (גם אם אתם לא יודעים מה זה Cloud Run, אתם יכולים לשאול). אפשר לבקש מ-Gemini Code Assist לעזור לכם לפרוס את הקוד הזה ב-Google Cloud או בכל מקום אחר, עם שיטות מומלצות. הוא יכול לעזור לכם גם בחלק הזה.
חוזרים אל Cloud Shell Terminal ומקישים על Ctrl + C כדי לסגור את התהליך. לוחצים שוב על Open Editor ומבקשים מ-Gemini Code Assist לעזור לנו ביצירת קונטיינר לאפליקציה ובפריסה שלה ב-cloud run.
Can
you
help
me
deploy
this
sample
flask
app
to
cloud
run
service
יש בו כמה הוראות והוראות לביצוע כדי לארח את האפליקציה שלנו בשירות Cloud Run. פועלים לפי ההוראות.
זוהי דוגמה לתשובה בפלט
שלבים לפריסה ב-Cloud Run
- דרישות מוקדמות:
- חשבון Google Cloud: נדרש חשבון Google Cloud שבו החיוב מופעל.
- CLI של gcloud: מתקינים ומפעילים את Google Cloud SDK (CLI של gcloud) במחשב המקומי. בעזרת ה-CLI תוכלו לבצע פעולות ב-Google Cloud מהטרמינל.
- Docker: מתקינים את Docker במחשב המקומי. ב-Cloud Run נעשה שימוש ב-Docker כדי לארוז את האפליקציה בקונטיינר.
- הגדרת הפרויקט: מוודאים שבחרתם פרויקט ב-Google Cloud ב-CLI של gcloud. אפשר לבדוק את זה באמצעות
gcloud config list project
ולהגדיר אותו באמצעותgcloud config set project YOUR_PROJECT_ID
הערה: מכיוון שאנחנו מבצעים את כל הפעילות הזו ב-Cloud Shell, אין צורך להגדיר פרויקטים.
- יצירה **
requirements.txt
****:**
- בקובץ הזה מפורטות כל חבילות Python שנדרשות לאפליקציה. בתיקיית הפרויקט (שבה נמצא
main.py
), יוצרים קובץ בשםrequirements.txt
ומוסיפים את השורה הבאה:
- יצירה **
Dockerfile
****:**
- קובץ
Dockerfile
מגדיר איך ליצור קובץ אימג' של Docker לאפליקציה. יוצרים קובץ בשםDockerfile
(ללא סיומת) בספריית הפרויקט ומוסיפים את התוכן הבא:
#
Use
an
official
Python
runtime
as
a
parent
imageFROM
python:3.9-slim-buster
#
Set
the
working
directory
to
/appWORKDIR
/app
#
Copy
the
current
directory
contents
into
the
container
at
/app
COPY
.
/app
#
Install
any
needed
packages
specified
in
requirements.txt
RUN
pip
install
--no-cache-dir
-r
requirements.txt
#
Make
port
5000
available
to
the
world
outside
this
container
EXPOSE
5000
#
Define
environment
variable
ENV
NAME
World
#
Run
app.py
when
the
container
launches
CMD
["python",
".py"]
- יצירת קובץ האימג' של Docker:
- פותחים את הטרמינל, עוברים לספריית הפרויקט ומריצים את הפקודה:
gcloud builds submit –tag gcr.io/bgr-workshop-23rd/travel-buddy
- פריסת הקוד ב-Cloud Run:
- אחרי היצירה וההעלאה של קובץ האימג', פורסים אותו ב-Cloud Run באמצעות הפקודה הבאה:
gcloud
run
deploy
travel-buddy
--image
gcr.io/bgr-workshop-23rd/travel-buddy
--region
us-central1
אחרי שתסיימו את השלבים האלה, האפליקציה עם נציג ה-AI המובנה תהיה זמינה למשתמשי הקצה.
כל הכבוד ושיהיה לך המשך לימוד מוצלח.
6. הסרת המשאבים
כדי להימנע מחיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בקודלאב הזה, עליכם לפעול לפי השלבים הבאים:
- נכנסים לדף Manage resources במסוף Google Cloud.
- ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
- לחלופין, אפשר לעבור אל Cloud Run במסוף, לבחור את השירות שפרסמתם ולמחוק אותו.