פיתוח סוכני AI באמצעות Vertex AI Agent Builder

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

בשיעור Codelab הזה, שמתבצע בקצב אישי, נסביר איך ליצור סוכני AI באמצעות Vertex AI Agent Builder של Google Cloud. בכל שלב יודגש תכונה ספציפית של Agent Builder ויוסבר מה המטרה שלה.

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

מה תלמדו

  • איך ליצור סוכן AI פשוט באמצעות Vertex AI Agent Builder
  • איך מעגנים את הסוכן שנוצר על ידי צירוף מאגר נתונים
  • איך משלבים סוכן AI באתר(אופציונלי)

מה תצטרכו

  • ראש פתוח
  • מחשב תקין וחיבור Wi-Fi אמין
  • פרויקט ב-Google Cloud שמשויך אליו חיוב.

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

2. תכנון סוכן ה-AI הראשון

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

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

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

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

3. יצירת סוכן AI באמצעות Vertex AI Agent Builder

באמצעות Vertex AI Agent Builder, אפשר ליצור סוכני AI בכמה שלבים פשוטים.

שלב 1:

  • עוברים אל Vertex AI Agent Builder.
  • יוצג דף הפתיחה. 833886ce0d2645ba.png
  • לוחצים על הלחצן המשך והפעלת ה-API.

שלב 2:

  • תועברו לדף 'יצירת אפליקציה'. f2d45cc76d62edeb.png
  • לוחצים על הלחצן CREATE A NEW APP (יצירת אפליקציה חדשה).

שלב 3:

  • בוחרים באפשרות סוכן שיחה ולוחצים על יצירה.

732d2cd9e10c9a79.png

הערה:

  1. אחרי שלוחצים על יצירה, נפתחת כרטיסייה חדשה של סוכני שיחה של Dialogflow.
  2. אם מוצגת בקשה לבחור פרויקט ב-Google Cloud, צריך לבחור את הפרויקט ב-Google Cloud שמשויך לחשבון Gmail הנכון.
  3. אם אתם מבצעים את המעבדה הזו בחשבון חדש, תתבקשו להפעיל את Dialogflow API. כדי להפעיל אותו, לוחצים על Enable API (הפעלת ה-API).

238281df06301db0.png

  • אם לחיצה על הלחצן לא עובדת, אפשר להפעיל אותו באופן ידני על ידי מעבר ישירות אל דף ה-API .
  • בדף Diaglogflow שנפתח, לוחצים על Create Agent (יצירת סוכן).

42515e46bc63506d.png

  • עכשיו יוצגו אפשרויות ליצירת סוכן. בוחרים באפשרות יצירת סוכן משלך.

8af6bf0853f20768.png

שלב 4:

  • בוחרים שם לתצוגה (למשל, Travel Buddy).
  • בקטע Location (מיקום), בוחרים באפשרות global (Global serving, data-at-rest in US) (גלובלי (הצגה גלובלית, נתונים במצב מנוחה בארה"ב)) בתור Region (אזור).
  • שמירה של הגדרות אחרות, ברירת מחדל
  • לוחצים על הלחצן יצירה.

4e0dea29e5d8acde.png

שלב 5:

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

f8bfd605ddd97cf8.png

שלב 6:

  • לוחצים על סמל הפעלת הסימולטור 72588cbe8734f54e.png.
  • בוחרים את הסוכן שיצרתם (לדוגמה, סוכן מידע).
  • בוחרים את מודל ה-AI הגנרטיבי הבסיסי עבור הסוכן (לדוגמה, gemini-1.5-flash)
  • כדי לבדוק את הסוכן, מנהלים איתו שיחה (כלומר, מקלידים משהו בתיבת הטקסט 'הזנת קלט משתמש')

3ac3cf54a1e2098.png

מעולה! יצרתם סוכן AI באמצעות Vertex AI Agent Builder.

4. צירוף מאגרי מידע לסוכן

אם תשאלו את הסוכן איך להגיע לוואקנדה (למשל: "מה הדרך הכי טובה להגיע לוואקנדה?"), תקבלו תשובה כזו:

5baa2dbabe2941a2.png

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

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

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

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

6c3ef19fefc46af7.png

ממלאים את הפרטים הבאים:

  • שם הכלי: מיקום חלופי
  • סוג: מאגר נתונים
  • תיאור: כדאי להשתמש בכלי הזה אם הבקשה של המשתמש מכילה מיקום שלא קיים

בסיום, לוחצים על שמירה.

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

65c790a87de8fba8.png7648d478a6f35cf0.png

אחרי שלוחצים על יצירת מאגר נתונים חדש, מועברים לדף של Vertex AI Agent Builder כמו בדוגמה שלמטה.

בחירה באפשרות Cloud Storage

bff5455fac531509.png

אחרי שמסיימים את השלב,

  • לוחצים על קובץ (חשוב מאוד לעשות את זה, אחרת הייבוא ייכשל).
  • ‫type ai-workshops/agents/data/wakanda.txt
  • לוחצים על המשך.

d1983baa579eb78c.png

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

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 (יצירה).

93eb71e8d019ae24.png

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

de1ac9256cc96f29.png

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

9b5c4a2831728a6b.png

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

a44373b78bd95ff0.png

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

c1605bd076258050.png

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

40082aebe8b82d7c.png

עכשיו חוזרים לדף Agent Basics. בתחתית ההגדרה של ספר ההפעלה, מאגר הנתונים החדש שיצרתם (למשל, Alternative Location) יהיה זמין לשימוש. מסמנים את מאגר הנתונים (למשל, Alternative Location) ולוחצים על הלחצן Save (שמירה) בחלק העליון של הדף.

1b6b82fd7f30a598.pnge09af18697b0fd7f.png

כמעט סיימת! השלב האחרון הוא לכלול את הכלי מיקום חלופי בהוראות של הסוכן. מוסיפים את השורה – Use ${TOOL: Alternative Location} if the user's request contains a location that does not exist (– השתמש ב-${TOOL: Alternative Location} אם הבקשה של המשתמש מכילה מיקום שלא קיים) להוראות של הסוכן ולוחצים על שמירה.

3134d9eadca34e21.png

הכול מוכן. נפתח שוב את סימולטור המתגים ונשאל את אותן שאלות (למשל: What's the best way to reach Wakanda?)

6cdee598391fc82a.png

מעולה! הסוכן ממליץ עכשיו על מקומות על סמך המידע שסופק מקובץ טקסט.

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

5. פעילויות נוספות – הפעלת סוכן ה-AI

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

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

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

a1b109fa9d7cb51d.png

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

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

ef0f24db780a185e.png

אחרי הלחיצה, אמור להופיע קטע קוד CSS קטן:

c40d12f6207bf5b4.png

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

כדי ליצור אתר, תשתמשו בסביבת Cloud Editor. כדי לפתוח את Cloud Editor:

  1. פותחים את מסוף Google Cloud בכרטיסייה אחרת.
  2. לוחצים על הלחצן Activate Cloud Shell (הפעלת Cloud Shell) בפינה השמאלית העליונה.
  3. לוחצים על הלחצן פתיחת העורך.

אם מופיעה בקשה לאשר את Cloud Shell, לוחצים על אישור כדי להמשיך.

d23192eca480f00c.png

בקטע הבא נשתמש ב-Gemini Code Assist כדי ליצור אפליקציית אינטרנט לדוגמה ב-Python Flask, כדי לשלב אותה עם קטע הקוד של הסוכן.

אחרי שפותחים את Cloud Shell Editor, לוחצים על Gemini Code Assist ואז על login to your Google Cloud Project (כניסה לפרויקט ב-Google Cloud). אם תתבקשו להפעיל את ה-API, לחצו על הפעלה.

93112cce3e8d963b.png

אחרי שמסיימים, מבקשים מ-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)

3dd3246c5fceb1d4.png

בהתאם להוראות שניתנו

  1. מעתיקים את קטע הקוד של אפליקציית Flask לדוגמה שסופק,
  2. יוצרים קובץ חדש בשם app.py ושומרים אותו.

4e58cfcf95f65d38.png

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

b657b535710fd8f3.png

שומרים את הקובץ (Ctrl + S או CMD + S) ואז לוחצים על Open Terminal (פתיחת מסוף), שבו מריצים את הקוד שסופק.

בטרמינל, מריצים את הפקודה הבאה

python app.py

הערה: חשוב לוודא שאתם נמצאים בתיקייה הנכונה, שבה נמצא הקובץ app.py.

אפליקציית Python Flask תפעל ביציאה 5000. כדי לראות תצוגה מקדימה של אפליקציית האינטרנט הזו, לוחצים על סמל תצוגה מקדימה של האינטרנט ב-Cloud Shell. אחר כך לוחצים על שינוי יציאה, מזינים 5000 ולוחצים על שינוי ותצוגה מקדימה כדי לשמור את השינוי.

59ed7b08133b82bf.png

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

35a4b5abdd299efe.png

אתם מוזמנים לנסות הנחיות שונות. אתם יכולים גם לבקש מ-Gemini Code Assist לשפר את האתר שלכם, או להוסיף סוגים נוספים של נתונים לסוכן ה-AI כדי להפוך אותו ליעיל יותר.

אחרי שתהיו מוכנים, תוכלו לארח את סוכן ה-AI הזה ב-Google Cloud כדי שכל אחד יוכל לגשת אליו מכל מקום. בהמשך ה-Codelab הזה, תפרסו את אפליקציית ה-Flask לדוגמה הזו ב-Cloud Run כקונטיינר.

הערה: זה לא מוגבל רק ל-Cloud Run (אם אתם לא יודעים מה זה Cloud Run, אתם יכולים לשאול את Gemini Code Assist), אתם יכולים לבקש מ-Gemini Code Assist לעזור לכם לפרוס את זה ב-Google Cloud או בכל מקום אחר באמצעות שיטות מומלצות, והוא יכול לעזור לכם גם בחלק הזה.

חוזרים אל הטרמינל של Cloud Shell ומקישים על 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

  1. דרישות מוקדמות:
  • חשבון Google Cloud: צריך חשבון Google Cloud עם חיוב מופעל.
  • ה-CLI של gcloud: מתקינים ומפעילים את Google Cloud SDK ‏ (ה-CLI של gcloud) במחשב המקומי. תשתמשו בו כדי ליצור אינטראקציה עם Google Cloud מהטרמינל.
  • Docker: מתקינים את Docker במחשב המקומי. ‫Cloud Run משתמש ב-Docker כדי ליצור קונטיינר לאפליקציה שלכם.
  • הגדרת פרויקט: מוודאים שבחרתם פרויקט בענן ב-CLI של gcloud. אפשר לבדוק את זה ב-gcloud config list project ולהגדיר את זה ב-gcloud config set project YOUR_PROJECT_ID

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

  1. יצירה **requirements.txt:**
  • בקובץ הזה מפורטים כל חבילות Python שהאפליקציה שלכם צריכה. בספריית הפרויקט (שבה נמצא main.py), יוצרים קובץ בשם requirements.txt ומוסיפים את השורה הבאה:
  1. יצירה **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"]

  1. יצירת קובץ אימג' של Docker:
  • פותחים את הטרמינל, עוברים לספריית הפרויקט ומריצים את הפקודה:

gcloud builds submit –tag gcr.io/bgr-workshop-23rd/travel-buddy

  1. פריסה ב-Cloud Run:
  • אחרי שקובץ האימג' נוצר והועלה, פורסים אותו ב-Cloud Run באמצעות הפקודה הבאה:

gcloud run deploy travel-buddy --image gcr.io/bgr-workshop-23rd/travel-buddy --region us-central1

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

ברכות ולימודים מהנים.

6. מחיקה

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם ב-codelab הזה:

  1. במסוף Google Cloud, עוברים לדף Manage resources.
  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
  4. אפשר גם להיכנס אל Cloud Run במסוף, לבחור את השירות שפרסתם ולמחוק אותו.