Yayınlanma tarihi: 15 Mayıs 2025
E-ticaret veya seyahat siteleri gibi kullanıcı yorumları içeren web sitelerinde genellikle çok fazla bilgi bulunur. Bu durum, kullanıcıların satın alma işlemine karar vermek için çok sayıda yorumu incelemesini zaman alıcı hale getirebilir. Yorum özetlerini paylaşmak, kullanıcıların geri bildirimleri anlamasına ve zamandan tasarruf etmesine yardımcı olabilir. redBus ve Miravia'nın karar verme ve satın alma deneyimini iyileştirmek için Summarizer API'yi nasıl kullandığı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. Yerleşik yapay zeka API'lerimizin çoğu gibi bu API de çıkarım yapmak için büyük dil modellerini kullanır. Chrome'da kullandığımız model Gemini Nano'dur.
redBus, müşterilerin en iyi otobüs seçeneğine karar vermesine yardımcı olur
redBus, 30 milyondan fazla müşterisi olan Hindistan'ın en büyük otobüs sağlayıcısıdır. Ülke genelinde yaklaşık 10.000 şehir ve kasaba arasında otobüs hizmeti sunmaktadır. redBus, veriler ve geri bildirimler sayesinde kullanıcı tarafından oluşturulan yorumların, müşterilerin seyahat ihtiyaçlarına en uygun rotayı ve otobüsü belirlemelerine yardımcı olmada önemli bir rol oynadığını fark etti. redBus çok sayıda yorum alıyor ve her yorum, varış ve kalkış noktalarına ve saatlerine özel.
Müşterilerin belirli şehirler veya rotalar hakkında genel bir fikir edinmesine yardımcı olmak için Summarizer API'yi kullanarak alakalı yorumlardan elde edilen önemli analizleri sunar.
"Summarizer API, çok sayıda yorumumuzdan ve kullanıcı arama sorgusu permütasyonlarımızdan kaliteli özetler oluşturabildi. İstemci tarafında sunulan bu özellik, sunucu tarafı alternatifinde mevcut olan teknik karmaşıklığı ve ek işletme maliyetini ortadan kaldırdı. Bu kullanım alanı dönüşüm hunisinin bir parçası olduğu için bu bizim için önemlidir."
— Amit Kumar, Kıdemli Mühendislik Müdürü, redBus
redBus'un arka ucunda depolanan yorumların ayrıntı düzeyi, kullanıcı arama sorgularındaki çok sayıda olası permütasyonla (kalkış ve varış saatleri, şehirdeki belirli biniş noktası ve farklı otobüs operatörleri gibi değişkenler) birlikte, yorumlardaki belirli analizleri öne çıkarmayı zorlaştırıyor. Bu veri hacmi ile her arama sorgusu için sunucu tarafı özet oluşturmak maliyetli olur.
redBus, etkili özetler oluşturmak için müşteri yorumlarının yanı sıra Summarizer API'ye aşağıdaki bağlamı sağlar:
//Context to provide a useful summary
const promptContext =
'Summarize the following reviews in 30 words or less.' +
'Focus on key positives and negatives, such as comfort, maintenance,' +
'pricing, and cleanliness. Reviews are separated by {end}.' +
'Give the summary in just one paragraph.';
Özetler, ek işletme maliyetleri ve teknik karmaşıklık olmadan müşteri karar vermeyi iyileştirir. Ayrıca redBus, oturum açmış kullanıcıların koltuk konforu veya kablosuz bağlantı kullanılabilirliği gibi seyahat tercihlerine göre özeti kişiselleştirebilir. İstemci tarafında çıkarım yapılır. Bu, bu arama ve özetin kullanıcı için gizli kalması anlamına gelir.
Özetleyici'nin kullanılabilirliğini kontrol eden, bağlam sağlayan ve kullanıcının arama sorgusuna göre yorumları alan kısa bir kod örneğine göz atın.
// The Summarizer API is available
if ('Summarizer' in self) {
try {
const available = await Summarizer.availability();
let summarizer;
if (available === 'unavailable') {
return null;
}
if (available === 'available') {
//model is already available, use immediately
summarizer = await Summarizer.create();
} else {
//trigger model download and wait
summarizer = await Summarizer.create();
}
// Context to provide a useful summary
const promptContext =
'Summarize the following reviews in 30 words or less.' +
'Focus on key positives and negatives, such as comfort, maintenance,' +
'pricing, and cleanliness. Reviews are separated by {end}.' +
'Give the summary in just one paragraph.';
// Retrieve the reviews to be summarized based on user's search query
let reviews = getIndividualBusReviews();
if (reviews) {
const reviewSummary = await summarizer.summarize(reviews, {
context: promptContext
});
}
} catch (e) {
console.error("SUMMARIZER_API_ERROR: ", e);
return null
}
}
Bangalore'dan Mangaluru'ya yapılan örnek aramada özetleyicinin çıkışı şu şekildedir:
<Bus Provider X>
genel olarak konfor, temizlik ve personel hizmeti açısından olumlu yorumlar almıştır. Gecikmeler, sürücü davranışı (kaba), eksik olanaklar (canlı takip, battaniye) ve rahatsızlık (koltuk boyutu, zayıf amortisörler) gibi küçük sorunlar yaşandı.
Bu yorum, istenen koşulları karşılamaktadır. Olumlu ve olumsuz yönleri tek bir kısa paragrafta sunması, 308 ayrı yorumdan çok daha kolay okunmasını sağlar.
Miravia, e-ticaret yorumlarını özetledi
Miravia, aylık milyonlarca etkin kullanıcısı olan İspanya'nın önde gelen e-ticaret platformlarından biridir. Kullanıcılar yorumları filtrelediğinde (ör. ürün puanına göre) yeni bir özet oluşturulur. Bu sayfada, müşteri geri bildirimlerine kısaca göz atabilir, endişeleri ve önerileri görebilirsiniz.
"Daha önce, ürün yorumlarındaki önemli avantaj ve dezavantajları anlamak için kullanıcıların ayrıntılar sayfasındaki çok sayıda yorumu tek tek okuması gerekiyordu. Kullanıcıların genel müşteri duyarlılığını hızlıca anlamalarına yardımcı olmak için özetleyici API'yi kullanıma sunduk. Bu özet, kullanıcılar yorumları filtrelediğinde (ör. yıldız puanına veya başka ölçütlere göre) dinamik olarak güncellenir. Böylece, alakalı alıcı geri bildirimlerine hızlı ve kapsamlı bir genel bakış sunulur."
— Ziyi Liang, Kıdemli Yazılım Mühendisi, Miravia
Miravia'nın kullanıcı yorumu özetleme özelliği başlangıçta sunucu tarafı bir yapay zeka hizmetine dayanıyordu. Müşteri tarafında yapay zeka çalıştıran Gemini Nano'nun, bakım maliyetlerinde düşüş sağlayarak benzer sonuçlar sunabileceğini tespit ettiler. Bu avantaj, özellikle yorumları sürekli olarak güncellenen popüler ve hızlı satılan ürünlerde belirgindir.
Miravia'nın uygulanması, sunucu veya tarayıcıda çıkarım yapılıp yapılmadığına bakılmaksızın gerçek zamanlı inceleme getirme ve özetleme gerektirir. Sıklık arttıkça ise istemci tarafı yapay zeka önemli ölçüde daha verimli olur. Genel performansından memnunlar.
Miravia ilk olarak özellik ve cihaz uyumluluğunu kontrol eder.
// Compatibility check for device with built-in AI
export const deviceCheck = async () => {
// Query the browser's AI capabilities
const availability = await Summarizer.availability();
// Case 1: Device doesn't support AI summarization
if (availability === 'unavailable') {
return {
summarizationAvailable: false,
message:
'AI summarization tools are not supported on this device, or the appropriate permissions have not be set.',
};
}
// Case 2: Device supports AI but requires model download
if (availability === 'downloadable') {
// Try to trigger an installation
Summarizer.create();
return {
summarizationAvailable: false,
message: 'Installing in the background. This may take a few minutes...',
};
}
// Case 3: Device supports AI summarization
return {
summarizationAvailable: true,
message: 'Ready for use.',
};
};
Ardından Miravia, mevcut yorumları özetler. Yorumlar, girişin daha tutarlı olması için ek bir noktayla birleştirilir.
/**
* Summarizes a list of reviews using Chrome's Built-in AI
* @param {Array<string>} reviewContentList - Array of review texts to summarize
* @returns {Promise<string>} The generated summary text
* @throws {Error} If summarization is not available or fails
*/
export const reviewSummarize = async (reviewContentList) => {
// Validate input
if (!Array.isArray(reviewContentList) || !reviewContentList.length) {
throw new Error('Please provide a non-empty array of reviews to summarize');
}
// Check device compatibility
const { summarizationAvailable, message } = await deviceCheck();
if (summarizationAvailable) {
try {
// Configure and create the summarizer with appropriate parameters
const summarizer = await Summarizer.create({
type: 'tl;dr',
length: 'short',
sharedContext:
'Summarize the given user reviews. Maintain a polite and formal tone.',
});
// Generate the summary from the joined review texts
const summary = await summarizer.summarize(reviewContentList.join('. '));
// Return the generated summary
return summary;
} catch (error) {
// Handle any errors during summarization
throw new Error(`Summarization failed: ${error.message}`);
}
} else {
// If summarization is not available, throw an error with the message from deviceCheck
throw new Error(
message ||
'AI summarization tools are not supported on this device or browser.'
);
}
};
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 yönergelerimize 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
redBus ve Miravia'dan alınan bu gerçek örnekler, Summarizer API'nin kullanıcı yorumlarının kısa ve alakalı özetlerini sağlayarak kullanıcıların hızlı ve bilinçli kararlar almasına nasıl yardımcı olduğunu göstermektedir. API'nin ek işletme maliyeti olmadan ve teknik karmaşıklığı düşük bir şekilde istemci tarafında çalışabilmesi, bilgilerin özetlenmesi gereken benzer kullanım alanları için uygun bir seçenek haline getirir. Yerleşik yapay zeka API'lerinin tümü, istemci tarafında pratik yapay zeka kullanım alanları 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 makale etkileşimini artırmaya nasıl yardımcı olduğunu da paylaş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 Bright Sites ve Terra'nın ilgi çekici makale ö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 Miravia'dan (Alibaba Group) Makakhov Andrey ve Ziyi Liang, redBus'tan Amit Kumar, Swetha Gopalakrishnan, Alexandra Klepper, Thomas Steiner ve Kenji Baheux'a teşekkür ederiz.