تاريخ النشر: 15 أيار (مايو) 2025
يعتمد الجمهور على ناشري الأخبار لإعلامهم بالأحداث المحلية والوطنية والدولية، بالإضافة إلى مشاركة وجهات نظرهم المدروسة. في السياق السريع الذي نعيشه اليوم، تشكّل ملخّصات المقالات استراتيجية رئيسية لتكثيف المَعلومات المعقدة في مقتطفات يسهل فهمها، ما يشجّع القرّاء على الاطّلاع على المزيد من المعلومات. تعرَّف على كيفية تعامل Bright Sites وTerra مع هذه الاستراتيجية باستخدام واجهة برمجة التطبيقات Summarizer API.
الشرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
MDN | العرض | Intent to Ship (نية الشحن) |
تتيح لك واجهة برمجة التطبيقات Summarizer API إنشاء أنواع مختلفة من الملخصات بأشكال وطول مختلفَين، مثل الجمل والفقرات قوائم النقاط المميّزة وغير ذلك. تستخدم واجهة برمجة التطبيقات هذه، مثل العديد من واجهات برمجة التطبيقات المُدمَجة المستنِدة إلى الذكاء الاصطناعي، نماذج لغوية كبيرة لإجراء استنتاج. في Chrome، يكون النموذج هو Gemini Nano.
تضيف Bright Sites ملخصات مقالات مخصّصة إلى The Standard
Flow هي منصة رائدة لنشر الأخبار في Bright Sites، وتوفّر خدماتها لأكثر من 150 ناشرًا. من خلال دمج Summarizer API في نظام إدارة المحتوى المستنِد إلى الذكاء الاصطناعي، تتيح شركة Bright Sites لصحيفة The Standard، وهي العلامة التجارية المميّزة للأخبار في لندن، تقديم ملخّصات مخصّصة للمقالات لقرائها. يشجع ذلك المستخدمين على التفاعل مع المقالات وإعادة الاطّلاع على مقالات أخرى على The Standard.
"إنّ العمل مع النماذج المتطوّرة من Gemini في Chrome يجمع بين 198 عامًا من خبرة The Standard في إطلاع القراء على آخر الأخبار مع الابتكارات التقنية الجديدة لجمهورنا المشغول الذي يقدّر الحصول على الأخبار الموثوقة بسهولة. إنّ السماح للقارئين بالاطّلاع بسرعة على الأخبار باستخدام الملخصات المُنشأة على أجهزتهم الخاصة هو مجرد إحدى الطرق التي نعيد من خلالها ابتكار The Standard وننشئ منتجات جديدة تركّز على القارئ استنادًا إلى عاداته الرقمية".
— جاك رايلي، رئيس قسم التسويق الرقمي، The Standard
من خلال توفير ميزة التلخيص المستندة إلى الذكاء الاصطناعي من جهة العميل، تمكّنت The Standard من إنشاء عناوين ومقتطفات مخصّصة بدون تكبد أي تكلفة إضافية لنشاطها التجاري. من خلال إجراء ذلك من جهة العميل، باستخدام نقاط بيانات مثل نمط الملخّص أو الموقع الجغرافي، يمكن للمستخدمين مواصلة القراءة حتى في حال فقدان الاتصال بالإنترنت. ويحدث ذلك بشكلٍ متكرّر لكثير من المستخدمين الذين يسافرون في مترو لندن باستخدام أجهزة الكمبيوتر المحمول.
أولاً، يتحققون من توفّر النموذج وواجهة برمجة التطبيقات ومدى توافقهما مع الجهاز.
// Check if the device supports built-in AI
// Trigger the model download if not yet available, on capable devices
export const deviceCheck = async () => {
const availability = await Summarizer.availability();
if (!availability || availability === 'unavailable') {
return {
summarizationAvailable: false,
message:
"AI summarization tools are not supported on this device" +
"or the appropriate permissions are not set.",
}
}
if (availability === 'downloadable') {
const shouldDownload = window.confirm(
`This page contains an AI summary, using an AI model provided by your
browser. Downloading the model, which could be multiple gigabytes in size,
is required to view the summary. Would you like to download the model?`);
if (!shouldDownload) {
return {
summarizationAvailable: false,
message: "User declined installation.",
}
}
// Trigger an installation
Summarizer.create();
return {
summarizationAvailable: false,
message: "Installing in the background. This may take a few minutes...",
}
}
if (availability === 'available') {
return {
summarizationAvailable: true,
message: "Ready for use.",
}
}
}
تحدِّد الدالة التالية أداة تلخيص عامة يمكنها في المستقبل استخدام نموذج آخر على الجهاز أو نموذج من جهة الخادم.
/**
* Define the summarizer.
**/
export const aiSummarize = async (textToSummarize, options) => {
const availableSummarizationTools = getAvailableAiSummarizationTools()
if (availableSummarizationTools.has('builtInAi') && options?.builtInAI) {
// Generate the built-in AI summarizer and abort signal
const summarizer = await createBuiltInAISummarizer(options.builtInAi.options)
return await summarizer.summarize(textToSummarize, {
signal: options.builtInAi.signal,
})
}
throw new Error(
'AI summarization tools are not supported on this device or browser.',
)
}
يخزّن تنسيق Standard الإعدادات المفضّلة للملخّص لدى القرّاء في IndexedDB لتقديم ملخّص مخصّص.
/**
* Log preferences in IndexDB for personalization
**/
abortController.current = new AbortController()
const preferencesDB = new PreferencesDB()
const summarization = await aiSummarize(articleContent, {
clientSideAI: {
options: await preferencesDB.getCreatesummarizerPreferences(),
signal: abortController.current.signal,
},
})
توفّر Terra للصحفيين ملخّصًا قابلاً للتعديل للمقالات باللغة البرتغالية.
Terra هي إحدى أكبر بوابات المحتوى في البرازيل، وتقدّم محتوى ترفيهيًا وإخباريًا ورياضيًا، ويزورها أكثر من 50 مليون زائر فريد شهريًا. أضافت شركة Terra واجهتَي برمجة التطبيقات Summarizer API وTranslator API إلى نظام إدارة المحتوى (CMS) الخاص بها لمساعدة الصحفيين في تلخيص الأخبار باللغة البرتغالية على الفور. يمكن للصحفيين بعد ذلك إجراء بعض التعديلات لأغراض متعلقة بالأسلوب أو الدقة ونشر الملخّص الذي تم إنشاؤه بشكلٍ مشترَك، ما يجعله متاحًا بسهولة لجميع القرّاء.
على الرغم من أنّ نظام إدارة المحتوى في Terra يستخدم حاليًا نموذج تعلم متقدّمًا من جهة الخادم، استكشَف الفريق استخدام الذكاء الاصطناعي من جهة العميل كأسلوب متميز يقدّم فوائد جديدة محتملة. تبيّن لهم أنّ Summarizer API وGemini Nano في Chrome يقدّمان جودة مماثلة لتنفيذها من جهة الخادم. أسفر الحلّ من جهة العميل عن تسجيل نتائج إيجابية عند استخدامه مع Translator API.
اعتمدت Terra ميزة الذكاء الاصطناعي المدمَجة في Chrome بسبب المزايا الرئيسية التي توفّرها. وفّرت تكنولوجيات الذكاء الاصطناعي من جهة العميل وفورات في التكلفة وحوكمة بيانات مبسّطة. على الرغم من أنّ الفريق واجه بعض التحديات، لا سيما في ما يتعلّق بإدارة القيود المفروضة على نافذة المحتوى باستخدام Summarizer API، تمكّن من التغلب عليها من خلال اتّباع ممارسات تنفيذ دقيقة.
في البداية، واجهت Terra تحديات في تحديد أنواع الملخصات والسياق المشترَك المناسبَين على أفضل وجه لتلبية احتياجاتها. ومن خلال التجربة، اكتشفوا أنّ الملخصات الواضحة والمفيدة باللغة الإنجليزية كانت ضرورية لإنتاج ناتج مماثل بالجودة باللغة البرتغالية باستخدام Translator API. كان مجال عمل الذكاء الاصطناعي المضمّن مفيدًا في التغلب على هذه التحديات، إذ تمكّنت Terra من اختبار أفكارها بسرعة بدون إعادة صياغة رمزها البرمجي في كل مرة.
يوضّح المثال التالي كيفية استدعاء Terra لواجهة برمجة التطبيقات Summarizer API و تنبيه المستخدمين عندما لا تكون متاحة.
async function summarizerByBuiltInAI(text) {
if (!(Summarizer)) {
//Alert users in Portuguese that "Summarizer API is not available"
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
try {
const availability = await Summarizer.availability();
if (availability !== 'available') {
cms_alert(ALERT_TYPE_ERROR, "Summarizer API não está disponível.")
return null
}
const summaryContext = "Avoid jargon, use correct grammar, focus on clarity," +
"and ensure the user can grasp the articles purpose," +
"without needing to open the original content.";
const options = {
sharedContext: summaryContext,
type: 'teaser',
format: 'plain-text',
length: 'long',
}
if (availability === 'available') {
const summarizer = await Summarizer.create(options);
return await summarizer.summarize(text, {
context: summaryContext
})
}
// return the download of the Summarizer Model
if(availability === 'downloadable'){
return await Summarizer.create();
}
} catch (error) {
//EN: "Error using the Summarizer API"
cms_alert(ALERT_TYPE_ERROR, "Erro ao usar o Summarizer API.");
console.error("Erro ao usar o Summarizer API:", error);
return null
}
}
بالإضافة إلى ذلك، استخدمت Terra أداة التلخيص مع Translator API، لترجمة عنوان المقالة الأصلية باللغة البرتغالية والعنوان الفرعي والنص الأساسي إلى اللغة الإنجليزية. تعالج واجهة برمجة التطبيقات Summarizer API هذه النسخة المترجَمة لإنشاء الملخّص، ثم تتم ترجمتها مرة أخرى إلى البرتغالية. يضمن ذلك حصول المستخدم على المحتوى الملخّص بلغة التطبيق.
async function translateTextByBuiltInAI(text, sourceLanguage, targetLanguage) {
if (!('translation' in self && 'createTranslator' in self.translation)) {
return null
}
try {
const translator = await Translator.create({
sourceLanguage,
targetLanguage,
})
return await translator.translate(text)
} catch (error) {
throw error
}
}
const text = `Title: ${contentTitle};\n\n Sub-title: ${contentSubtitle};\n\n Article content: ${plainText}.`;
const canTranslate = await Translator.availability({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
if (canTranslate !== 'available') {
if (canTranslate === 'downloadable') {
try {
await Translator.create({
sourceLanguage: 'pt',
targetLanguage: 'en',
})
//EN: "Language download completed successfully."
cms_alert(ALERT_TYPE_OK, "Download do idioma concluído com sucesso.");
} catch (downloadError) {
//EN: "Error downloading the language required for translation."
cms_alert(ALERT_TYPE_ERROR, "Erro ao realizar download do idioma necessário para tradução.");
return
}
} else {
//EN: "Translation is not available or not ready."
cms_alert(ALERT_TYPE_ERROR, "A tradução não está disponível ou não está pronta.");
return
}
}
const translatedText = await translateTextByBuiltInAI(text, 'pt', 'en')
const summarizedText = await summarizerByBuiltInAI(translatedText)
const translatedBackText = await translateTextByBuiltInAI(summarizedText, 'en', 'pt')
يُظهر دمج Terra الناجح لواجهات برمجة تطبيقات الذكاء الاصطناعي المدمجة إمكانات الذكاء الاصطناعي من جهة العميل الكبيرة لتحسين سير عمل إدارة المحتوى. من خلال استخدام واجهتَي برمجة التطبيقات Summarizer وTranslator، تمكّنت Terra من مساعدة الصحفيين لديها وتحسين الكفاءة، كما أصبحت في وضع جيد لتقديم تجارب محسّنة للمستخدمين على جميع المنصات.
أفضل الممارسات
إذا تجاوزت بيانات المراجعة الحد الأقصى للرمز المميّز، اتّبِع الإجراءات التالية للحدّ من هذا الخطأ:
- استخدِم عيّنة أصغر (مثل آخر 4 مراجعات) في واجهة برمجة التطبيقات. ويساعد ذلك في توليد نتائج أسرع. يُرجى الرجوع إلى إرشاداتنا حول توسيع نطاق استخدام ميزة "التلخيص من جهة العميل".
- يوفّر
QuotaExceededError
مزيدًا من المعلومات عن الرموز المميّزة المطلوبة في الإدخال. يحتوي عنصرsummarizer
على سمةinputQuota
التي تشير إلى الحد الأقصى للرمز المميّز لواجهة برمجة التطبيقات. يتيح ذلك تقديم ملاحظات في الوقت الفعلي و إيقاف الوظيفة إذا تجاوز الإدخال الحدّ الأقصى.
ننصحك باستخدام نهج مختلط لضمان توفير تجربة سلسة لجميع المستخدمين. في المرة الأولى التي يتم فيها استدعاء واجهة برمجة تطبيقات الذكاء الاصطناعي المضمّنة، يجب أن يقوم المتصفّح بتنزيل النموذج.
- استخدمت Miravia نموذجًا من جهة الخادم لتقديم ملخّص أوّلي أثناء تنزيل النموذج. بعد أن أصبح النموذج المضمّن جاهزًا، غيّر الموقع الإلكتروني الاستنتاج إلى جهة العميل.
يجب دائمًا أن تسعى جاهدًا لإنشاء واجهة ودية وسهلة الاستخدام:
- أدرِج شريط تقدّم لعمليات تنزيل النماذج والحدّ من تأخّر ظهور الردود.
- يجب أن تكون شفافيًا بشأن تنزيل النماذج. أرسلت Bright Sites إشعارًا إلى المستخدمين بشأن تنزيل النموذج للسماح بالشفافية والحصول على موافقة بشأن استخدام مواردهم. بهذه الطريقة، يمكن للمستخدمين الموافقة أو الرفض قبل المتابعة.
الاستنتاجات والاقتراحات
توضّح أمثلة Bright Sites وTerra قيمة Summarizer API في تحسين إمكانية وصول المستخدمين إلى المحتوى وتفاعلهم معه. ومن خلال استخدام واجهة برمجة التطبيقات هذه من جهة العميل، تحسّنت تجربة القراءة والتخصيص على هذه المنصات بدون تكلفة إضافية على النشاط التجاري وبإدارة بيانات مبسّطة. تمامًا مثل Summarizer API، توفّر جميع واجهات برمجة تطبيقات الذكاء الاصطناعي المدمجة إمكانية استخدام الذكاء الاصطناعي على مستوى العميل.
هل لديك سؤال عن كيفية مساعدة Summarizer API في حالات الاستخدام الأخرى؟ لقد شاركنا أيضًا كيفية مساعدة واجهة برمجة التطبيقات Summarizer في إنشاء ملخّصات مفيدة لمراجعات المستخدمين من قِبل redBus وMiravia.
هل تنشئ شيئًا جديدًا باستخدام واجهات برمجة التطبيقات هذه؟ يمكنك مشاركتها معنا على الرابط التالي: @ChromiumDev on X أو Chromium for Developers on LinkedIn.
الموارد
- مزيد من المعلومات حول Summarizer API
- بدء استخدام واجهات برمجة التطبيقات المدمَجة على Chrome
- يمكنك الاطّلاع على دراسة حالة Prompt API حول تمكين المدوّنين.
- اطّلِع على دراسة حالة "الترجمة وبرنامج رصد اللغة".
- اطّلِع على كيفية مساعدة Summarizer API في إنشاء redBus وMiravia لملخّصات مفيدة لمراجعات المستخدمين.
الشكر والتقدير
نشكر غيلمار موسر و فيرناندو فيشر من Terra، ألين سوزا من CWI، برايان ألفورد، كيفال باتيل، جاك رايلي و فريق المهندسين في Brightsites، سويتا غوبالكريشنان، أليكساندرا كلبر، توماس شتاينر و كينجي باهوكس على المساعدة في كتابة ومراجعة هذا المستند.