תאריך פרסום: 11 בנובמבר 2024
נסו לדמיין איך תוכלו להציע למשתמשים שלכם את היכולת לסכם מאמרים ארוכים, מסמכים מורכבים או אפילו שיחות צ'אט תוססות לסיכומים תמציתיים ומלאי תובנות.
אפשר להשתמש ב-Summarizer API כדי ליצור סיכומים מסוגים שונים באורך ובפורמטים שונים, כמו משפטים, פסקאות, רשימות של נקודות ועוד. לדעתנו ה-API הזה שימושי בתרחישים הבאים:
- סיכום של הנקודות העיקריות במאמר או בשיחה בצ'אט.
- הצעות לשמות ולכותרות של מאמרים.
- יצירת סיכום תמציתי ומידעי של טקסט ארוך.
- יצירת טיזר לספר על סמך ביקורת על הספר.
זמינות
- להצטרף לגרסת המקור לניסיון של Summarizer API, שפועלת מ-Chrome 131 ועד Chrome 136. גרסאות מקור לניסיון מאפשרות לכם להציע את התכונה למשתמשים אמיתיים במקור שלכם, ב-Chrome.
- אפשר לעקוב אחרי ההטמעה שלנו בסטטוס Chrome.
- הצעה ל-Summarizer API היא חלק מחבילה של ממשקי API לכתיבה, והיא פתוחה לדיון.
- הצטרפו לתוכנית הגישה המוקדמת כדי לקבל הצצה מוקדמת לממשקי API מובנים חדשים של AI ולגשת לדיון ברשימת התפוצה שלנו.
הרשמה לתקופת הניסיון של גרסת המקור
כדי להתחיל להשתמש ב-Summarizer API:
- מאשרים את המדיניות של Google בנושא שימוש אסור ב-AI גנרטיבי.
- עוברים אל גרסת המקור לניסיון של Summarizer API.
- לוחצים על Register וממלאים את הטופס.
- בשדה Web origin, מזינים את המקור או את מזהה התוסף,
chrome-extension://YOUR_EXTENSION_ID
.
- בשדה Web origin, מזינים את המקור או את מזהה התוסף,
- לוחצים על Register.
- מעתיקים את האסימון שסופק ומוסיפים אותו לכל דף אינטרנט במקור או בקובץ של התוסף שבו רוצים להפעיל את תקופת הניסיון.
- אם אתם מפתחים תוסף, עליכם לפעול לפי ההוראות לניסיון של מקור תוסף.
- מתחילים להשתמש ב-Summarizer API.
איך מתחילים להשתמש בגרסת המקור לניסיון
הגבלות במהלך תקופת הניסיון של המקור
במהלך תקופת הניסיון בגרסת המקור, Summarizer API תומך רק בסיכום של טקסטים באנגלית, כי איכות המודל נבדקה לעומק רק על תוכן באנגלית. אנחנו מתכוונים לבטל את ההגבלה הזו אחרי שנבדוק שפות נוספות מבחינת איכות ובטיחות, ושה-API יהיה זמין לשימוש נרחב.
הוספת תמיכה ב-localhost
כדי לגשת ל-Summarizer API ב-localhost
במהלך גרסת המקור לניסיון, צריך להשתמש ב-Chrome Canary. לאחר מכן, פועלים לפי השלבים הבאים:
- פותחים את Chrome Canary באחת מהפלטפורמות הבאות: Windows, Mac או Linux.
- לעבור אל
chrome://flags/#summarization-api-for-gemini-nano
. - בוחרים באפשרות מופעל.
- לוחצים על הפעלה מחדש או מפעילים מחדש את Chrome.
שימוש ב-Summarizer API
קודם כול, מריצים זיהוי תכונות כדי לבדוק אם הדפדפן תומך ב-Summarizer API.
if ('ai' in self && 'summarizer' in self.ai) {
// The Summarizer API is supported.
}
הורדת מודל
ב-Summarizer API נעשה שימוש במודל AI חזק שהוכשר ליצירת סיכומים באיכות גבוהה. ממשק ה-API מובנה ב-Chrome, אבל המודל מוריד בנפרד בפעם הראשונה שאתר משתמש ב-API.
כדי לבדוק אם המודל מוכן לשימוש, צריך להפעיל את הפונקציה ai.summarizer.capabilities()
האסינכרונית. הפונקציה מחזירה אובייקט AISummarizerCapabilities
עם שדה available
שיכול לקבל שלושה ערכים אפשריים:
no
: הדפדפן הנוכחי תומך ב-Summarizer API, אבל אי אפשר להשתמש בו כרגע. יכולות להיות לכך כמה סיבות, למשל אם אין מספיק מקום פנוי בדיסק כדי להוריד את המודל.readily
: הדפדפן הנוכחי תומך ב-Summarizer API, וניתן להשתמש בו באופן מיידי.after-download
: הדפדפן הנוכחי תומך ב-Summarizer API, אבל קודם צריך להוריד את המודל.
כדי להפעיל את הורדת המודל וליצור את ה-summarizer, צריך לבצע קריאה לפונקציה ai.summarizer.create()
האסינכרונית. אם התשובה לשאילתה capabilities()
היא after-download
, מומלץ להאזין להתקדמות ההורדה. כך תוכלו להודיע למשתמש אם ההורדה נמשכת זמן רב.
const summarizer = await ai.summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
});
}
});
פונקציות API
הפונקציה create()
מאפשרת להגדיר אובייקט חדש של סיכום בהתאם לצרכים שלכם. הפונקציה מקבלת אובייקט options
אופציונלי עם הפרמטרים הבאים:
sharedContext
: הקשר נוסף ששותף ויכול לעזור לכלי ליצירת סיכומים.type
: סוג הסיכום, עם הערכים המותריםkey-points
(ברירת המחדל),tl;dr
,teaser
ו-headline
.format
: הפורמט של הסיכום, עם הערכים המותריםmarkdown
(ברירת המחדל) ו-plain-text
.length
: אורך הסיכום, עם הערכים המותריםshort
,medium
(ברירת המחדל) ו-long
. המשמעויות של האורך משתנות בהתאם ל-type
המבוקש. לדוגמה, בהטמעה של Chrome, סיכום קצר של נקודות עיקריות מורכב משלושה תבליטים, וסיכום קצר מורכב משפט אחד. סיכום ארוך של נקודות עיקריות מורכב משבעה תבליטים, וסיכום ארוך מורכב פסקה אחת.
הדוגמה הבאה ממחישה איך מאתחלים את הסיכום.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const available = (await self.ai.summarizer.capabilities()).available;
let summarizer;
if (available === 'no') {
// The Summarizer API isn't usable.
return;
}
if (available === 'readily') {
// The Summarizer API can be used immediately .
summarizer = await self.ai.summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await self.ai.summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(e.loaded, e.total);
});
await summarizer.ready;
}
הרצת הסיכום
יש שתי דרכים להפעיל את הכלי לסיכום: סטרימינג ולא סטרימינג.
סיכום ללא סטרימינג
בסיכום ללא סטרימינג, המודל מעבד את הקלט כמכלול ואז יוצר את הפלט.
כדי לקבל סיכום ללא סטרימינג, צריך להפעיל את הפונקציה האסינכרונית summarize()
של ה-summarizer. הארגומנט הראשון של הפונקציה הוא הטקסט שרוצים לסכם. הארגומנט השני, האופציונלי, הוא אובייקט עם שדה context
.
השדה הזה מאפשר לכם להוסיף פרטי רקע שעשויים לשפר את הסיכום.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
סיכום של סטרימינג
סיכום בזמן אמת מספק תוצאות בזמן אמת. הפלט מתעדכן באופן רציף ככל שמוסיפים ומתאימים את הקלט.
כדי לקבל סיכום של סטרימינג, צריך להפעיל את הפונקציה summarizeStreaming()
של ה-summarizer. לאחר מכן, בודקים את הפלחים הזמינים של הטקסט בסטרימינג.
let result = '';
let previousChunk = '';
for await (const chunk of stream) {
const newChunk = chunk.startsWith(previousChunk)
? chunk.slice(previousChunk.length) : chunk;
console.log(newChunk);
result += newChunk;
previousChunk = chunk;
}
console.log(result);
הפונקציה summarizeStreaming()
מחזירה ReadableStream
, שבו קטעי התשובה נבנים זה על גבי זה. כלומר, כל תשובה מכילה את הסיכום המלא שנוצר עד לנקודה הזו, ולא רק את הקטע הבא, וזו לא ההתנהגות הרצויה.
אנחנו מתכוונים להתאים את ה-API לסטרימינג לפלטפורמות אחרות בפלטפורמה, שבהן הקטעים הם קטעים רצופים של סטרימינג ארוך אחד. בינתיים, כדי להשיג את ההתנהגות הרצויה, אפשר להטמיע את הפעולות הבאות:
let result = '';
let previousLength = 0;
for await (const segment of stream) {
const newContent = segment.slice(previousLength);
console.log(newContent);
previousLength = segment.length;
result += newContent;
}
console.log(result);
הדגמה (דמו)
אתם יכולים לנסות את Summarizer API במגרש המשחקים של Summarizer API.
מאמץ סטנדרטיזציה
אנחנו פועלים כדי לסטנדרט את Summarizer API, כדי להבטיח תאימות לדפדפנים שונים.
הצעת ה-API שלנו קיבלה תמיכה מהקהילה והועברה לקבוצת הקהילה של W3C Web Incubator להמשך דיון. צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C, וביקש מ-Mozilla ומ-WebKit את עמדותיהם בנושא התקנים.
השתתפות ושיתוף משוב
אתם יכולים להצטרף לתקופת הניסיון המקורית כדי להתחיל לבדוק את Summarizer API ולשלוח לנו משוב. המשוב שלכם יכול להשפיע ישירות על האופן שבו אנחנו מפתחים ומטמיעים גרסאות עתידיות של ה-API הזה, ושל כל ממשקי ה-API המובנים של AI.
- כדי לשלוח משוב על ההטמעה ב-Chrome, אפשר לשלוח דיווח על באג או בקשה להוספת תכונה.
- כדי לדון בתכנון של Summarizer API ב-GitHub, אפשר להגיב על בעיה קיימת או לפתוח בעיה חדשה.
- כדי להשתתף במאמץ ליצירת התקנים, אתם יכולים להצטרף לקבוצת הקהילה של Web Incubator.