פיתוח סוכני 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 Cloud, אתם יכולים ליצור פרויקט חדש לפי ההוראות. אפשר גם לעיין בשירותים בתוכנית בחינם של 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.png

7648d478a6f35cf0.png

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

בחירה באפשרות 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

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

9b5c4a2831728a6b.png

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

a44373b78bd95ff0.png

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

c1605bd076258050.png

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

40082aebe8b82d7c.png

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

1b6b82fd7f30a598.png

e09af18697b0fd7f.png

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

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, לוחצים על Authorize כדי להמשיך.

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

הערה: כאן ביקשנו אפליקציית Flask ב-Python. אם אתם מעדיפים שפת תכנות או 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 על המשאבים שבהם השתמשתם ב-Code Lab הזה:

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