تاريخ النشر: 11 تشرين الثاني (نوفمبر) 2024، تاريخ آخر تعديل: 1 أيار (مايو) 2025
الشرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
Github | العرض | الهدف من التجربة |
تخيل أنّه بإمكانك منح المستخدمين إمكانية تحويل المقالات الطويلة أو المستندات المعقدة أو حتى محادثات المحادثة الحية إلى عناوين موجزة ومفيدة.
يمكن استخدام واجهة برمجة التطبيقات Summarizer API لإنشاء أنواع مختلفة من الملخصات بأشكال وطول مختلفَين، مثل الجمل والفقرات وقوائم النقاط المميّزة وغيرها. نعتقد أنّ واجهة برمجة التطبيقات هذه مفيدة في الحالات التالية:
- تلخيص النقاط الرئيسية لمقالة أو محادثة
- اقتراح عناوين رئيسية وعناوين فرعية للمقالات
- إنشاء ملخّص موجز ومفيد لنص طويل
- إنشاء إعلان تشويقي لكتاب استنادًا إلى مراجعة كتاب
البدء
يمكنك الانضمام إلى مرحلة التجربة والتقييم لواجهة برمجة التطبيقات Summarizer API، التي تعمل من الإصدار 131 من Chrome إلى الإصدار 139. تتيح لك الإصدارات التجريبية من المصدر تقديم الميزة للمستخدمين الفعليين على مصدرك في Chrome.
الاشتراك في الفترة التجريبية للإصدار الأصلي
لبدء استخدام Summarizer API، اتّبِع الخطوات التالية:
- الموافقة على سياسة الاستخدامات المحظورة للذكاء الاصطناعي التوليدي من Google
- انتقِل إلى مرحلة التجربة والتقييم في Summarizer API.
- انقر على تسجيل واملأ النموذج.
- في حقل مصدر الويب، أدخِل
المصدر
أو معرّف الإضافة،
chrome-extension://YOUR_EXTENSION_ID
.
- في حقل مصدر الويب، أدخِل
المصدر
أو معرّف الإضافة،
- لإرسال الإضافة، انقر على تسجيل.
- انسخ الرمز المميّز المقدَّم وأضِفه إلى كل صفحة ويب على مصدرك أوملف الإضافة الذي تريد تفعيل الفترة التجريبية عليه.
- إذا كنت بصدد إنشاء إضافة، اتّبِع تعليمات الفترة التجريبية لمصدر الإضافات.
- ابدأ باستخدام واجهة برمجة التطبيقات Summarizer API.
مزيد من المعلومات حول كيفية بدء استخدام ميزة "الإصدارات التجريبية من المصدر"
القيود خلال الفترة التجريبية للموقع المصدر
خلال مرحلة التجربة والتقييم، لا تتيح Summarizer API تلخيص سوى النصوص باللغة الإنجليزية، لأنّه لم يتم اختبار جودة النموذج بدقة إلا على محتوى باللغة الإنجليزية. وننوي رفع هذا القيد بعد اختبار مزيد من اللغات للتأكّد من جودتها وأمانها، وتوفير واجهة برمجة التطبيقات على نطاق واسع.
إضافة إمكانية الوصول إلى الخادم المحلي
للوصول إلى Summarizer API على localhost
أثناء مرحلة التجربة والتقييم، يجب
تثبيت Chrome Canary. بعد ذلك، اتّبِع الخطوات التالية:
- الانتقال إلى
chrome://flags/#summarization-api-for-gemini-nano
- اختَر مفعّل.
- انقر على إعادة التشغيل أو أعِد تشغيل Chrome.
استخدام Summarizer API
أولاً، عليك تنفيذ ميزة رصد المحتوى لمعرفة ما إذا كان المتصفّح متوافقًا مع واجهة برمجة التطبيقات Summarizer API.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
تنزيل النموذج
تستخدِم واجهة برمجة التطبيقات Summarizer API نموذجًا تم تدريبه لإنشاء عناوين ومقتطفات عالية الجودة. على الرغم من أنّ واجهة برمجة التطبيقات مدمجة في Chrome، يتم تنزيل النموذج بشكل منفصل في المرة الأولى التي يستخدم فيها موقع إلكتروني واجهة برمجة التطبيقات.
لتحديد ما إذا كان النموذج جاهزًا للاستخدام، استخدِم الدالة غير المتزامنة
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
(تلقائي) وtl;dr
وteaser
وheadline
. اطّلِع على الجدول التالي للحصول على التفاصيل. format
: تنسيق الملخص، مع القيم المسموح بهاmarkdown
(تلقائي) وplain-text
.-
length
: مدة التلخيص، مع القيم المسموح بهاshort
medium
(التلقائية) وlong
. تختلف معاني هذه الأطوال استنادًا إلىtype
المطلوبة. على سبيل المثال، في عملية التنفيذ في Chrome، يتألف الملخّص المختصر للنقاط الرئيسية من ثلاث نقاط مميزة، ويتكون الملخّص القصير من جملة واحدة.
يوضّح الجدول التالي الأنواع المختلفة للملخّصات ومقدار طولها. تمثّل الأطوال الحد الأقصى للقيمة الممكنة، لأنّه في بعض الأحيان، يمكن أن تكون النتائج أقصر.
النوع | المعنى | الطول | ||||||
---|---|---|---|---|---|---|---|---|
"tl;dr" |
يجب أن يكون الملخّص قصيرًا ومباشرًا، وأن يقدّم نظرة عامة سريعة على الإدخال، وأن يكون مناسبًا للقارئ المشغول. |
|
||||||
"teaser" |
يجب أن يركز الملخّص على الأجزاء الأكثر إثارة للاهتمام أو تشويقًا في مدخلات المستخدمين، وأن يكون مصمّمًا لجذب القارئ إلى قراءة المزيد. |
|
||||||
"key-points" |
يجب أن يستخرج الملخص أهم النقاط من الإدخال، ويعرضها في قائمة نقطية. |
|
||||||
"headline" |
يجب أن يتضمّن الملخص بفعالية الفكرة الرئيسية للنص في جملة واحدة بتنسيق عنوان المقالة. |
|
يوضّح المثال التالي كيفية إعداد أداة التلخيص.
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()
المخصّصة للملخّص. بعد ذلك، كرِّر المقاطع النصية المتاحة في البث.
let result = '';
let previousChunk = '';
for await (const chunk of stream) {
const newChunk = chunk.startsWith(previousChunk)
? chunk.slice(previousChunk.length) : chunk;
console.log(newChunk);
result += newChunk;
previousChunk = chunk;
}
console.log(result);
يعرض summarizeStreaming()
ReadableStream
، حيث تتراكم أقسام الردّ
تدرّجيًا على بعضها. وهذا يعني أنّ كلّ استجابة تحتوي على
الملخّص الكامل الذي تم إنشاؤه حتى تلك النقطة، وليس فقط الجزء التالي، وهو
ليس السلوك المقصود.
وننوي أن نتوافق مع واجهات برمجة تطبيقات البث الأخرى على المنصة، حيث تكون المقاطع هي أجزاء متتالية من بث واحد طويل. في الوقت الحالي، لتحقيق السلوك المقصود، يمكنك تنفيذ ما يلي:
let result = '';
let previousLength = 0;
for await (const segment of stream) {
const newContent = segment.slice(previousLength);
console.log(newContent);
previousLength = segment.length;
result += newContent;
}
console.log(result);
عرض توضيحي
يمكنك تجربة Summarizer API في Summarizer API Playground.
الجهد المبذول لتوحيد المقاييس
نحن نعمل على توحيد Summarizer API لضمان التوافق مع جميع المتصفحات.
تلقّى اقتراحنا لواجهة برمجة التطبيقات دعمًا من المجتمع، وتم نقله إلى مجموعة منتدى Web Incubator في W3C لإجراء مزيد من المناقشة. طلب فريق Chrome ملاحظات من مجموعة الهندسة المعمارية التقنية في W3C، وسأل Mozilla وWebKit عن مواقفهما بشأن المعايير.
المشاركة وتقديم الملاحظات
يمكنك بدء اختبار Summarizer API الآن من خلال الانضمام إلى الفترة التجريبية للإصدار الأصلي ومشاركة ملاحظاتك. يمكن أن تؤثّر ملاحظاتك بشكل مباشر في كيفية إنشاء الإصدارات المستقبلية من واجهة برمجة التطبيقات هذه و تنفيذها، بالإضافة إلى جميع واجهات برمجة التطبيقات المضمّنة للذكاء الاصطناعي.
- لإرسال ملاحظات حول عملية تنفيذ Chrome، يُرجى إرسال تقرير خطأ أو طلب ميزة.
- مناقشة تصميم Summarizer API على GitHub من خلال التعليق على مشكلة حالية أو فتح مشكلة جديدة
- يمكنك المشاركة في جهود وضع المعايير من خلال الانضمام إلى مجموعة منتدى Web Incubator.