تاريخ النشر: 12 مارس 2025، تاريخ آخر تعديل: 28 مايو 2025
| شرح مفصّل | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
|---|---|---|---|---|
| MDN | العرض | النيّة بالشحن |
تساعدك Summarizer API في إنشاء ملخّصات لـ المعلومات بأطوال وتنسيقات مختلفة. يمكنك استخدامها مع النموذج الأساسي في Chrome أو نماذج لغوية أخرى مضمّنة في المتصفّحات لشرح النصوص الطويلة أو المعقّدة بإيجاز.
عند تنفيذها من جهة العميل، يمكنك العمل مع البيانات محليًا، ما يتيح لك الحفاظ على أمان البيانات الحسّاسة وتوفيرها على نطاق واسع. ومع ذلك، تكون قدرة الاستيعاب أصغر بكثير مما هي عليه في النماذج من جهة الخادم، ما يعني أنّه قد يكون من الصعب تلخيص المستندات الكبيرة جدًا. لحلّ هذه المشكلة، يمكنك استخدام أسلوب ملخّص الملخّصات.
ما هو ملخّص الملخّصات؟
لاستخدام أسلوب ملخّص الملخّصات، قسِّم المحتوى المُدخَل عند النقاط الرئيسية، ثمّ لخص كل جزء على حدة. يمكنك ربط النتائج من كل جزء، ثمّ تلخيص هذا النص المرتبط في ملخّص نهائي واحد.
قسِّم المحتوى بعناية
من المهم أن تأخذ في الاعتبار كيفية تقسيم جزء كبير من النص، لأنّ الاستراتيجيات المختلفة يمكن أن تؤدي إلى نتائج مختلفة في النماذج اللغوية الكبيرة. من المفضّل تقسيم النص عند تغيير الموضوع، مثل قسم جديد من مقالة أو فقرة. من المهم تجنُّب تقسيم النص في منتصف كلمة أو جملة، ما يعني أنّه لا يمكنك استخدام عدد الأحرف كإرشادات التقسيم الوحيدة.
هناك طرق عديدة يمكنك اتّباعها لإجراء ذلك. في المثال التالي، استخدمنا أداة Recursive Text Splitter من LangChain.js، التي تحقّق توازنًا بين الأداء و جودة النتائج. من المفترض أن تعمل هذه الأداة مع معظم أحمال العمل.
عند إنشاء مثيل جديد، هناك مَعلمتان رئيسيتان:
chunkSizeهو الحد الأقصى لعدد الأحرف المسموح بها في كل جزء.chunkOverlapهو عدد الأحرف التي يجب أن تتداخل بين جزأين متتاليَين. يضمن ذلك احتواء كل جزء على بعض السياق من الجزء السابق.
قسِّم النص باستخدام splitText() لعرض مصفوفة من السلاسل النصية مع كل جزء.
تعرض معظم النماذج اللغوية الكبيرة قدرة الاستيعاب على شكل عدد من الرموز المميّزة، وليس عددًا من الأحرف. في المتوسط، يحتوي الرمز المميّز على 4 أحرف. في مثالنا، يبلغ chunkSize 3000 حرف، أي ما يعادل 750 رمزًا مميّزًا تقريبًا.
تحديد مدى توفّر الرموز المميّزة
لتحديد عدد الرموز المميّزة المتاحة للاستخدام في الإدخال، استخدِم الـ
measureInputUsage()
الطريقة والـinputQuota
السمة. في هذه الحالة، يكون التنفيذ غير محدود، لأنّه لا يمكنك معرفة عدد المرات التي سيتم فيها تشغيل أداة التلخيص لمعالجة كل النص.
إنشاء ملخّصات لكل جزء
بعد إعداد كيفية تقسيم المحتوى، يمكنك إنشاء ملخّصات لكل جزء باستخدام Summarizer API.
أنشئ مثيلاً لأداة التلخيص باستخدام الدالة
create(). للحفاظ على أكبر قدر ممكن من
السياق، ضبطنا المَعلمة format على plain-text، type
على tldr،
وlength على long.
بعد ذلك، أنشئ الملخّص لكل جزء تم إنشاؤه بواسطة RecursiveCharacterTextSplitter واربط النتائج في سلسلة نصية جديدة.
فصلنا كل ملخّص بسطر جديد لتحديد الملخّص لكل جزء بوضوح.
على الرغم من أنّ هذا السطر الجديد لا يهم عند تنفيذ هذه الحلقة مرة واحدة فقط، فإنّه مفيد لتحديد كيفية إضافة كل ملخّص إلى قيمة الرموز المميّزة للملخّص النهائي. في معظم الحالات، من المفترض أن ينجح هذا الحلّ مع المحتوى المتوسّط والطويل.
ملخّص الملخّصات المتكرّر
عندما يكون لديك نص طويل جدًا، قد يكون طول الملخّص المرتبط أكبر من قدرة الاستيعاب المتاحة، ما يؤدي إلى تعذُّر التلخيص. لمعالجة هذه المشكلة، يمكنك تلخيص الملخّصات بشكل متكرّر.
ما زلنا نجمع عمليات التقسيم الأولية التي تم إنشاؤها بواسطة RecursiveCharacterTextSplitter. بعد ذلك، في الدالة recursiveSummarizer()، نكرّر عملية التلخيص استنادًا إلى طول الأحرف في عمليات التقسيم المرتبطة. إذا كان طول الأحرف في الملخّصات يتجاوز 3000، فإنّنا نربطها في fullSummaries. إذا لم يتم بلوغ الحدّ، يتم حفظ الملخّص باسم partialSummaries.
بعد إنشاء جميع الملخّصات، تتم إضافة الملخّصات الجزئية النهائية إلى الملخّص الكامل. إذا كان هناك ملخّص واحد فقط في fullSummaries، لا تكون هناك حاجة إلى التكرار الإضافي. تعرض الدالة ملخّصًا نهائيًا. إذا كان هناك أكثر من ملخّص واحد، تكرّر الدالة وتواصل تلخيص الملخّصات الجزئية.
اختبرنا هذا الحلّ باستخدام RFC الخاص ببروتوكول Internet Relay Chat (IRC)، الذي يحتوي على 110,030 حرفًا مذهلاً تتضمّن 17,560 كلمة. قدّمت Summarizer API الملخّص التالي:
بروتوكول Internet Relay Chat (IRC) هو طريقة للتواصل على الإنترنت في الوقت الفعلي باستخدام الرسائل النصية. يمكنك الدردشة في القنوات أو إرسال رسائل خاصة، ويمكنك استخدام الأوامر للتحكّم في المحادثة والتفاعل مع الخادم. إنّه أشبه بغرفة دردشة على الإنترنت يمكنك فيها كتابة الرسائل ورؤية رسائل الآخرين على الفور.
هذا فعّال جدًا! ويحتوي على 309 أحرف فقط.
القيود
يساعدك أسلوب ملخّص الملخّصات في العمل ضمن قدرة الاستيعاب لنموذج من جهة العميل. على الرغم من أنّ الذكاء الاصطناعي من جهة العميل يقدّم العديد من المزايا، قد تواجه ما يلي:
- ملخّصات أقل دقة: مع التكرار، قد يكون تكرار عملية التلخيص غير محدود، ويكون كل ملخّص أبعد عن النص الأصلي. يعني ذلك أنّ النموذج قد ينشئ ملخّصًا نهائيًا سطحيًا جدًا بحيث لا يكون مفيدًا.
- أداء أبطأ: يستغرق إنشاء كل ملخّص وقتًا. مرة أخرى، مع عدد غير محدود من الملخّصات المحتملة في النصوص الأكبر، قد يستغرق هذا الأسلوب عدة دقائق للانتهاء.
يتوفّر لدينا عرض توضيحي لأداة التلخيص ، ويمكنك الاطّلاع على رمز المصدر الكامل.
مشاركة ملاحظاتك
حاوِل استخدام أسلوب ملخّص الملخّصات مع أطوال مختلفة من النص المُدخَل وأحجام تقسيم مختلفة وأطوال تداخل مختلفة باستخدام الـ Summarizer API.
- لإرسال ملاحظات حول تنفيذ Chrome، يمكنك تسجيل تقرير عن خطأ أو طلب ميزة.
- قراءة المستندات على MDN
- التحدّث مع فريق الذكاء الاصطناعي في Chrome عن عملية التلخيص أو أي أسئلة أخرى حول الذكاء الاصطناعي المضمّن