تاريخ النشر: 11 نوفمبر 2024، تاريخ آخر تعديل: 20 مايو 2025
شرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
MDN | العرض | Intent to Ship |
يمكنك أن تتيح للمستخدمين تلخيص المقالات الطويلة أو المستندات المعقّدة أو حتى محادثات الدردشة النشطة في ملخّصات موجزة ومفيدة.
يمكن استخدام واجهة برمجة التطبيقات Summarizer API لإنشاء أنواع مختلفة من الملخّصات بأطوال وتنسيقات متنوعة، مثل الجُمل والفقرات وقوائم النقاط وغيرها. نعتقد أنّ واجهة برمجة التطبيقات هذه مفيدة في الحالات التالية:
- تلخيص النقاط الرئيسية في مقالة أو محادثة
- اقتراح عناوين رئيسية وفرعية للمقالات
- إنشاء ملخّص موجز وغني بالمعلومات لنص طويل
- إنشاء مقطع تشويقي لكتاب استنادًا إلى مراجعة كتاب
البدء
تتوفّر واجهة برمجة التطبيقات Summarizer API من الإصدار الثابت 138 من Chrome.
قبل استخدام واجهة برمجة التطبيقات هذه، يجب الإقرار بسياسة الاستخدام المحظور للذكاء الاصطناعي التوليدي من Google.
نفِّذ عملية رصد الميزات لمعرفة ما إذا كان المتصفّح يتيح استخدام واجهة برمجة التطبيقات Summarizer API.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
مراجعة متطلبات الأجهزة
في ما يلي المتطلبات التي يجب استيفاؤها من قِبل المطوّرين والمستخدمين الذين يشغّلون الميزات باستخدام واجهات برمجة التطبيقات هذه في Chrome. قد تتطلّب المتصفّحات الأخرى متطلبات تشغيل مختلفة.
تعمل واجهتا برمجة التطبيقات Language Detector وTranslator في متصفّح Chrome على أجهزة الكمبيوتر المكتبي. ولا تعمل واجهات برمجة التطبيقات هذه على الأجهزة الجوّالة. تعمل واجهات برمجة التطبيقات Prompt API وSummarizer API وWriter API وRewriter API في Chrome عند استيفاء الشروط التالية:
- نظام التشغيل: Windows 10 أو 11 أو macOS 13 (Ventura والإصدارات الأحدث) أو Linux لا تتوافق واجهات برمجة التطبيقات التي تستخدم Gemini Nano مع متصفّح Chrome على أجهزة Android وiOS وChromeOS حتى الآن.
- مساحة التخزين: يجب توفُّر مساحة فارغة لا تقل عن 22 غيغابايت على وحدة التخزين التي تحتوي على ملفك الشخصي على Chrome.
- وحدة معالجة الرسومات (GPU): يجب أن تكون ذاكرة الوصول العشوائي للفيديو (VRAM) أكبر من 4 غيغابايت.
- الشبكة: بيانات غير محدودة أو اتصال غير محدود.
قد يختلف حجم Gemini Nano الدقيق مع تحديث المتصفّح للنموذج. لتحديد الحجم الحالي، انتقِل إلى chrome://on-device-internals
ثم إلى حالة النموذج. افتح مسار الملف المُدرَج لتحديد حجم النموذج.
تنزيل النموذج
تستخدم واجهة برمجة التطبيقات 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" |
يجب أن يكون الملخّص قصيرًا وموجزًا، وأن يقدّم نظرة عامة سريعة على المدخلات، ما يجعله مناسبًا للقارئ المشغول. |
|
||||||
"teaser" |
يجب أن يركّز الملخّص على الأجزاء الأكثر إثارة للاهتمام أو التشويق في المحتوى المقدَّم، وذلك بهدف جذب القارئ إلى قراءة المزيد. |
|
||||||
"key-points" |
يجب أن يستخرج الملخّص أهم النقاط من النص المدخل، ويقدّمها على شكل قائمة نقطية. |
|
||||||
"headline" |
يجب أن يتضمّن الملخّص النقطة الرئيسية للمدخل في جملة واحدة، بتنسيق عنوان مقالة. |
|
يوضّح المثال التالي كيفية تهيئة أداة التلخيص.
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;
}
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.',
});
تلخيص البث
توفّر ميزة تلخيص البث النتائج في الوقت الفعلي.
يتم تعديل الناتج باستمرار عند إضافة المدخلات وتعديلها. للحصول على ملخّص
للبث، اتّصِل بـ 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.
الجهد المطلوب لتوحيد المقاييس
نعمل على توحيد معايير واجهة برمجة التطبيقات Summarizer API لضمان التوافق مع جميع المتصفحات.
لقد حظي اقتراح واجهة برمجة التطبيقات بدعم من المنتدى، وتم نقله إلى مجموعة W3C Web Incubator Community Group لمناقشته بشكل أكبر. طلب فريق Chrome الحصول على ملاحظات من فريق البنية التقنية في W3C، وطلب من Mozilla وWebKit توضيح مواقفهما بشأن المعايير.
يمكنك المشاركة في جهود وضع المعايير من خلال الانضمام إلى مجموعة Web Incubator Community Group.
مشاركة الملاحظات
نريد أن نرى ما يمكنك إنشاؤه باستخدام واجهة برمجة التطبيقات Summarizer API. يمكنك مشاركة مواقعك الإلكترونية وتطبيقات الويب معنا على X وYouTube وLinkedIn.
لإرسال ملاحظات حول طريقة تنفيذ Chrome لهذه الميزة، يمكنك تقديم تقرير عن خطأ أو طلب ميزة.