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

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

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

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

Summarizer API را می توان برای تولید انواع مختلف خلاصه ها در طول ها و قالب های مختلف، مانند جملات، پاراگراف ها، لیست های نقطه گلوله و موارد دیگر استفاده کرد. ما معتقدیم که این API در سناریوهای زیر مفید است:

  • خلاصه کردن نکات کلیدی یک مقاله یا یک گفتگوی چت.
  • پیشنهاد عناوین و عناوین مقالات.
  • ایجاد خلاصه ای مختصر و آموزنده از یک متن طولانی.
  • تولید تیزر برای یک کتاب بر اساس نقد کتاب.

شروع کنید

Summarizer API از Chrome 138 stabil در دسترس است.

قبل از استفاده از این API، خط‌مشی استفاده‌های ممنوعه هوش مصنوعی مولد Google را تأیید کنید.

تشخیص ویژگی را اجرا کنید تا ببینید آیا مرورگر از Summarizer API پشتیبانی می کند یا خیر.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

الزامات سخت افزاری را بررسی کنید

الزامات زیر برای برنامه‌نویسان و کاربرانی که ویژگی‌ها را با استفاده از این APIها در Chrome اجرا می‌کنند، وجود دارد. سایر مرورگرها ممکن است شرایط عملیاتی متفاوتی داشته باشند.

زبان شناساگر و API های مترجم در کروم روی دسکتاپ کار می کنند. این API ها روی دستگاه های تلفن همراه کار نمی کنند. Prompt API، Summarizer API، Writer API، و Rewriter API در Chrome کار می‌کنند که شرایط زیر رعایت شود:

  • سیستم عامل : ویندوز 10 یا 11؛ macOS 13+ (ونتورا و به بعد)؛ یا لینوکس Chrome for Android، iOS، و ChromeOS هنوز توسط APIهایی که از Gemini Nano استفاده می‌کنند پشتیبانی نمی‌شوند.
  • فضای ذخیره سازی : حداقل 22 گیگابایت فضای خالی در حجمی که نمایه Chrome شما را در بر می گیرد.
  • GPU : به طور دقیق بیش از 4 گیگابایت VRAM.
  • شبکه : داده های نامحدود یا اتصال نامحدود.

اندازه دقیق Gemini Nano ممکن است با به‌روزرسانی مدل توسط مرورگر متفاوت باشد. برای تعیین اندازه فعلی، از chrome://on-device-internals دیدن کنید و به وضعیت مدل بروید. مسیر File لیست شده را برای تعیین اندازه مدل باز کنید.

دانلود مدل

Summarizer API از مدلی استفاده می کند که برای تولید خلاصه های با کیفیت بالا آموزش داده شده است. API در کروم تعبیه شده است و Gemini Nano مدلی است که اولین باری که یک وب سایت از این API استفاده می کند دانلود می شود.

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

برای مثال، می‌توانید یک خلاصه‌کننده را مقداردهی اولیه کنید تا طول متوسطی از نقاط کلیدی در 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);
}

خلاصه کننده را اجرا کنید

دو راه برای اجرای خلاصه کننده وجود دارد: پخش جریانی و دسته ای (غیر جریانی).

جمع بندی دسته ای

با خلاصه سازی دسته ای، مدل ورودی را به عنوان یک کل پردازش می کند و سپس خروجی را تولید می کند.

برای دریافت خلاصه دسته ای، تابع 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 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 امتحان کنید.

خط مشی مجوز، iframes، و کارگران وب

به‌طور پیش‌فرض، Summarizer API فقط برای پنجره‌های سطح بالا و iframe‌های همان مبدا در دسترس است. دسترسی به API را می توان با استفاده از ویژگی Permission Policy 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 API در حال حاضر در Web Workers در دسترس نیست، به دلیل پیچیدگی ایجاد یک سند مسئول برای هر کارگر به منظور بررسی وضعیت خط مشی مجوزها.

تلاش برای استانداردسازی

ما در حال کار برای استانداردسازی Summarizer API برای سازگاری بین مرورگرها هستیم.

Summarizer API و سایر APIهای Writing Assistance توسط گروه کاری W3C WebML پذیرفته شده است. ما از موزیلا و WebKit در مورد موقعیت های استاندارد خود خواسته ایم.

بازخورد را به اشتراک بگذارید

می‌خواهیم ببینیم با Summarizer API چه چیزی می‌سازید. وب سایت ها و برنامه های کاربردی وب خود را با ما در X ، YouTube و LinkedIn به اشتراک بگذارید.

برای بازخورد در مورد اجرای Chrome، یک گزارش اشکال یا یک درخواست ویژگی ارسال کنید.