תאריך פרסום: 13 בינואר 2024
זהו הפרק האחרון בסדרה בת שלושה חלקים בנושא צ'אטבוטים של LLM. במאמרים הקודמים דיברנו על היתרון של מודלים LLM בצד הלקוח והסברנו איך מוסיפים צ'אטבוט שמבוסס על WebLLM לאפליקציה של רשימת משימות.
חלק מהמכשירים החדשים יותר מגיעים עם מודלים גדולים של שפה ומודלים אחרים של AI ישירות במכשיר. הצעה של Chrome היא שילוב ממשקי API מובנים של AI בדפדפן, עם מספר ממשקי API שנמצאים בשלבי פיתוח שונים. הרבה ממשקי API כאלה עוברים את תהליך יצירת התקן, כדי שאתרים יוכלו להשתמש באותה הטמעה ובאותו מודל כדי להשיג את הביצועים המקסימליים של ההסקה.
Prompt API הוא אחד מ-API של AI כאלה. כדי להשתמש בה, המפתחים מוזמנים להירשם לתוכנית התצוגה המקדימה. לאחר האישור, תקבלו הוראות להפעלת Prompt API בדפדפנים. Prompt API זמין בגרסת המקור לניסיון של תוספים ל-Chrome, כך שתוכלו לבדוק את ה-API הזה אצל משתמשי התוסף בפועל.
גישה משותפת למודל
ההתנהגות של Prompt API דומה לזו של WebLLM. עם זאת, הפעם אין אפשרות לבחור מודל (צריך להשתמש ב-LLM שמגיע עם הדפדפן). כשמפעילים את ה-AI המובנה, Chrome מוריד את Gemini Nano לדפדפן. לאחר מכן אפשר לשתף את המודל הזה בין כמה מקורות ולהריץ אותו עם ביצועים מרביים. בבעיה ב-GitHub, מפתח ביקש להוסיף תכונה לבחירת מודל.
הגדרת השיחה
אפשר להתחיל את שיחת ההודעה באותו אופן, אבל Prompt API מציע גם תחביר מקוצר כדי לציין את הנחיית המערכת. מתחילים את הסשן של מודל השפה באמצעות השיטה create()
בנכס self.ai.languageModel
:
const session = await self.ai.languageModel.create({
systemPrompt: `You are a helpful assistant. You will answer questions related
to the user's to-do list. Decline all other requests not related to the user's
todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
});
מענה על השאלה הראשונה
במקום אובייקט תצורה להגדרת סטרימינג, ב-Prompt API יש שתי שיטות נפרדות:
prompt()
מחזירה את המחרוזת המלאהpromptStreaming()
מחזירה אובייקט iterable אסינכרוני. בניגוד ל-WebLLM, Prompt API משיב עם תגובת המחרוזת המלאה, כך שאין צורך לשלב את התוצאות בעצמכם.
אם אף מקור אחר לא הפעיל את הורדת המודל בעבר, יכול להיות שהבקשה הראשונה תתבצע תוך זמן רב מאוד בזמן שהדפדפן מוריד את Gemini Nano. אם המודל כבר זמין, היסק התוצאות מתחיל באופן מיידי.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}
הדגמה (דמו)
סיכום
שילוב של מודלים LLM באפליקציות יכול לשפר באופן משמעותי את חוויית המשתמש. שירותי ענן מציעים מודלים באיכות גבוהה יותר וביצועי הסקת מסקנות גבוהים, ללא קשר למכשיר של המשתמש. לעומת זאת, פתרונות במכשיר, כמו WebLLM ו-Prompt API של Chrome, יכולים לפעול במצב אופליין, משפרים את הפרטיות וחסכוניים יותר בהשוואה לחלופות מבוססות-ענן. כדאי לנסות את ממשקי ה-API החדשים האלה כדי לשפר את האינטליגנציה של אפליקציות האינטרנט שלכם.