Summarizer API, Bright Sites ve Terra'nın ilgi çekici makale özetleri oluşturmasına yardımcı olur

Mari Viana
Mari Viana

Yayınlanma tarihi: 15 Mayıs 2025

Kamuoyu, yerel, ulusal ve uluslararası etkinlikler hakkında bilgi edinmek ve düşünceli bakış açılarını öğrenmek için haber yayıncılarına güvenir. Günümüzün hızlı tempolu ortamında, makale özetleri karmaşık bilgileri erişilebilir snippet'lere dönüştürmek için kullanılan önemli bir stratejidir. Bu sayede okuyucular daha fazla bilgi edinmeye teşvik edilir. Bright Sites ve Terra'nın, Özetleyici API'yi kullanarak bu stratejiye nasıl yaklaştığını öğrenin.

AçıklayıcıWebUzantılar Chrome DurumuAmaç
MDN Chrome 138 Chrome 138 Görünüm Kargoya verme amacı

Summarizer API, cümleler, paragraflar ve madde işaretli listeler gibi çeşitli uzunluk ve biçimlerde farklı türlerde özetler oluşturmanıza olanak tanır. Bu API, yerleşik yapay zeka API'lerinin çoğu gibi çıkarım yapmak için büyük dil modellerini kullanır.

Bright Sites, The Standard'a kişiselleştirilmiş makale özetleri ekliyor

Bright Sites'ın önde gelen haber yayıncılığı platformu Flow, 150'den fazla yayına güç veriyor. Bright Sites, Summarizer API'yi yapay zeka destekli CMS'sine entegre ederek Londra'nın ikonik haber markası The Standard'ın okuyucularına makalelerin kişiselleştirilmiş özetlerini sunmasını sağlıyor. Bu özellik, kullanıcıları makalelerle etkileşime girmeye ve The Standard'daki diğer makalelere yönlendirmeye teşvik eder.

"Chrome'da Gemini'ın en yeni modelleriyle çalışmak, The Standard'ın 198 yıllık mirasını, okuyucularımızı bilgilendirme ve güvenilir gazeteciliğimizi parmaklarının ucunda bulundurmaya değer veren yoğun kitlemiz için yeni teknik yeniliklerle bir araya getiriyor. Okuyucuların kendi cihazlarında oluşturulan özetleri kullanarak haberleri hızlıca kontrol etmelerini sağlamak, The Standard'ı yeniden tasarladığımız ve dijital alışkanlıklarına uygun yeni okuyucu odaklı ürünler geliştirdiğimiz yöntemlerden yalnızca biridir."

Jack Riley, Baş Dijital Yönetici, The Standard

İstemci tarafında yapay zeka özetleme özelliği sunan The Standard, ek işletme maliyeti olmadan kişiselleştirilmiş özetler oluşturabildi. Özet stili veya konum gibi veri noktaları kullanılarak istemci tarafında yapılması, kullanıcıların internet erişimini kaybettiklerinde bile okumaya devam etmelerini sağlar. Bu durum, dizüstü bilgisayarıyla Londra metrosunda seyahat eden birçok kullanıcı için sıkça yaşanır.

Öncelikle modelin ve API'nin desteklenip desteklenmediğini ve kullanılabilirliğini kontrol ederler.

// 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.",
    }
  }
}

Aşağıdaki işlev, gelecekte cihaz üzerinde başka bir model veya sunucu tarafı modeli kullanabilecek genel bir özetleyici tanımlar.

/**
* 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, kişiselleştirilmiş özet sunmak için okuyucuların özet tercihini IndexedDB'de saklar.

/**
* 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, gazetecilere Portekizce makaleler için düzenlenebilir bir özet sunuyor

Terra, Brezilya'nın en büyük içerik portallarından biridir. Ayda 50 milyondan fazla tekil ziyaretçiye eğlence, haber ve spor içerikleri sunar. Terra, gazetecilerin Portekizce haberleri anında özetlemesine yardımcı olmak için içerik yönetim sistemine (İYS) Özetleyici API'sini ve Çeviri API'sini ekledi. Gazeteciler daha sonra stil veya doğruluk amacıyla birkaç düzenleme yapabilir ve ortaklaşa oluşturulan özeti yayınlayarak tüm okuyucuların kolayca erişebilmesini sağlayabilir.

Terra'nın İYS'si zaten sunucu tarafında bir LLM kullanıyor olsa da ekip, istemci tarafı yapay zekayı potansiyel yeni avantajlar sunan ayrı bir yaklaşım olarak değerlendirdi. Chrome'daki Summarizer API'nin, sunucu tarafındaki uygulamalarıyla karşılaştırılabilir kalitede olduğunu gördüler. İstemci tarafı çözümü, Translator API ile birlikte kullanıldığında olumlu sonuçlar verdi.

Terra, önemli avantajları nedeniyle Chrome'un yerleşik yapay zeka uygulamasını kullanmaya başladı. İstemci tarafı yapay zeka, maliyet tasarrufu sağladı ve veri yönetimini basitleştirdi. Ekip, özellikle Özetleyici API ile içerik penceresi sınırlamalarını yönetme konusunda bazı zorluklarla karşılaşsa da dikkatli uygulama yöntemleriyle bunların üstesinden gelmeyi başardı.

Başlangıçta Terra, ihtiyaçlarını en iyi şekilde karşılayacak özet türlerini ve paylaşılan bağlamı belirleme konusunda zorluklar yaşadı. Denemeler sonucunda, Translator API ile Portekizce'de benzer kalitede bir çıkış elde etmek için net ve faydalı İngilizce özetlerin çok önemli olduğunu keşfettiler. Terra, her seferinde kodunu yeniden düzenlemek zorunda kalmadan fikirlerini hızlıca test edebildiği için bu zorlukların üstesinden gelmede yerleşik yapay zeka deneme alanı önemli bir rol oynadı.

Aşağıdaki örnekte, Terra'nın Özetleyici API'yi nasıl çağırdığı ve kullanılamadığında kullanıcıları nasıl uyardığı gösterilmektedir.

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
  }
}

Ayrıca Terra, orijinal Portekizce makalenin başlığını, alt başlığını ve gövde metnini İngilizceye çevirmek için Özetleyici'yi Translator API ile birlikte kullandı. Bu çevrilmiş sürüm, özeti oluşturmak için Özetleyici API tarafından işlenir ve ardından Portekizceye geri çevrilir. Bu sayede kullanıcı, özetlenmiş içeriği uygulamanın dilinde alır.

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'nın yerleşik yapay zeka API'lerini başarılı bir şekilde entegre etmesi, istemci tarafı yapay zekanın içerik yönetimi iş akışlarını iyileştirme konusundaki önemli potansiyelini gösteriyor. Terra, Özetleyici ve Çeviri API'leri sayesinde gazetecilerini güçlendirdi, verimliliği artırdı ve platformlar genelinde gelişmiş kullanıcı deneyimleri sunmak için iyi bir konuma geldi.

En iyi uygulamalar

Yorum girişi jeton sınırını aşıyorsa şu azaltma yöntemlerini uygulayın:

  • API'ye daha küçük bir örnek (ör. en son 4 yorum) gönderin. Bu sayede daha hızlı sonuçlar elde edebilirsiniz. İstemci tarafı özetlemeyi ölçeklendirme ile ilgili rehberimize bakın.
  • QuotaExceededError, girişteki istenen jetonlar hakkında daha fazla bilgi sağlar. summarizer nesnesinde, API'nin jeton sınırını belirten bir inputQuota özelliği bulunur. Bu sayede anlık geri bildirim sağlanır ve giriş sınırları aşarsa işlev devre dışı bırakılır.

Tüm kullanıcılar için sorunsuz bir deneyim sağlamak amacıyla karma bir yaklaşım benimsemeyi düşünebilirsiniz. Yerleşik bir yapay zeka API'si ilk kez çağrıldığında tarayıcının modeli indirmesi gerekir.

  • Miravia, model indirilirken ilk özeti sağlamak için sunucu tarafı bir model kullandı. Yerleşik model hazır olduğunda site, istemci tarafında çıkarım yapmaya başladı.

Her zaman kullanıcı dostu ve iletişime açık bir arayüz oluşturmaya çalışmalısınız:

  • Model indirme işlemleri için ilerleme çubuğu uygulayın ve yanıt gecikmelerini azaltın.
  • Model indirme konusunda şeffaflığı göz önünde bulundurun. Bright Sites, kaynak kullanımının şeffaflığı ve kullanıcı rızası için kullanıcıları model indirme konusunda bilgilendirdi. Böylece kullanıcılar devam etmeden önce kabul edebilir veya reddedebilir.

Sonuçlar ve öneriler

Bright Sites ve Terra'nın örnekleri, Özetleyici API'nin içeriğe erişimi ve okuyucu etkileşimini artırmadaki değerini gösteriyor. Bu platformlar, bu istemci tarafı API'yi kullanarak ek iş maliyeti olmadan ve basitleştirilmiş veri yönetimiyle okuma deneyimini ve kişiselleştirmeyi iyileştirdi. Summarizer API gibi tüm yerleşik yapay zeka API'leri pratik istemci tarafı yapay zekayı etkinleştirir.

Summarizer API'nin diğer kullanım alanlarında nasıl yardımcı olabileceğini mi merak ediyorsunuz? Ayrıca, Summarizer API'nin redBus ve Miravia'nın faydalı kullanıcı yorumu özetleri oluşturmasına nasıl yardımcı olduğunu da paylaştık.

Bu API'lerle yeni bir şey mi geliştiriyorsunuz? Bu bilgileri X'te@ChromiumDev veya LinkedIn'de Chromium for Developers adresinden bizimle paylaşabilirsiniz.

Kaynaklar

Teşekkür

Bu belgenin yazılmasına ve incelenmesine yardımcı olan Terra'dan Guilherme Moser ve Fernando Fischer, CWI'dan Aline Souza, Brian Alford, Keval Patel, Jack Riley ve Brightsites'ın mühendislik ekibi, Swetha Gopalakrishnan, Alexandra Klepper, Thomas Steiner ve Kenji Baheux'e teşekkür ederiz.