סיכום באמצעות AI מובנה

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

הסבר פיתוח אתרים תוספים הסטטוס של Chrome המטרה
MDN Chrome 138 Chrome 138 תצוגה כוונה לשלוח

אתם יכולים להציע למשתמשים שלכם את האפשרות לזקק מאמרים ארוכים, מסמכים מורכבים או אפילו שיחות צ'אט תוססות לסיכומים תמציתיים ומעוררי השראה.

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

  • סיכום הנקודות העיקריות במאמר או בשיחה בצ'אט.
  • הצעות לכותרות ולכותרות משנה למאמרים.
  • יצירת סיכום תמציתי ואינפורמטיבי של טקסט ארוך.
  • יצירת טיזר לספר על סמך ביקורת על הספר.

שנתחיל?

‫Summarizer API זמין החל מ-Chrome 138 יציב.

לפני שמשתמשים ב-API הזה, צריך לאשר את המדיניות של Google בנושא שימוש אסור ב-AI גנרטיבי.

מריצים זיהוי תכונות כדי לבדוק אם הדפדפן תומך ב-API של הכלי לסיכום.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

בדיקת דרישות החומרה

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

ממשקי ה-API של כלי זיהוי השפה והתרגום פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים. ממשקי Prompt API,‏ Summarizer API,‏ Writer API ו-Rewriter API פועלים ב-Chrome כשמתקיימים התנאים הבאים:

  • מערכת הפעלה: Windows 10 או 11;‏ macOS מגרסה 13 ואילך (Ventura ואילך); או Linux. ‫Chrome ל-Android, ל-iOS ול-ChromeOS עדיין לא נתמך על ידי ממשקי ה-API שמשתמשים ב-Gemini Nano.
  • אחסון: לפחות 22 GB של שטח פנוי בכרך שמכיל את פרופיל Chrome.
  • מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
  • רשת: נתונים ללא הגבלה או חיבור ללא מדידה.

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

הורדת המודל

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

כדי לקבוע אם המודל מוכן לשימוש, מפעילים את הפונקציה האסינכרונית Summarizer.availability(). הפונקציה מחזירה הבטחה עם הערכים הבאים.

  • "unavailable" מציין שההטמעה לא תומכת באפשרויות המבוקשות.
  • "downloadable" מציין שההטמעה תומכת באפשרויות המבוקשות, אבל קודם הדפדפן צריך להוריד משהו, כמו מודל (במקרה של Chrome,‏ Gemini Nano) או כוונון עדין של המודל.
  • "downloading" מציין שההטמעה תומכת באפשרויות המבוקשות, אבל היא צריכה לסיים הורדה שמתבצעת כרגע לפני שהיא יכולה להמשיך.
  • "available" מציין שההטמעה תומכת באפשרויות המבוקשות ושהכלי לסיכום יכול להמשיך.

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

const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

פונקציות API

הפונקציה create() מאפשרת להגדיר אובייקט חדש של סיכום בהתאם לצרכים שלכם. הפונקציה מקבלת אובייקט אופציונלי options עם הפרמטרים הבאים:

  • sharedContext: הקשר משותף נוסף שיכול לעזור לסיכום.
  • type: סוג הסיכום, עם הערכים המותרים key-points (ברירת מחדל), tldr, teaser ו-headline. הפרטים מופיעים בטבלה הבאה.
  • format: הפורמט של הסיכום, עם הערכים המותרים markdown (ברירת מחדל) ו-plain-text.
  • length: אורך הסיכום. הערכים האפשריים הם short,‏ medium (ברירת מחדל) ו-long. המשמעות של אורכי הסרטונים האלה משתנה בהתאם לtype שביקשתם. לדוגמה, בהטמעה של Chrome, סיכום קצר של נקודות מרכזיות מורכב משלושה תבליטים, וסיכום קצר הוא משפט אחד.

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

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

סוג משמעות אורך
"tldr" הסיכום צריך להיות קצר וענייני, ולספק סקירה כללית מהירה של הקלט, שמתאימה לקוראים עסוקים.
סרטון קצר משפט אחד
בינוני ‫3 משפטים
long ‫5 משפטים
"teaser" הסיכום צריך להתמקד בחלקים הכי מעניינים או מסקרנים של הקלט, כדי למשוך את הקורא לקרוא עוד.
סרטון קצר משפט אחד
בינוני ‫3 משפטים
long ‫5 משפטים
"key-points" הסיכום צריך לכלול את הנקודות החשובות ביותר מהקלט, שיוצגו כרשימה עם תבליטים.
סרטון קצר 3 תבליטים
בינוני 5 תבליטים
long 7 תבליטים
"headline" הסיכום צריך להכיל את הנקודה העיקרית של הקלט במשפט אחד, בפורמט של כותרת מאמר.
סרטון קצר ‫12 מילים
בינוני ‫17 מילים
long ‫22 מילים

בדוגמה הבאה מוסבר איך להפעיל את הכלי לסיכום.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
};

const availability = await Summarizer.availability();
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}
const summarizer = await Summarizer.create(options);

הרצת הכלי לסיכום

יש שתי דרכים להריץ את הכלי לסיכום: סטרימינג ואצווה (לא סטרימינג).

סיכום של קבוצת מסמכים

בסיכום באצווה, המודל מעבד את הקלט כמכלול ואז יוצר את הפלט.

כדי לקבל סיכום של קבוצת נתונים, קוראים לפונקציה summarize(). הארגומנט הראשון הוא הטקסט שרוצים לסכם. הארגומנט השני, שהוא אופציונלי, הוא אובייקט עם שדה context. בשדה הזה אפשר להוסיף פרטים כלליים שיכולים לשפר את הסיכום.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

סיכום השידור

סיכום בסטרימינג מאפשר לקבל תוצאות בזמן אמת. הפלט מתעדכן כל הזמן ככל שמוסיפים ומכווננים את הקלט. כדי לקבל סיכום בזמן אמת, מתקשרים אל summarizeStreaming() במקום אל summarize().

const longText = document.querySelector('article').innerHTML;
const stream = summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});
for await (const chunk of stream) {
  console.log(chunk);
}

הדגמה (דמו)

אפשר לנסות את Summarizer API במגרש המשחקים של Summarizer API.

מאמץ התקנון

אנחנו פועלים כדי לתקנן את Summarizer API, כדי להבטיח תאימות בין דפדפנים.

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

כדי להשתתף בתהליך יצירת התקנים, אפשר להצטרף לקבוצת הקהילה Web Incubator.

שליחת משוב

אנחנו רוצים לראות מה אתם בונים באמצעות Summarizer API. אתם יכולים לשתף איתנו את האתרים ואת אפליקציות האינטרנט שלכם ב-X, ב-YouTube וב-LinkedIn.

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