منتشر شده: ۱۱ نوامبر ۲۰۲۴، آخرین بهروزرسانی: ۳۰ ژوئیه ۲۰۲۵
Browser Support
شما میتوانید به کاربران خود این امکان را بدهید که مقالات طولانی، اسناد پیچیده یا حتی مکالمات چت زنده را به صورت خلاصههای مختصر و مفید ارائه دهند.
API خلاصهساز میتواند برای تولید انواع مختلف خلاصهها در طولها و قالبهای متنوع، مانند جملات، پاراگرافها، فهرستهای بولتپوینت و موارد دیگر استفاده شود. ما معتقدیم که این API در سناریوهای زیر مفید است:
- خلاصه کردن نکات کلیدی یک مقاله یا یک گفتگوی چت.
- پیشنهاد عنوان و سرفصل برای مقالات
- ایجاد خلاصهای مختصر و مفید از یک متن طولانی.
- تولید تیزر تبلیغاتی برای یک کتاب بر اساس نقد کتاب.
شروع کنید
رابط برنامهنویسی کاربردی Summarizer از نسخه پایدار کروم ۱۳۸ در دسترس است.
قبل از استفاده از این API، سیاست استفادههای ممنوعه از هوش مصنوعی مولد گوگل را بپذیرید.
برای بررسی اینکه آیا مرورگر از Summarizer API پشتیبانی میکند یا خیر، تشخیص ویژگی را اجرا کنید.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
بررسی نیازمندیهای سختافزاری
الزامات زیر برای توسعهدهندگان و کاربرانی که از ویژگیهای این APIها در Chrome استفاده میکنند، وجود دارد. مرورگرهای دیگر ممکن است الزامات عملیاتی متفاوتی داشته باشند.
APIهای تشخیص زبان و مترجم در کروم دسکتاپ کار میکنند. این APIها در دستگاههای تلفن همراه کار نمیکنند. APIهای Prompt، Summarizer، Writer، Rewriter و Proofreader در کروم زمانی کار میکنند که شرایط زیر برقرار باشند:
- سیستم عامل : ویندوز ۱۰ یا ۱۱؛ macOS 13+ (Ventura و بعد از آن)؛ لینوکس؛ یا ChromeOS (از پلتفرم ۱۶۳۸۹.۰.۰ و بعد از آن) در دستگاههای Chromebook Plus . Chrome برای اندروید، iOS و ChromeOS در دستگاههای غیر Chromebook Plus هنوز توسط APIهایی که از Gemini Nano استفاده میکنند پشتیبانی نمیشوند.
- فضای ذخیرهسازی : حداقل ۲۲ گیگابایت فضای خالی در درایوی که نمایه کروم شما در آن قرار دارد.
- پردازنده گرافیکی (GPU) یا پردازنده مرکزی (CPU) : مدلهای توکار میتوانند با پردازنده گرافیکی (GPU) یا پردازنده مرکزی (CPU) کار کنند.
- پردازنده گرافیکی (GPU) : دقیقاً بیش از ۴ گیگابایت حافظه ویدیویی (VRAM).
- پردازنده : ۱۶ گیگابایت رم یا بیشتر و ۴ هسته پردازنده یا بیشتر.
- شبکه : داده نامحدود یا اتصال بدون محدودیت حجمی.
اندازه دقیق Gemini Nano ممکن است با بهروزرسانی مدل مرورگر تغییر کند. برای تعیین اندازه فعلی، به chrome://on-device-internals
مراجعه کنید.
دانلود مدل
رابط برنامهنویسی Summarizer از مدلی استفاده میکند که برای تولید خلاصههای با کیفیت بالا آموزش دیده است. این رابط برنامهنویسی در کروم تعبیه شده است و Gemini Nano مدلی است که اولین باری که یک وبسایت از این رابط برنامهنویسی استفاده میکند، دانلود میشود.
برای تعیین اینکه آیا مدل آماده استفاده است، تابع Summarizer.availability()
ناهمزمان را فراخوانی کنید. اگر پاسخ به availability()
downloadable
باشد، به پیشرفت دانلود گوش دهید تا کاربر را از پیشرفت آن مطلع کنید، زیرا ممکن است زمان ببرد.
const availability = await Summarizer.availability();
برای شروع دانلود مدل و ایجاد خلاصهساز، فعالسازی کاربر را بررسی کنید، سپس تابع Summarizer.create()
ناهمزمان را فراخوانی کنید.
// Proceed to request batch or streaming summarization
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" | خلاصه باید به طور مؤثر نکته اصلی ورودی را در یک جمله، در قالب تیتر مقاله، شامل شود. |
|
برای مثال، میتوانید یک خلاصهساز را طوری تنظیم کنید که نکات کلیدی را با طول متوسط در Markdown نمایش دهد.
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;
}
// Check for user activation before creating the summarizer
if (navigator.userActivation.isActive) {
const summarizer = await Summarizer.create(options);
}
زبانهای مورد انتظار را اختصاص دهید
Summarizer API از چندین زبان پشتیبانی میکند. هنگام ایجاد جلسه خود، زبانهای ورودی، خروجی و متن مورد انتظار را تنظیم کنید. این به مرورگر اجازه میدهد در صورتی که نتواند از ترکیب زبان خاصی پشتیبانی کند، درخواست را رد کند.
const summarizer = await Summarizer.create({
type: "key-points",
expectedInputLanguages: ["en", "ja", "es"],
outputLanguage: "es",
expectedContextLanguages: ["en"],
sharedContext: "These are requests to summarize articles from a multilanguage
newspaper. The users expect a response in Spanish."
});
دو روش برای اجرای خلاصهساز وجود دارد: پخش جریانی و دستهای (غیر پخش جریانی).
خلاصهسازی دستهای
با خلاصهسازی دستهای، مدل ورودی را به صورت کلی پردازش میکند و سپس خروجی را تولید میکند.
برای دریافت خلاصه دستهای، تابع summarize()
فراخوانی کنید. آرگومان اول متنی است که میخواهید خلاصه کنید. آرگومان دوم که اختیاری است، یک شیء با فیلد context
است. این فیلد به شما امکان میدهد جزئیات پسزمینهای را اضافه کنید که ممکن است خلاصهسازی را بهبود بخشد.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
خلاصهسازی جریان
خلاصهسازی جریانی نتایج را به صورت بلادرنگ ارائه میدهد. خروجی به طور مداوم با اضافه شدن و تنظیم ورودی بهروزرسانی میشود. برای دریافت خلاصه جریانی، به جای Summaly 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 Playground امتحان کنید.
سیاست دسترسی، iframeها و Web Workerها
به طور پیشفرض، Summarizer API فقط برای پنجرههای سطح بالا و iframe های هممبنای آنها در دسترس است. دسترسی به API را میتوان با استفاده از ویژگی allow=""
به iframe های بینمبنای آنها واگذار کرد:
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Summarizer API by
setting the `allow="summarizer"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="summarizer"></iframe>
رابط برنامهنویسی Summarizer فعلاً در Web Workers در دسترس نیست. این به دلیل پیچیدگی ایجاد یک سند مسئول برای هر worker است تا بتوان وضعیت سیاست مجوزها را بررسی کرد.
بازخورد را به اشتراک بگذارید
ما میخواهیم ببینیم که شما با Summarizer API چه چیزی میسازید. وبسایتها و برنامههای وب خود را با ما در X ، YouTube و LinkedIn به اشتراک بگذارید.
برای بازخورد در مورد پیادهسازی کروم، یک گزارش اشکال یا درخواست ویژگی ثبت کنید.