תאריך פרסום: 15 במאי 2025
הציבור מסתמך על בעלי אתרי חדשות כדי לקבל מידע על אירועים מקומיים, לאומיים ובינלאומיים, וגם כדי לקרוא את נקודות המבט המעמיקות שלהם. בסביבה המשתנה במהירות של ימינו, סיכומי מאמרים הם אסטרטגיה חשובה לריכוז מידע מורכב לקטעים נגישים, כדי לעודד את הקוראים להמשיך לקרוא. במאמר הזה נסביר איך Bright Sites ו-Terra משתמשים ב-Summarizer API כדי ליישם את האסטרטגיה הזו.
| סרטון הסבר | פיתוח אתרים | תוספים | הסטטוס של Chrome | הרציונל |
|---|---|---|---|---|
| MDN | |
|
תצוגה | כוונה לשלוח |
Summarizer API מאפשר ליצור סוגים שונים של סיכומים באורכים ובפורמטים שונים, כמו משפטים, פסקאות, רשימות עם תבליטים ועוד. ב-API הזה, כמו ברבים מממשקי ה-API המובנים של AI, נעשה שימוש במודלים גדולים של שפה (LLM) כדי לבצע הסקה.
Bright Sites מוסיף ל-The Standard סיכומים מותאמים אישית של מאמרים
פלטפורמת פרסום החדשות המובילה של Bright Sites, Flow, מפעילה יותר מ-150 אתרי חדשות. חברת Bright Sites שילבה את Summarizer API במערכת ניהול התוכן שלה שמבוססת על AI, וכך מאפשרת ל-The Standard, מותג החדשות האייקוני של לונדון, להציע לקוראים סיכומים מותאמים אישית של מאמרים. כך מעודדים את המשתמשים לעיין במאמרים ולעבור למאמרים אחרים ב-The Standard.
"השימוש במודלים המתקדמים של Gemini ב-Chrome מאפשר לנו לשלב בין 198 שנות המסורת של The Standard, שבהן הקפדנו לעדכן את הקוראים שלנו, לבין חידושים טכניים חדשים שמיועדים לקהל העסוק שלנו, שחשוב לו לקבל את העיתונות המהימנה שלנו בהישג יד. אפשרות נוספת היא לקרוא סיכומים של חדשות שנוצרו במכשיר של הקורא, כדי לקבל במהירות את המידע הרלוונטי. זו רק אחת מהדרכים שבהן אנחנו משנים את פני העיתון The Standard ויוצרים מוצרים חדשים שמתמקדים בהרגלי הצריכה הדיגיטליים של הקוראים".
— Jack Riley, מנהל דיגיטל ראשי, The Standard
הפעלנו את סיכום ה-AI בצד הלקוח ב-Standard כדי ליצור סיכומים מותאמים אישית ללא עלות נוספת לעסק. אם תעשו את זה בצד הלקוח, באמצעות נקודות נתונים כמו סגנון הסיכום או המיקום, המשתמשים יוכלו להמשיך לקרוא גם אם הם יאבדו את הגישה לאינטרנט. זו תופעה שקורית הרבה למשתמשים שנוסעים ברכבת התחתית של לונדון עם המחשב הנייד שלהם.
קודם כול, הם בודקים אם המודל וה-API נתמכים וזמינים.
// Check if the device supports built-in AI
// Trigger the model download if not yet available, on capable devices
export const deviceCheck = async () => {
const availability = await Summarizer.availability();
if (!availability || availability === 'unavailable') {
return {
summarizationAvailable: false,
message:
"AI summarization tools are not supported on this device" +
"or the appropriate permissions are not set.",
}
}
if (availability === 'downloadable') {
const shouldDownload = window.confirm(
`This page contains an AI summary, using an AI model provided by your
browser. Downloading the model, which could be multiple gigabytes in size,
is required to view the summary. Would you like to download the model?`);
if (!shouldDownload) {
return {
summarizationAvailable: false,
message: "User declined installation.",
}
}
// Trigger an installation
Summarizer.create();
return {
summarizationAvailable: false,
message: "Installing in the background. This may take a few minutes...",
}
}
if (availability === 'available') {
return {
summarizationAvailable: true,
message: "Ready for use.",
}
}
}
הפונקציה הבאה מגדירה כלי סיכום כללי, שיכול להשתמש בעתיד במודל אחר במכשיר או במודל בצד השרת.
/**
* Define the summarizer.
**/
export const aiSummarize = async (textToSummarize, options) => {
const availableSummarizationTools = getAvailableAiSummarizationTools()
if (availableSummarizationTools.has('builtInAi') && options?.builtInAI) {
// Generate the built-in AI summarizer and abort signal
const summarizer = await createBuiltInAISummarizer(options.builtInAi.options)
return await summarizer.summarize(textToSummarize, {
signal: options.builtInAi.signal,
})
}
throw new Error(
'AI summarization tools are not supported on this device or browser.',
)
}
ההעדפה של הקוראים לגבי סיכום מאוחסנת ב-IndexedDB כדי להציע סיכום מותאם אישית.
/**
* Log preferences in IndexDB for personalization
**/
abortController.current = new AbortController()
const preferencesDB = new PreferencesDB()
const summarization = await aiSummarize(articleContent, {
clientSideAI: {
options: await preferencesDB.getCreatesummarizerPreferences(),
signal: abortController.current.signal,
},
})
Terra מספק לעיתונאים סיכום שניתן לעריכה של מאמרים בפורטוגזית
Terra הוא אחד מפורטלי התוכן הגדולים ביותר בברזיל, שמציע בידור, חדשות וספורט, עם יותר מ-50 מיליון מבקרים ייחודיים בחודש. חברת Terra הוסיפה למערכת ניהול התוכן (CMS) שלה את Summarizer API ואת Translator API כדי לעזור לעיתונאים לסכם באופן מיידי סיפורי חדשות בפורטוגזית. לאחר מכן, עיתונאים יכולים לבצע כמה עריכות כדי לשפר את הסגנון או את הדיוק ולפרסם את הסיכום שנוצר בשיתוף, כך שהוא יהיה זמין לכל הקוראים.
מערכת ניהול התוכן של Terra כבר משתמשת ב-LLM בצד השרת, אבל הצוות בחן את האפשרות של שימוש ב-AI בצד הלקוח כגישה נפרדת עם יתרונות פוטנציאליים חדשים. הם גילו שSummarizer API ב-Chrome מספק איכות דומה לזו של ההטמעה בצד השרת. הפתרון בצד הלקוח הניב תוצאות חיוביות כשנעשה בו שימוש בשילוב עם Translator API.
חברת Terra אימצה את ההטמעה של AI מובנה ב-Chrome בגלל יתרונות מרכזיים. ה-AI מצד הלקוח הציע חיסכון בעלויות ופישוט של ניהול הנתונים. הצוות נתקל בכמה אתגרים, בעיקר בנוגע לניהול מגבלות חלון התוכן באמצעות Summarizer API, אבל הצליח להתגבר עליהם באמצעות שיטות הטמעה קפדניות.
בתחילה, טרה התקשתה להבין אילו סוגי סיכומים ואיזה הקשר משותף יתאימו הכי טוב לצרכים שלה. באמצעות ניסויים, הם גילו שסיכומים ברורים ומועילים באנגלית חיוניים כדי להפיק פלט באיכות דומה בפורטוגזית באמצעות Translator API. סביבת המשחקים המובנית של AI הייתה חיונית להתמודדות עם האתגרים האלה, כי היא אפשרה ל-Terra לבדוק את הרעיונות שלה במהירות בלי לשנות את הקוד בכל פעם.
בדוגמה הבאה מוצג איך Terra מפעיל את Summarizer API ומתריע למשתמשים כשהוא לא זמין.
async function summarizerByBuiltInAI(text) {
if (!(Summarizer)) {
//Alert users in Portuguese that "Summarizer API is not available"
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
try {
const availability = await Summarizer.availability();
if (availability !== 'available') {
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
const summaryContext = "Avoid jargon, use correct grammar, focus on clarity," +
"and ensure the user can grasp the articles purpose," +
"without needing to open the original content.";
const options = {
sharedContext: summaryContext,
type: 'teaser',
format: 'plain-text',
length: 'long',
}
if (availability === 'available') {
const summarizer = await Summarizer.create(options);
return await summarizer.summarize(text, {
context: summaryContext
})
}
// return the download of the Summarizer Model
if(availability === 'downloadable'){
return await Summarizer.create();
}
} catch (error) {
//EN: "Error using the Summarizer API"
cms_alert(ALERT_TYPE_ERROR, "Erro ao usar o Summarizer API.");
console.error("Erro ao usar o Summarizer API:", error);
return null
}
}
בנוסף, Terra השתמשו בכלי לסיכום בשילוב עם Translator API כדי לתרגם לאנגלית את הכותרת, כותרת המשנה וגוף הטקסט של המאמר המקורי בפורטוגזית. הגרסה המתורגמת הזו מעובדת על ידי Summarizer API כדי ליצור את הסיכום, ואז מתורגמת בחזרה לפורטוגזית. כך תוכלו לוודא שהמשתמש יקבל את סיכום התוכן בשפה של האפליקציה.
async function translateTextByBuiltInAI(text, sourceLanguage, targetLanguage) {
if (!('translation' in self && 'createTranslator' in self.translation)) {
return null
}
try {
const translator = await Translator.create({
sourceLanguage,
targetLanguage,
})
return await translator.translate(text)
} catch (error) {
throw error
}
}
const text = `Title: ${contentTitle};\n\n Sub-title: ${contentSubtitle};\n\n Article content: ${plainText}.`;
const canTranslate = await Translator.availability({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
if (canTranslate !== 'available') {
if (canTranslate === 'downloadable') {
try {
await Translator.create({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
//EN: "Language download completed successfully."
cms_alert(ALERT_TYPE_OK, "Download do idioma concluído com sucesso.");
} catch (downloadError) {
//EN: "Error downloading the language required for translation."
cms_alert(ALERT_TYPE_ERROR, "Erro ao realizar download do idioma necessário para tradução.");
return
}
} else {
//EN: "Translation is not available or not ready."
cms_alert(ALERT_TYPE_ERROR, "A tradução não está disponível ou não está pronta.");
return
}
}
const translatedText = await translateTextByBuiltInAI(text, 'pt', 'en')
const summarizedText = await summarizerByBuiltInAI(translatedText)
const translatedBackText = await translateTextByBuiltInAI(summarizedText, 'en', 'pt')
השילוב המוצלח של ממשקי AI API מובנים ב-Terra מדגים את הפוטנציאל המשמעותי של AI בצד הלקוח לשיפור תהליכי העבודה של ניהול התוכן. בעזרת ממשקי ה-API של כלי הסיכום והתרגום, Terra שיפרה את היעילות של העיתונאים שלה, והיא נמצאת בעמדה טובה לספק חוויות משתמש משופרות בפלטפורמות שונות.
שיטות מומלצות
אם קלט הביקורת חורג ממגבלת הטוקנים, אפשר לנסות את הפתרונות הבאים:
- להשתמש במדגם קטן יותר (למשל 4 הביקורות האחרונות) ב-API. כך אפשר לקבל תוצאות מהר יותר. כדאי לעיין בהנחיות שלנו בנושא הרחבת סיכום בצד הלקוח.
- התו
QuotaExceededErrorמספק מידע נוסף על הטוקנים המבוקשים בקלט. לאובייקטsummarizerיש מאפייןinputQuotaשמציין את מגבלת האסימונים של ה-API. כך אפשר לקבל משוב בזמן אמת ולהשבית את הפונקציונליות אם הקלט חורג מהמגבלה.
כדאי לשקול גישה היברידית כדי להבטיח חוויה חלקה לכל המשתמשים. בפעם הראשונה שמתבצעת קריאה ל-API מובנה של AI, הדפדפן צריך להוריד את המודל.
- ב-Miravia השתמשו במודל צד השרת כדי לספק סיכום ראשוני בזמן שהמודל היה בהורדה. אחרי שהמודל המובנה היה מוכן, האתר עבר לביצוע הסקה מצד הלקוח.
חשוב תמיד ליצור ממשק ידידותי וברור:
- הטמעה של סרגל התקדמות להורדות של מודלים כדי לצמצם את העיכובים בתשובות.
- כדאי לשקול שקיפות לגבי הורדת המודל. חברת Bright Sites הודיעה למשתמשים על הורדת המודל כדי לאפשר שקיפות והסכמה לשימוש במשאבים. כך המשתמשים יכולים לאשר או לדחות את הבקשה לפני שממשיכים.
מסקנות והמלצות
הדוגמאות של Bright Sites ו-Terra ממחישות את הערך של Summarizer API בשיפור הנגישות של התוכן ומעורבות הקוראים. באמצעות ה-API הזה מצד הלקוח, הפלטפורמות האלה שיפרו את חוויית הקריאה וההתאמה האישית, בלי עלויות עסקיות נוספות ובאמצעות ניהול נתונים פשוט יותר. בדומה ל-Summarizer API, כל ממשקי ה-API המובנים של AI מאפשרים שימוש מעשי ב-AI בצד הלקוח.
רוצים לדעת איך Summarizer API יכול לעזור בתרחישי שימוש אחרים? בנוסף, הסברנו איך ממשק ה-API של כלי הסיכום עוזר ל-redBus ול-Miravia ליצור סיכומים מועילים של ביקורות משתמשים.
האם אתה בונה משהו חדש באמצעות ממשקי ה-API האלה? אפשר לשתף אותו איתנו ב-@ChromiumDev ב-X או ב-Chromium for Developers ב-LinkedIn.
משאבים
- מידע נוסף על Summarizer API
- איך מתחילים להשתמש בממשקי API מובנים ב-Chrome
- תיאור מקרה של שימוש ב-Prompt API כדי להעצים בלוגרים
- לקריאת המקרה לדוגמה של Translation and Language Detector
- כאן אפשר לקרוא איך חברות כמו redBus ו-Miravia משתמשות ב-Summarizer API כדי ליצור סיכומים מועילים של ביקורות משתמשים.
תודות
תודה לGuilherme Moser ולFernando Fischer מ-Terra, לAline Souza מ-CWI, לBrian Alford, לKeval Patel, לJack Riley ולצוות ההנדסה של Brightsites, לSwetha Gopalakrishnan, לAlexandra Klepper, לThomas Steiner ולKenji Baheux על העזרה בכתיבה ובבדיקה של המסמך הזה.