Yayınlanma tarihi: 11 Kasım 2024, Son güncelleme: 20 Mayıs 2025
Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
---|---|---|---|---|
GitHub | Görünüm | Gönderim Amacı |
Kullanıcılarınıza uzun makaleleri, karmaşık dokümanları ve hatta canlı sohbet görüşmelerini kısa ve bilgilendirici özetlere dönüştürme olanağı sunabilirsiniz.
Özetleyici API, cümle, paragraf, madde işareti listesi ve daha fazlası gibi çeşitli uzunluk ve biçimlerde farklı türde özetler oluşturmak için kullanılabilir. Bu API'nin aşağıdaki senaryolarda faydalı olacağına inanıyoruz:
- Bir makalenin veya sohbet görüşmesinin önemli noktalarını özetleme
- Makaleler için başlık ve başlıklar önerir.
- Uzun bir metnin kısa ve bilgilendirici bir özetini oluşturma.
- Kitap incelemesine dayalı bir kitap tanıtımı oluşturma.
Başlayın
Summarizer API, Chrome 138 kararlı sürümünden itibaren kullanılabilir.
Tarayıcının Summarizer API'yi destekleyip desteklemediğini görmek için özellik algılama işlemini çalıştırın.
if ('Summarizer' in self) {
// The Summarizer API is supported.
}
Donanım gereksinimlerini inceleyin
Dil Tanımlayıcı ve Çevirmen API'leri, masaüstünde yalnızca Chrome'da çalışır.
Prompt API, Summarizer API, Writer API ve Rewriter API, aşağıdaki koşullar karşılandığında Chrome'da çalışır:
- İşletim sistemi: Windows 10 veya 11; macOS 13 veya üzeri (Ventura ve sonraki sürümler) ya da Linux. Android, iOS ve ChromeOS için Chrome, Gemini Nano tarafından desteklenen API'lerimiz tarafından henüz desteklenmiyor.
- Depolama alanı: Chrome profilinizi içeren birimde en az 22 GB.
- GPU: 4 GB'tan fazla VRAM
- Ağ: Sınırsız veri veya sınırsız bağlantı.
- GPU: 4 GB'tan fazla VRAM
- Ağ: Sınırsız veri veya sınırsız bağlantı.
Bu şartlar, geliştirme süreciniz ve oluşturduğunuz özellikleri kullanan kullanıcılarınız için geçerlidir.
Model indirme
Özetleyici API, yüksek kaliteli özetler oluşturmak için eğitilmiş bir model kullanır. API, Chrome'a yerleştirilmiştir ve bir web sitesi bu API'yi ilk kez kullandığında Gemini Nano modeli indirilir.
Modelin kullanıma hazır olup olmadığını belirlemek için asenkron Summarizer.availability()
işlevini çağırın. Aşağıdaki değerleri içeren bir promise döndürür.
"unavailable"
, uygulamanın istenen seçenekleri desteklemediği anlamına gelir."downloadable"
, uygulamanın istenen seçenekleri desteklediği anlamına gelir ancak önce tarayıcının bir model (Chrome'da Gemini Nano) veya model için ince ayar gibi bir şey indirmesi gerekir."downloading"
, uygulamanın istenen seçenekleri desteklediği ancak devam edebilmesi için devam eden bir indirme işleminin tamamlanması gerektiği anlamına gelir."available"
, uygulamanın istenen seçenekleri desteklediğini ve özetleyicinin devam edebileceğini gösterir.
Model indirme işlemini tetiklemek ve özetleyiciyi oluşturmak için eşzamansız Summarizer.create()
işlevini çağırın. availability()
için yanıt downloadable
veya downloading
ise indirme ilerleme durumunu dinlemeniz önerilir. Bu sayede kullanıcıyı bilgilendirebilir ve özetleme işleminin gerçekleşebilmesi için indirme işleminin zaman alabileceğini belirtebilirsiniz.
const summarizer = await Summarizer.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
}
});
API işlevleri
create()
işlevi, ihtiyaçlarınıza göre yeni bir özetleyici nesnesi yapılandırmanıza olanak tanır. Aşağıdaki parametreleri içeren isteğe bağlı bir options
nesnesi alır:
sharedContext
: Özetleyiciye yardımcı olabilecek ek paylaşılan bağlam.type
:key-points
(varsayılan),tl;dr
,teaser
veheadline
izin verilen değerlerle özetleme türü. Ayrıntılar için aşağıdaki tabloya bakın.format
:markdown
(varsayılan) veplain-text
izin verilen değerlerle özetleme biçimi.length
:short
,medium
(varsayılan) velong
izin verilen değerlerle özetleme uzunluğu. Bu uzunlukların anlamları, istenentype
'e göre değişir. Örneğin, Chrome'un uygulamasında kısa önemli noktalar özeti üç madde işaretinden, kısa özet ise bir cümleden oluşur.
Aşağıdaki tabloda farklı özet türleri ve bunların karşılık gelen uzunlukları gösterilmektedir. Bazen sonuçlar daha kısa olabileceğinden uzunluklar mümkün olan maksimum değeri temsil eder.
Tür | Anlamı | Uzunluk | ||||||
---|---|---|---|---|---|---|---|---|
"tl;dr" |
Özet kısa ve öz olmalı, yoğun bir okuyucu için girişe hızlı bir genel bakış sunmalıdır. |
|
||||||
"teaser" |
Özet, girişin en ilgi çekici veya merak uyandırıcı kısımlarına odaklanmalı ve okuyucuyu daha fazla okumaya teşvik etmelidir. |
|
||||||
"key-points" |
Özet, girişteki en önemli noktaları madde işaretli liste halinde sunmalıdır. |
|
||||||
"headline" |
Özet, girişin ana fikrini makale başlığı biçiminde tek bir cümlede etkili bir şekilde içermelidir. |
|
Aşağıdaki örnekte özetleyicinin nasıl başlatılacağı gösterilmektedir.
const options = {
sharedContext: 'This is a scientific article',
type: 'key-points',
format: 'markdown',
length: 'medium',
};
const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
// The Summarizer API isn't usable.
return;
}
if (availability === 'available') {
// The Summarizer API can be used immediately .
summarizer = await Summarizer.create(options);
} else {
// The Summarizer API can be used after the model is downloaded.
summarizer = await Summarizer.create(options);
summarizer.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
await summarizer.ready;
}
Özetleyiciyi çalıştırma
Özetleyiciyi çalıştırmanın iki yolu vardır: akış ve toplu işlem (akış dışı).
Toplu özetleme
Toplu özetleme özelliğinde model, girişi bir bütün olarak işler ve ardından çıkışı oluşturur.
Toplu özet almak için summarize()
işlevini çağırın. İlk bağımsız değişken, özetlemek istediğiniz metindir. İkinci isteğe bağlı bağımsız değişken, context
alanı içeren bir öğedir. Bu alan, özetleme işlemini iyileştirebilecek arka plan ayrıntıları eklemenize olanak tanır.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
context: 'This article is intended for a tech-savvy audience.',
});
Akış özeti
Akış özetleme, sonuçları gerçek zamanlı olarak sunar.
Giriş eklenip ayarlandıkça çıkış sürekli olarak güncellenir. Akış özetini almak için summarize()
yerine summarizeStreaming()
numaralı telefonu arayın.
const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
context: 'This article is intended for junior developers.',
});
Demo
Summarizer API'yi Summarizer API Playground'da deneyebilirsiniz.
Standartlaştırma çalışması
Tarayıcılar arası uyumluluğu sağlamak için Summarizer API'yi standartlaştırmaya çalışıyoruz.
API önerimiz topluluktan destek aldı ve daha fazla tartışma için W3C Web Incubator Topluluğu'na taşındı. Chrome ekibi, W3C Teknik Mimari Grubu'ndan geri bildirim istedi ve Mozilla ile WebKit'ten standartlarla ilgili görüşlerini sordu.
Web Incubator Topluluk Grubu'na katılarak standartlar çalışmalarına katılın.
Geri bildirim
Summarizer API ile neler geliştirdiğinizi görmek isteriz. Web sitelerinizi ve web uygulamalarınızı X, YouTube ve LinkedIn'de bizimle paylaşın.
Chrome'un uygulanmasıyla ilgili geri bildirim için hata raporu veya özellik isteği gönderin.