التلخيص باستخدام تكنولوجيات الذكاء الاصطناعي المدمجة

تاريخ النشر: 11 تشرين الثاني (نوفمبر) 2024، تاريخ آخر تعديل: 20 أيار (مايو) 2025

فيديو الشرح الويب الإضافات حالة Chrome النيّة بالشراء
MDN خلف علم الإصدار التجريبي من Chrome 138 خلف علم الإصدار التجريبي من Chrome 138 العرض Intent to Ship (نية الشحن)

يمكنك منح المستخدمين إمكانية تحويل المقالات الطويلة أو المستندات المعقدة أو حتى محادثات المحادثة النشطة إلى ملخّصات مختصرة ومفيدة.

يمكن استخدام واجهة برمجة التطبيقات Summarizer API لإنشاء أنواع مختلفة من الملخصات بأشكال ومقاييس متنوعة، مثل الجمل والفقرات وقوائم النقاط المميّزة وغيرها. نعتقد أنّ واجهة برمجة التطبيقات هذه مفيدة في الحالات التالية:

  • تلخيص النقاط الرئيسية في مقالة أو محادثة
  • اقتراح عناوين رئيسية وعناوين فرعية للمقالات
  • إنشاء ملخّص موجز ومفيد لنص طويل
  • إنشاء إعلان تشويقي لكتاب استنادًا إلى مراجعة للكتاب

البدء

تتوفّر Summarizer API من الإصدار الثابت 138 من Chrome.

يمكنك تشغيل ميزة رصد الميزات لمعرفة ما إذا كان المتصفّح يتيح استخدام واجهة برمجة التطبيقات Summarizer API.

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

مراجعة متطلبات الأجهزة

لا تعمل واجهات برمجة التطبيقات Language Detector وTranslator API إلا على أجهزة الكمبيوتر المكتبي في Chrome.

تعمل واجهات برمجة التطبيقات Prompt API وSummarizer API وWriter API وRewriter API في Chrome عند استيفاء الشروط التالية:

  • نظام التشغيل: Windows 10 أو 11 أو الإصدار 13 من نظام التشغيل macOS والإصدارات الأحدث (Ventura والإصدارات الأحدث) أو Linux لا تتوفّر واجهات برمجة التطبيقات التي توفّرها Gemini Nano لإصدارات Chrome على Android وiOS وChromeOS.
  • مساحة التخزين: 22 غيغابايت على الأقل في وحدة التخزين التي تحتوي على ملفك الشخصي على Chrome
  • GPU: يجب أن تكون ذاكرة الوصول العشوائي للفيديو (VRAM) أكبر من 4 غيغابايت.
  • الشبكة: بيانات غير محدودة أو اتصال غير محدود

تُطبَّق هذه المتطلبات عليك في عملية التطوير وعلى المستخدمين الذين يعملون باستخدام الميزات التي تنشئها.

تنزيل النموذج

تستخدِم واجهة برمجة التطبيقات Summarizer API نموذجًا تم تدريبه لإنشاء عناوين ومقتطفات عالية الجودة. واجهة برمجة التطبيقات مدمجة في Chrome، وGemini Nano هو النموذج الذي يتم تنزيله في المرة الأولى التي يستخدم فيها موقع إلكتروني واجهة برمجة التطبيقات هذه.

لتحديد ما إذا كان النموذج جاهزًا للاستخدام، استخدِم الدالة غير المتزامنة Summarizer.availability(). ويُرجِع وعدًا بالقيمة التالية:

  • يشير الرمز "unavailable" إلى أنّ عملية التنفيذ لا تتيح الخيارات المطلوبة.
  • يشير الرمز "downloadable" إلى أنّ عملية التنفيذ تتيح الخيارات المطلوبة، ولكن على المتصفّح أولاً تنزيل عنصر معيّن، مثل نموذج (في Chrome، يُشار إليه باسم 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}%`);
    });
  }
});

وظائف واجهة برمجة التطبيقات

تتيح لك الدالة create() ضبط عنصر تلخيصي جديد لتلبية احتياجاتك. تأخذ هذه الدالة كائن options اختياريًا بالمَعلمات التالية:

  • sharedContext: سياق مشترَك إضافي يمكن أن يساعد أداة التلخيص
  • type: نوع التلخيص، مع القيم المسموح بها key-points (تلقائي) وtldr وteaser وheadline. اطّلِع على الجدول التالي للحصول على التفاصيل.
  • format: تنسيق الملخص، مع القيم المسموح بها markdown (تلقائي) وplain-text
  • length: مدة التلخيص، مع القيم المسموح بها short medium (التلقائية) وlong. تختلف معاني هذه الأطوال استنادًا إلى type المطلوبة. على سبيل المثال، في عملية التنفيذ في Chrome، يتألف الملخّص المختصر للنقاط الرئيسية من ثلاث نقاط مميزة، ويتكون الملخّص القصير من جملة واحدة.

بعد ضبط المَعلمات، لا يمكن تغييرها. أنشئ عنصرًا جديدًا للملخّص إذا كنت بحاجة إلى إجراء تعديلات على المَعلمات.

يوضّح الجدول التالي الأنواع المختلفة للملخّصات ومدتها المقابلة. تمثّل الأطوال الحد الأقصى للقيمة الممكنة، لأنّه في بعض الأحيان، يمكن أن تكون النتائج أقصر.

النوع المعنى الطول
"tldr" يجب أن يكون الملخّص قصيرًا ومباشرًا، وأن يقدّم نظرة عامة سريعة على الإدخال، وأن يكون مناسبًا للقارئ المشغول.
فيديو قصير جملة واحدة
متوسط 3 جمل
طويلة 5 جمل
"teaser" يجب أن يركز الملخّص على الأجزاء الأكثر إثارة للاهتمام أو تشويقًا في مدخلات المستخدمين، وأن يكون مصمّمًا لجذب القارئ إلى قراءة المزيد.
فيديو قصير جملة واحدة
متوسط 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.',
});

تلخيص البث

توفّر ميزة التلخيص في البث النتائج في الوقت الفعلي. يتم تعديل الإخراج باستمرار عند إضافة الإدخال وتعديله. للحصول على ملخّص البث، يُرجى الاتصال برقم 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 لضمان التوافق مع جميع المتصفحات.

تلقّى اقتراحنا لواجهة برمجة التطبيقات دعمًا من المنتدى وتم نقله إلى مجموعة منتدى Web Incubator في W3C لإجراء مزيد من المناقشة. طلب فريق Chrome ملاحظات من مجموعة الهندسة المعمارية التقنية في W3C، وسأل Mozilla وWebKit عن مواقفهما بشأن المعايير.

يمكنك المشاركة في جهود وضع المعايير من خلال الانضمام إلى مجموعة منتدى Web Incubator.

مشاركة الملاحظات

نريد الاطّلاع على التطبيقات التي تنشئها باستخدام Summarizer API. يمكنك مشاركة مواقعك الإلكترونية وتطبيقاتك على الويب معنا على X و YouTube و LinkedIn.

لإرسال ملاحظات حول عملية تنفيذ Chrome، يُرجى إرسال تقرير خطأ أو طلب ميزة.