מדריך: מה זה בעצם API
הפעם אנחנו עם מדריך בסיסי שאני מקווה שיעזור לאנשי בדיקות ומנהלי מוצר כמו גם למפתחים להבין את ההגיון והמטרה של אחד המושגים החשובים בפיתוח מערכות ווב היום.
טיפים קצרים וחדשות למתכנתים
הפעם אנחנו עם מדריך בסיסי שאני מקווה שיעזור לאנשי בדיקות ומנהלי מוצר כמו גם למפתחים להבין את ההגיון והמטרה של אחד המושגים החשובים בפיתוח מערכות ווב היום.
אני רוצה לסיים את סדרת 21 ימים עם OpenAI Agents עם דוגמה לפיתוח סוכן קולי. הספריה OpenAI Agents תומכת בשני סוגים של סוכנים קוליים.
הסוג הראשון הוא הרחבה של סוכני הטקסט. סוכן זה שנקרא בתיעוד Voice Agent לוקח קלט קולי מהמשתמש, מתמלל אותו לטקסט, מעביר את הטקסט לסוכן כדי להמשיך את השיחה ואז לוקח את הטקסט שהסוכן יצר והופך אותו לפלט קולי. מדובר בשילוב בין מנוע השלמת טקסט למנועי פיענוח וייצור דיבור.
הסוג השני, עליו נדבר בפוסט זה, נקרא בתיעוד סוכן Realtime ופה כבר מדובר בסוכן קולי אמיתי. זה סוכן שלוקח קובץ אודיו ומשלים אותו עם מודל שמאומן על קבצי אודיו. כלומר יש לנו מודל דיבור מיוחד שיודע לענות לפרומפטים קוליים. עבודה עם מודל כזה מהירה יותר ומאפשרת הבנה טובה יותר של ניואנסינים של השפה.
ככל שניתן לצפות קדימה, המערכות של העתיד הולכות לשלב ממשקי שיחה עם ממשקים גרפיים קלאסיים. אנחנו כבר רואים אותן: זאת Lovable שמאפשרת לבנות דפי אינטרנט דרך ממשק שיחה ואז לערוך אותם בממשק גרפי "קלאסי"; זה ג'ימייל שמאפשר ל AI לכתוב טיוטה למייל ואז לבן אדם לערוך את הטיוטה ואז להחזיר ל AI לעוד עריכה. שיתופי הפעולה האלה אפשריים בזכות קוד JavaScript מתקדם שמאפשר לאדם ול AI לעבוד על אותו תוצר.
היום נבנה מודל של מערכת כזאת עבור משחק איקס עיגול אותו ניתן לשחק בעזרת AI. העליתי את קוד המשחק המלא לגיטהאב תוכלו למצוא אותו כאן:
https://github.com/ynonp/tictactoe-with-ai
בואו נמשיך לקרוא את הקוד ולהבין את החלקים המרכזיים בארכיטקטורה זו.
בזכות השימוש ב asyncio קל להשתמש ב Agents SDK כדי להריץ מספר סוכנים במקביל. בדוגמה של היום נראה איך זה עובד עבור תרגום מאנגלית לספרדית.
אנחנו לקראת סיום הסידרה ואני רוצה לדבר על כמה תבניות של סוכני AI שאנחנו רואים בתוכניות אמיתיות. הדוגמה הראשונה נקראת LLM בתור שופט והיא נועדה להתמודד עם חוסר הקונסיסטנטיות של מודלי שפה. בתבנית זו יש לנו משימה לבצע שאנחנו חושבים שמודל שפה יכול לבצע די טוב, אבל אנחנו יודעים שאי אפשר לסמוך על מודלי שפה ושלפעמים הם צריכים כמה ניסיונות כדי לייצר תוצאה טובה, לכן אנחנו נוסיף מודל נוסף שיבדוק את העבודה של המודל הראשון. רק כשהמודל השני, השופט, יאשר, נוכל להתקדם עם התוצאה.
מודלי שפה גדולים אלופים בלהפתיע, במיוחד כשמשלבים אותם עם משתמשים. בכתיבת מערכת AI אנחנו חייבים להיות מסוגלים לראות איזה בקשות נשלחו למודל ואיזה תשובות חזרו כדי שנוכל לשפר את הפרומפטים שלנו ואת הקוד שמטפל בתשובות. הרבה פעמים מנהלי מוצר ואנשים פחות טכניים יהיו מעורבים בכתיבת הפרומפטים ולכן אנחנו צריכים Dashboard ידידותי שיכול להציג את כל השיחות עם המודלים. חברות AI הבינו את זה די מהר ומנגנוני המעקב מובנים היום בכל API של עבודה מול סוכנים. בואו נראה איך זה עובד עם OpenAI Agents.
כשסוכן מפעיל כלי הוא מעביר ערכים לפרמטרים של אותו כלי. אני אומנם יכול לבקש מהסוכן להעביר ערכים מסוימים אבל האמת שהשליטה שלי באיזה ערכים יעברו מוגבלת. קונטקסט הוא מנגנון נוסף להעברת מידע לכלים שמאפשר שליטה מדויקת יותר במידע שעובר וגם סינכרון מידע בין כלים.
נסיים את החלק על שימוש בכלים בסקירה קצרה של שרתי MCP וחיבור הסוכנים שלנו אליהם.
העברת שליטה היא סוג מיוחד של הפעלת כלי בה סוכן אחד מזהה שיש סוכן אחר שיהיה יותר מיומן ממנו לפתור בעיה ספציפית ולכן מעביר את השליטה לסוכן השני. בואו נראה איך זה מוגדר ב Agents SDK ולמה חשוב לשים לב.
ראינו אתמול איך מודלים מאומנים להבין איך לעבוד עם כלים, לבקש הפעלת כלים ולקרוא תשובות מכלים. סוג נוסף של אימון שמודלים עוברים הוא אימון ליצירת פלט מובנה כלומר פלט שיגיע אלינו בתור אוביקט JSON ולא ידרוש פיענוח טקסטואלי. היום נראה איך זה עובד ומתי מומלץ להשתמש במנגנון זה.