תחילת העבודה עם AI מובנה

Alexandra Klepper
Alexandra Klepper

פורסם: 12 בדצמבר 2024, עדכון אחרון: 20 במאי 2025

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

דרישות

כדי להשתמש ב-AI מובנה, יש דרישות לגבי המודל והחומרה.

מודלים

ממשקי ה-API של Translator ושל Language Detector משתמשים במודלים מומחים. כל שאר ממשקי ה-API מבוססים על מודל שפה שנועד לפעול באופן מקומי במחשבים ניידים ושולחניים.

ממשקי ה-API‏ Summarizer API,‏ Writer API,‏ Rewriter API ו-Proofreader API תומכים רק במודלים של יצירת טקסט על סמך טקסט. ‫Prompt API כולל יכולות מולטי-מודאליות.

המודלים ב-Chrome

‫Chrome משתמש במודלים של שפה מומחית ובמודלים של שפה בסיסית. המודלים האלה לא זמינים במכשירים ניידים.

החל מ-Chrome 149, המודלים תומכים באנגלית, ספרדית, יפנית, גרמנית וצרפתית כקלט ופלט של טקסט.

חומרה

הדרישות הבאות חלות על מפתחים ועל משתמשים שמפעילים תכונות באמצעות ממשקי ה-API האלה ב-Chrome. בדפדפנים אחרים עשויות להיות דרישות הפעלה שונות.

Language Detector ו-Translator APIs פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים.

Prompt API,‏ Summarizer API,‏ Writer API,‏ Rewriter API ו-Proofreader API פועלים ב-Chrome כשמתקיימים התנאים הבאים:

  • מערכת הפעלה: Windows 10 או 11;‏ macOS 13 ואילך (Ventura ואילך); Linux; או ChromeOS (מגרסה Platform 16389.0.0 ואילך) במכשירי Chromebook Plus. עדיין אין תמיכה ב-Chrome ל-Android, ל-iOS ול-ChromeOS במכשירים שהם לא Chromebook Plus בממשקי ה-API שמשתמשים במודלים בסיסיים.
  • אחסון: לפחות 22 GB של שטח פנוי בכרך שמכיל את פרופיל Chrome.
  • GPU או CPU: אפשר להפעיל מודלים מובנים עם GPU או CPU.
    • מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
    • יחידת עיבוד מרכזית (CPU): זיכרון RAM של 16GB או יותר ו-4 ליבות CPU או יותר.
    • הערה: כדי להשתמש ב-Prompt API עם קלט אודיו, צריך GPU.
  • רשת: נתונים ללא הגבלה או חיבור ללא הגבלה.

הגודל המדויק של Gemini Nano עשוי להשתנות כשהדפדפן מעדכן את המודל. כדי לראות את הגודל הנוכחי, אפשר לעבור אל chrome://on-device-internals.

נשמע בדיוק בשבילי

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

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

אפשר להשתמש בכל ממשקי ה-API האלה כשיוצרים תוספים ל-Chrome.

הורדת המודל

ממשקי ה-API מובנים ב-Chrome, וכך גם המודלים. בפעם הראשונה שמשתמש מקיים אינטראקציה עם ממשקי ה-API האלה, צריך להוריד את המודל לדפדפן.

כדי לקבוע אם אפשר להשתמש ב-API, מפעילים את הפונקציה האסינכרונית availability(), שמחזירה אובייקט promise עם אחד מהערכים הבאים:

  • "unavailable": המכשיר של המשתמש או האפשרויות המבוקשות לסשן לא נתמכים. יכול להיות שאין מספיק חשמל או מקום בדיסק במכשיר.
  • "downloadable": נדרשים הורדות נוספות כדי ליצור סשן, שיכול לכלול מודל מומחה, מודל שפה או כוונון עדין. יכול להיות שתידרש הפעלת משתמש כדי להתקשר באמצעות create().
  • "downloading": ההורדות מתבצעות וצריכות להסתיים לפני שתוכלו להשתמש בסשן.
  • "available": אפשר ליצור סשן באופן מיידי.

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

// Makes sure the model is available for English and Japanese input text,
// supports image input, and can generate English output.
await LanguageModel.availability({
  expectedInputs: [{type: "text", languages: ["en", "ja"]}, {type: "image"}],
  expectedOutputs: [{type: "text", languages: ["en"]}],
});

הפעלת משתמש

אם המכשיר תומך בממשקי AI API מובנים, אבל המודל עדיין לא הורד (כלומר, כשמתבצעת קריאה ל-availability() מוחזר "downloadable" או "downloading"), המשתמש צריך ליצור אינטראקציה משמעותית עם הדף כדי שהאפליקציה תתחיל סשן עם create().

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

// Check for user activation.
if (navigator.userActivation.isActive) {
  // Create an instance of a built-in API
}

לדוגמה, באמצעות Summarizer API, אפשר לבקש מהמשתמשים ללחוץ על לחצן עם הכיתוב 'סיכום' כדי להפעיל את Summarizer.create(), או ליצור את הסיכום ברגע שהמשתמש מתחיל להקליד, כלומר אירוע keydown.

פתרון בעיות במארח מקומי

אם המודל לא פועל כצפוי, אפשר לנסות את השלבים הבאים:

  1. מפעילים מחדש את Chrome.
  2. לעבור אל chrome://on-device-internals.
  3. לוחצים על הכרטיסייה Broker State (מצב הברוקר) ומוודאים שאין שגיאות.
  4. פותחים את כלי הפיתוח ומקלידים LanguageModel.availability(); במסוף. התוצאה צריכה להיות available.

אם צריך, מחכים קצת וחוזרים על השלבים האלה.

תהליך התקנים

אנחנו פועלים כדי לתקנן את ממשקי ה-API האלה, כדי שהם יפעלו בכל הדפדפנים. המשמעות היא שהצענו את ממשקי ה-API לקהילת פלטפורמות האינטרנט, והעברנו אותם לקבוצת הקהילה של W3C Web Incubator להמשך דיון.

אנחנו מבקשים משוב מ-W3C, מ-Mozilla ומ-WebKit לגבי כל API.

אינטראקציה ושיתוף משוב

אם ניסיתם את ה-AI המובנה ויש לכם משוב, נשמח לשמוע אותו.