تاریخ انتشار: 11 نوامبر 2024، آخرین به روز رسانی: 20 می 2025
توضیح دهنده | وب | برنامه های افزودنی | وضعیت کروم | قصد |
---|---|---|---|---|
MDN | مشاهده کنید | قصد حمل |
شما می توانید به کاربران خود این امکان را ارائه دهید که مقالات طولانی، اسناد پیچیده، یا حتی گفتگوهای چت پر جنب و جوش را به خلاصه های مختصر و روشنگر تبدیل کنند.
Summarizer API را می توان برای تولید انواع مختلف خلاصه ها در طول ها و قالب های مختلف، مانند جملات، پاراگراف ها، لیست های نقطه گلوله و موارد دیگر استفاده کرد. ما معتقدیم که این API در سناریوهای زیر مفید است:
- خلاصه کردن نکات کلیدی یک مقاله یا یک گفتگوی چت.
- پیشنهاد عناوین و عناوین مقالات.
- ایجاد خلاصه ای مختصر و آموزنده از یک متن طولانی.
- تولید تیزر برای یک کتاب بر اساس نقد کتاب.
شروع کنید
Summarizer API از Chrome 138 stabil در دسترس است.
تشخیص ویژگی را اجرا کنید تا ببینید آیا مرورگر از Summarizer API پشتیبانی می کند یا خیر.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
الزامات سخت افزاری را بررسی کنید
زبان شناساگر و API های مترجم فقط روی دسکتاپ در کروم کار می کنند.
Prompt API، Summarizer API، Writer API، و Rewriter API در Chrome کار میکنند که شرایط زیر رعایت شود:
- سیستم عامل : ویندوز 10 یا 11؛ macOS 13+ (ونتورا و به بعد)؛ یا لینوکس Chrome for Android، iOS و ChromeOS هنوز توسط APIهای ما که توسط Gemini Nano پشتیبانی میشوند، پشتیبانی نمیشوند.
- فضای ذخیره سازی : حداقل 22 گیگابایت در حجمی که نمایه کروم شما را در خود دارد.
- GPU : به طور دقیق بیش از 4 گیگابایت VRAM.
- شبکه : داده های نامحدود یا اتصال نامحدود.
این الزامات برای شما در فرآیند توسعه و کاربرانی که با ویژگی هایی که می سازید کار می کنند وجود دارد.
دانلود مدل
Summarizer API از مدلی استفاده می کند که برای تولید خلاصه های با کیفیت بالا آموزش داده شده است. API در کروم تعبیه شده است و Gemini Nano مدلی است که اولین باری که یک وب سایت از این API استفاده می کند دانلود می شود.
برای تعیین اینکه آیا مدل آماده استفاده است، تابع Summarizer.availability()
ناهمزمان را فراخوانی کنید. یک وعده با مقادیر زیر برمی گرداند.
-
"unavailable"
به این معنی است که پیاده سازی از گزینه های درخواستی پشتیبانی نمی کند. -
"downloadable"
به این معنی است که پیاده سازی از گزینه های درخواستی پشتیبانی می کند، اما ابتدا مرورگر باید چیزی را دانلود کند، مانند یک مدل (در مورد کروم، 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
درخواستی متفاوت است. به عنوان مثال، در پیادهسازی کروم، خلاصهای از نکات کلیدی کوتاه از سه نقطه تشکیل شده است و یک خلاصه کوتاه یک جمله است.
پس از تنظیم، پارامترها را نمی توان تغییر داد. اگر نیاز به تغییراتی در پارامترها دارید، یک شی خلاصه کننده جدید ایجاد کنید.
جدول زیر انواع مختلف خلاصه ها و طول متناظر آنها را نشان می دهد. طول ها حداکثر مقدار ممکن را نشان می دهند، زیرا گاهی اوقات نتایج می توانند کوتاهتر باشند.
تایپ کنید | معنی | طول | ||||||
---|---|---|---|---|---|---|---|---|
"tldr" | خلاصه باید کوتاه و دقیق باشد و یک نمای کلی سریع از ورودی ارائه دهد و برای یک خواننده شلوغ مناسب باشد. |
| ||||||
"teaser" | خلاصه باید بر روی جالب ترین یا جذاب ترین بخش های ورودی تمرکز کند، که برای جذب خواننده برای خواندن بیشتر طراحی شده است. |
| ||||||
"key-points" | خلاصه باید مهم ترین نکات را از ورودی استخراج کند که به صورت لیست گلوله ای ارائه می شود. |
| ||||||
"headline" | خلاصه باید به طور مؤثر حاوی نکته اصلی ورودی در یک جمله واحد، در قالب عنوان یک مقاله باشد. |
|
مثال زیر نحوه اولیه سازی خلاصه کننده را نشان می دهد.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
خلاصه کننده را اجرا کنید
دو راه برای اجرای خلاصه کننده وجود دارد: پخش جریانی و دسته ای (غیر جریانی).
جمع بندی دسته ای
با خلاصه سازی دسته ای، مدل ورودی را به عنوان یک کل پردازش می کند و سپس خروجی را تولید می کند.
برای دریافت خلاصه دسته ای، تابع summarize()
را فراخوانی کنید. اولین استدلال متنی است که می خواهید خلاصه کنید. آرگومان دوم، اختیاری، یک شی با یک context
زمینه است. این قسمت به شما امکان می دهد جزئیات پس زمینه را اضافه کنید که ممکن است خلاصه سازی را بهبود بخشد.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
خلاصه سازی جریانی
خلاصه سازی جریانی نتایج را در زمان واقعی ارائه می دهد. با اضافه شدن و تنظیم ورودی، خروجی به طور مداوم به روز می شود. برای دریافت خلاصه جریان، به جای summarize summarizeStreaming()
summarize()
را فراخوانی کنید.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
نسخه ی نمایشی
میتوانید Summarizer API را در Summarizer API Playground امتحان کنید.
تلاش برای استانداردسازی
ما در حال کار برای استانداردسازی Summarizer API هستیم تا از سازگاری بین مرورگرها اطمینان حاصل کنیم.
پیشنهاد API ما پشتیبانی جامعه را دریافت کرد و برای بحث بیشتر به گروه انجمن انکوباتور وب W3C منتقل شد. تیم Chrome بازخوردی را از گروه معماری فنی W3C درخواست کرد و از موزیلا و WebKit برای موقعیتهای استانداردشان درخواست کرد.
با پیوستن به گروه جامعه انکوباتور وب، در تلاش استانداردها شرکت کنید.
بازخورد را به اشتراک بگذارید
میخواهیم ببینیم با Summarizer API چه چیزی میسازید. وب سایت ها و برنامه های کاربردی وب خود را با ما در X ، YouTube و LinkedIn به اشتراک بگذارید.
برای بازخورد در مورد اجرای Chrome، یک گزارش اشکال یا یک درخواست ویژگی ارسال کنید.