יום 19 - הרצת בקשות במקביל
בזכות השימוש ב asyncio קל להשתמש ב Agents SDK כדי להריץ מספר סוכנים במקביל. בדוגמה של היום נראה איך זה עובד עבור תרגום מאנגלית לספרדית.
טיפים קצרים וחדשות למתכנתים
בזכות השימוש ב asyncio קל להשתמש ב Agents SDK כדי להריץ מספר סוכנים במקביל. בדוגמה של היום נראה איך זה עובד עבור תרגום מאנגלית לספרדית.
אנחנו לקראת סיום הסידרה ואני רוצה לדבר על כמה תבניות של סוכני AI שאנחנו רואים בתוכניות אמיתיות. הדוגמה הראשונה נקראת LLM בתור שופט והיא נועדה להתמודד עם חוסר הקונסיסטנטיות של מודלי שפה. בתבנית זו יש לנו משימה לבצע שאנחנו חושבים שמודל שפה יכול לבצע די טוב, אבל אנחנו יודעים שאי אפשר לסמוך על מודלי שפה ושלפעמים הם צריכים כמה ניסיונות כדי לייצר תוצאה טובה, לכן אנחנו נוסיף מודל נוסף שיבדוק את העבודה של המודל הראשון. רק כשהמודל השני, השופט, יאשר, נוכל להתקדם עם התוצאה.
מודלי שפה גדולים אלופים בלהפתיע, במיוחד כשמשלבים אותם עם משתמשים. בכתיבת מערכת AI אנחנו חייבים להיות מסוגלים לראות איזה בקשות נשלחו למודל ואיזה תשובות חזרו כדי שנוכל לשפר את הפרומפטים שלנו ואת הקוד שמטפל בתשובות. הרבה פעמים מנהלי מוצר ואנשים פחות טכניים יהיו מעורבים בכתיבת הפרומפטים ולכן אנחנו צריכים Dashboard ידידותי שיכול להציג את כל השיחות עם המודלים. חברות AI הבינו את זה די מהר ומנגנוני המעקב מובנים היום בכל API של עבודה מול סוכנים. בואו נראה איך זה עובד עם OpenAI Agents.
כשסוכן מפעיל כלי הוא מעביר ערכים לפרמטרים של אותו כלי. אני אומנם יכול לבקש מהסוכן להעביר ערכים מסוימים אבל האמת שהשליטה שלי באיזה ערכים יעברו מוגבלת. קונטקסט הוא מנגנון נוסף להעברת מידע לכלים שמאפשר שליטה מדויקת יותר במידע שעובר וגם סינכרון מידע בין כלים.
נסיים את החלק על שימוש בכלים בסקירה קצרה של שרתי MCP וחיבור הסוכנים שלנו אליהם.
העברת שליטה היא סוג מיוחד של הפעלת כלי בה סוכן אחד מזהה שיש סוכן אחר שיהיה יותר מיומן ממנו לפתור בעיה ספציפית ולכן מעביר את השליטה לסוכן השני. בואו נראה איך זה מוגדר ב Agents SDK ולמה חשוב לשים לב.
ראינו אתמול איך מודלים מאומנים להבין איך לעבוד עם כלים, לבקש הפעלת כלים ולקרוא תשובות מכלים. סוג נוסף של אימון שמודלים עוברים הוא אימון ליצירת פלט מובנה כלומר פלט שיגיע אלינו בתור אוביקט JSON ולא ידרוש פיענוח טקסטואלי. היום נראה איך זה עובד ומתי מומלץ להשתמש במנגנון זה.
הפעלת כלים היא מצד אחד היכולת הכי משמעותית של מודלים, היא מהווה בסיס להרבה תבניות עבודה עם מודלים אבל מצד שני בגלל האופי הלא אמין של מודלים היא גם מבלבלת ומקור בלתי נדלה לבאגים. היום נבין יותר לעומק איך מנגנון הפעלת הכלים עובד, מה נקודות הבקרה שלנו במנגנון ולאיזה מטרות נרצה להשתמש בו.
ספקי הגישה למודלים כמו OpenAI ו Anthropic שמו לב למספר אתגרים של מפתחים שבונים מערכות מבוססות סוכנים הקשורים להפעלת כלים ומהווים הזדמנות עסקית לאותם ספקי מודלים:
אם המודל כותב קוד ורוצה להריץ אותו, מישהו צריך להרים סביבה וירטואלית בה המודל יוכל להריץ את הקוד בלי לעשות נזק.
אם המודל רוצה לחפש ברשת, מישהו צריך לתת לו גישה למנוע חיפוש, אבל מנועי חיפוש כמו גוגל לא מספקים API ולא אוהבים שבוטים מריצים דרכם חיפושים (כי בוטים לא רואים פרסומות).
אם המודל רוצה ליצור תמונה יש להשתמש במנגנון AI אחר שיוצר תמונות.
ראינו שאנחנו יכולים להעביר כל פונקציית פייתון למודל בתור Tool והמודל יריץ אותה אם היא תעזור לענות על הפרומפט, אבל עבור שלושת הכלים המתוארים למעלה כתיבת ה"כלי", כלומר כתיבה והרצה של הפונקציה עצמה שמריצה קוד, מחפשת ברשת או יוצרת תמונה זה אתגר.
כלי צד שרת או כלים מובנים הם הדרך של אותן ספקיות מודלים לעזור בשלושת האתגרים האלה ובאתגרים נוספים דומים.
עוד ממשק משתמש מעניין לבוטים הוא אפלקיציות המסרים בטלפון. למרות שכולם אוהבים לדבר בווטסאפ כתיבת בוטים לטלגרם זה הרבה יותר קל, נגיש וחינמי ולכן הדוגמה היום היא על טלגרם. בואו נראה איך לכתוב בוט AI שגם ממשיך שיחות ותמיד זמין עבורכם בטלגרם.