תאריך פרסום: 11 בנובמבר 2024
נניח שתוכלו להציע למשתמשים שלכם את היכולת להפוך מאמרים ארוכים, מסמכים מורכבים או אפילו שיחות צ'אט פעילות כדי ליצור סיכומים תמציתיים ומלאים תובנות.
אפשר להשתמש ב-Summarizer API כדי ליצור סיכומים מסוגים שונים באורך ובפורמטים שונים, כמו משפטים, פסקאות, רשימות של נקודות ועוד. לדעתנו ה-API הזה שימושי בתרחישים הבאים:
- סיכום של הנקודות העיקריות במאמר או בשיחה בצ'אט.
- הצעות לשמות ולכותרות של מאמרים.
- יצירת סיכום תמציתי ומידעי של טקסט ארוך.
- יצירת טיזר לספר על סמך ביקורת על הספר.
זמינות
- אתם יכולים להצטרף לגרסת המקור לניסיון של Summarizer API, שפועלת מ-Chrome 131 ועד Chrome 136, כדי לבדוק את ה-API עם משתמשים אמיתיים בסביבת הייצור. ניסויים במקור מאפשרים להפעיל את התכונה לכל המשתמשים במקור ב-Chrome. איך מתחילים להשתמש בגרסת הבטא של מקור הנתונים
- יכול להיות שיהיו מגבלות שימוש, אבל תוכלו לשלב את התכונות האלה כדי לבדוק אותן בזמן אמת ולאסוף משוב ממשתמשים. המטרה היא לעדכן את הגרסאות הבאות של ה-API הזה, בזמן שאנחנו פועלים להרחבת הזמינות שלו.
- יש לפעול לפי ההטמעה בקטע סטטוס Chrome.
- הצעה ל-Summarizer API היא חלק מחבילה של ממשקי API לכתיבה, ואנחנו מזמינים אתכם לדון בה.
- הצטרפו לתוכנית הגישה המוקדמת כדי לקבל הצצה מוקדמת לממשקי API מובנים חדשים של AI ולגשת לדיון ברשימת התפוצה שלנו.
הגבלות במהלך תקופת הניסיון של המקור
במהלך תקופת הניסיון בגרסת המקור, Summarizer API תומך רק בסיכום של טקסטים באנגלית, כי איכות המודל נבדקה לעומק רק על תוכן באנגלית. אנחנו מתכוונים לבטל את ההגבלה הזו אחרי שנבדוק שפות נוספות מבחינת איכות ובטיחות, ושה-API יהיה זמין לשימוש נרחב.
שימוש ב-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, אבל קודם צריך להוריד את המודל.
כדי להפעיל את הורדת המודל וליצור את הסיכום, צריך להפעיל את הפונקציה 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, סיכום קצר של נקודות עיקריות מורכב משלושה תבליטים, וסיכום קצר מורכב משפט אחד. סיכום ארוך של נקודות עיקריות מורכב משבעה תבליטים, וסיכום ארוך מורכב פסקה אחת.
הדוגמה הבאה ממחישה איך מאתחלים את ה-Summarizer.
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);
הדגמה (דמו)
תוכלו לנסות את Summarzer API ב-Summarizer API Playground.
מאמץ סטנדרטיזציה
אנחנו פועלים כדי לסטנדרט את Summarizer API, כדי להבטיח תאימות לדפדפנים שונים.
הצעת ה-API שלנו קיבלה תמיכה מהקהילה והועברה לקבוצת הקהילה של W3C Web Incubator להמשך דיון. צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C, וביקש מ-Mozilla ומ-WebKit את עמדותיהם בנושא התקנים.
השתתפות ושיתוף משוב
אתם יכולים להתחיל לבדוק את Summarizer API כבר עכשיו על ידי הצטרפות לתקופת הניסיון המקורית ולשתף את המשוב שלכם. המשוב שלכם יכול להשפיע ישירות על האופן שבו אנחנו מפתחים ומטמיעים גרסאות עתידיות של ה-API הזה, ושל כל ממשקי ה-API המובנים של AI.
- כדי לשלוח משוב על ההטמעה ב-Chrome, אפשר לשלוח דיווח על באג או בקשה להוספת תכונה.
- כדי לדון בתכנון של Summarizer API ב-GitHub, אפשר להגיב לבקשה קיימת או לפתוח בקשה חדשה.
- כדי להשתתף במאמצים ליצירת התקנים, אתם יכולים להצטרף לקבוצת הקהילה של Web Incubator.