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