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

Alexandra Klepper
Alexandra Klepper

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

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

מודלים נדרשים

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

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

דגמי Chrome

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

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

החומרה הנדרשת

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

ממשקי ה-API של Language Detector ושל Translator פועלים ב-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. ממשקי ה-API שמשתמשים במודלים בסיסיים עדיין לא תומכים ב-Chrome ל-Android, ל-iOS ול-ChromeOS במכשירים שהם לא Chromebook Plus.
  • אחסון: לפחות 22GB של נפח אחסון פנוי בכונן שמכיל את פרופיל Chrome.
  • ‫GPU או CPU: אפשר להפעיל מודלים מוטמעים באמצעות GPU או CPU.
    • מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
    • מעבד (CPU): זיכרון RAM בנפח 16GB או יותר ו-4 ליבות מעבד או יותר.
    • הערה: כדי להשתמש ב-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 Community Group כדי להמשיך את הדיון לגביהם.

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

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

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