Yayınlanma tarihi: 15 Mayıs 2025
Halk, yerel, ulusal ve uluslararası olaylar hakkında bilgi edinmek ve bakış açılarını paylaşmak için haber yayıncılarına güvenir. Günümüzde, hızlı tempolu bir ortamda makale özetleri, karmaşık bilgileri erişilebilir snippet'lere sıkıştırarak okuyucuları daha fazla keşfetmeye teşvik eden önemli bir stratejidir. Bright Sites ve Terra'nın, özetleyici API'yi kullanarak bu stratejiye nasıl yaklaştığını öğrenin.
Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
---|---|---|---|---|
MDN | Görünüm | Gönderim Amacı |
Summarizer API, cümleler, paragraflar, madde işaretli listeler ve daha fazlası gibi çeşitli uzunluk ve biçimlerde farklı türde ö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 modelleri kullanır. Chrome'da kullandığımız model Gemini Nano'dur.
Bright Sites, The Standard'a kişiselleştirilmiş makale özetleri ekliyor
Bright Sites'in lider haber yayınlama platformu Flow, 150'den fazla yayını desteklemektedir. Bright Sites, Summarizer API'yi yapay zeka destekli içerik yönetim sistemine entegre ederek Londra'nın ikonik haber markası The Standard'ın okuyucularına makalelerin kişiselleştirilmiş özetlerini sunmasını sağlıyor. Bu, kullanıcıların makalelerle etkileşim kurmasını ve The Standard'daki diğer makalelere yönlendirilmesini sağlar.
"Chrome'da Gemini'nin son teknoloji modelleriyle çalışmak, The Standard'ın okuyucularını bilgilendirme konusundaki 198 yıllık geçmişini, güvenilir gazeteciliğimizin parmaklarının ucunda olmasını isteyen yoğun izleyicilerimiz için yeni teknik yeniliklerle bir araya getiriyor. Okuyucuların kendi cihazlarında oluşturulan özetlerden yararlanarak haberleri hızlıca kontrol etmelerini sağlamak, The Standard'ı yeniden tasarlama ve okuyucuların dijital alışkanlıklarına göre yeni okuyucu odaklı ürünler oluşturma yöntemlerimizden yalnızca biridir."
— Jack Riley, Baş Dijital Yönetici, The Standard
İstemci tarafında yapay zeka özetleme sunmak, The Standard'ın ek işletme maliyeti oluşturmadan kişiselleştirilmiş özetler oluşturmasını sağladı. Özet stili veya konum gibi veri noktalarını kullanarak istemci tarafında bu işlemi yapmak, kullanıcıların internet erişimini kaybettiklerinde bile okumaya devam etmelerine olanak tanır. Bu durum, dizüstü bilgisayarlarıyla Londra yeraltı metrosunda seyahat eden birçok kullanıcı için sık karşılaşılan bir durumdur.
Öncelikle, modelin ve API'nin destek durumunu 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 başka bir cihaz üzerinde model veya sunucu tarafı model 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.',
)
}
Standart, 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 sağlar
Brezilya'nın en büyük içerik portallarından biri olan Terra, eğlence, haber ve spor içerikleri sunar ve ayda 50 milyondan fazla benzersiz ziyaretçi alır. Terra, gazetecilerin Portekizce haber makalelerini anında özetlemesine yardımcı olmak için içerik yönetim sistemine (İYS) Summarizer API ve Translator API'yi ekledi. Gazeteciler daha sonra stil veya doğruluk açısından birkaç düzenleme yapabilir ve ortaklaşa oluşturulan özeti yayınlayarak tüm okuyucuların kullanımına sunabilir.
Terra'nın İYS'si zaten sunucu tarafı LLM kullanıyor olsa da ekip, potansiyel yeni avantajlara sahip farklı bir yaklaşım olarak istemci tarafı yapay zekayı araştırdı. Chrome'daki Summarizer API ve Gemini Nano'nun, sunucu tarafındaki uygulamalarıyla benzer kalitede sonuçlar sağladığını 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ı benimsedi. İstemci tarafı yapay zeka, maliyet tasarrufu sağladı ve veri yönetimini basitleştirdi. Ekip, özetleyici API ile özellikle içerik penceresi sınırlamalarını yönetme konusunda bazı zorluklarla karşılaşsa da dikkatli uygulama yöntemleriyle bu sorunların üstesinden gelebildi.
Terra başlangıçta, ihtiyaçlarını karşılamak için en uygun özet türlerini ve paylaşılan bağlamı belirleme konusunda zorluklarla karşılaştı. Denemelerden sonra, Translator API ile Portekizce'de benzer kalitede bir sonuç elde etmek için net ve faydalı İngilizce özetlerin çok önemli olduğunu keşfettiler. Terra, her seferinde kodlarını yeniden düzenlemeden fikirlerini hızlıca test edebildiği için yerleşik yapay zeka oyun alanı bu zorlukların üstesinden gelmekte çok faydalı oldu.
Aşağıdaki örnekte, Terra'nın Summarizer API'yi nasıl çağırıp 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ı, altyazısını ve gövde metnini İngilizceye çevirmek için özetleyiciyi Translator API ile birlikte kullandı. Bu çevrilmiş sürüm, özet oluşturmak için Summarizer API tarafından işlenir ve ardından Portekizce'ye 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 çevirmen API'leri sayesinde gazetecilerine güç verdi, 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 aşağıdaki önlemleri uygulayın:
- API için daha küçük bir örnek (ör. en son 4 yorum) kullanın. Bu, daha hızlı sonuç elde etmenize yardımcı olur. İstemci tarafı özetleme işlemini ölçeklendirme ile ilgili kılavuzumuza bakın.
QuotaExceededError
, girişte istenen jetonlar hakkında daha fazla bilgi sağlar.summarizer
nesnesi, API'nin jeton sınırını belirten birinputQuota
özelliğine sahiptir. Bu sayede, giriş sınırı aşıldığında anlık geri bildirim alabilir ve işlevi devre dışı bırakabilirsiniz.
Tüm kullanıcılara sorunsuz bir deneyim sunmak için karma bir yaklaşımı değerlendirebilirsiniz. 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 sunmak için sunucu tarafı bir model kullandı. Yerleşik model hazır olduğunda site, çıkarım işlemini istemci tarafında gerçekleştirmeye 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 bir ilerleme çubuğu uygulayın ve yanıt gecikmelerini azaltın.
- Model indirme işlemiyle ilgili şeffaflık sağlayın. Bright Sites, kaynak kullanımıyla ilgili şeffaflık ve izin vermek için kullanıcıları model indirme hakkında bilgilendirdi. Böylece kullanıcılar devam etmeden önce kabul edebilir veya reddedebilir.
Sonuçlar ve öneriler
Bright Sites ve Terra'nın örnekleri, Summarizer API'nin içerik erişilebilirliğini ve okuyucu etkileşimini artırmadaki değerini göstermektedir. Bu istemci tarafı API'yi kullanarak bu platformlar, ek işletme maliyeti olmadan ve basitleştirilmiş veri yönetimiyle okuma deneyimini ve kişiselleştirmeyi iyileştirdi. Özetleyici API'de olduğu gibi, yerleşik yapay zeka API'lerinin tümü istemci tarafında pratik yapay zeka kullanımını sağlar.
Summarizer API'nin diğer kullanım alanlarında nasıl yardımcı olabileceğini merak mı 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şmıştık.
Bu API'lerle yeni bir şey mi geliştiriyorsunuz? X'te@ChromiumDev veya LinkedIn'de Geliştiriciler için Chromium üzerinden bizimle paylaşın.
Kaynaklar
- Summarizer API hakkında daha fazla bilgi edinin.
- Chrome'da yerleşik API'leri kullanmaya başlayın.
- Blogger'ları güçlendirmeyle ilgili Prompt API örnek olayını okuyun.
- Çeviri ve Dil Algılama başarı öyküsünü okuyun.
- Summarizer API'nin redBus ve Miravia'nın faydalı kullanıcı yorumu özetleri oluşturmasına nasıl yardımcı olduğunu okuyun.
Teşekkür ederiz
Bu dokümanın yazılması ve incelenmesine yardımcı olan Terra'dan Guilherme Moser ve Fernando Fischer, CWI'den Aline Souza, Brian Alford, Keval Patel, Jack Riley ve Brightsites'in Mühendislik Ekibi, Swetha Gopalakrishnan, Alexandra Klepper, Thomas Steiner ve Kenji Baheux'a teşekkür ederiz.