با هوش مصنوعی داخلی خلاصه کنید

تاریخ انتشار: 11 نوامبر 2024، آخرین به روز رسانی: 20 می 2025

توضیح دهنده وب برنامه های افزودنی وضعیت کروم قصد
MDN پشت پرچم کروم 138 بتا پشت پرچم کروم 138 بتا مشاهده کنید قصد حمل

شما می توانید به کاربران خود این امکان را ارائه دهید که مقالات طولانی، اسناد پیچیده، یا حتی گفتگوهای چت پر جنب و جوش را به خلاصه های مختصر و روشنگر تبدیل کنند.

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" خلاصه باید کوتاه و دقیق باشد و یک نمای کلی سریع از ورودی ارائه دهد و برای یک خواننده شلوغ مناسب باشد.
کوتاه 1 جمله
متوسط 3 جمله
طولانی 5 جمله
"teaser" خلاصه باید بر روی جالب ترین یا جذاب ترین بخش های ورودی تمرکز کند، که برای جذب خواننده برای خواندن بیشتر طراحی شده است.
کوتاه 1 جمله
متوسط 3 جمله
طولانی 5 جمله
"key-points" خلاصه باید مهم ترین نکات را از ورودی استخراج کند که به صورت لیست گلوله ای ارائه می شود.
کوتاه 3 نقطه گلوله
متوسط 5 نقطه گلوله
طولانی 7 نقطه گلوله
"headline" خلاصه باید به طور مؤثر حاوی نکته اصلی ورودی در یک جمله واحد، در قالب عنوان یک مقاله باشد.
کوتاه 12 کلمه
متوسط 17 کلمه
طولانی 22 کلمه

مثال زیر نحوه اولیه سازی خلاصه کننده را نشان می دهد.

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، یک گزارش اشکال یا یک درخواست ویژگی ارسال کنید.