Yayınlanma tarihi: 12 Mart 2025
Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
---|---|---|---|---|
GitHub | Görünüm | Deneme yapma niyeti |
Summarizer API, çeşitli uzunluk ve biçimlerde bilgi özetleri oluşturmanıza yardımcı olur. Müşteri tarafında çıkarım yapmak ve karmaşık veya uzun metinleri kısaca açıklamak için Chrome'da Gemini Nano ile kullanın.
İşlem istemci tarafında yapıldığında verilerle yerel olarak çalışabilirsiniz. Bu sayede hassas verileri güvende tutabilir ve geniş ölçekte kullanılabilirlik sunabilirsiniz. Ancak bağlam penceresi, sunucu tarafı modellere kıyasla çok daha küçüktür. Bu nedenle, çok büyük belgeleri özetlemek zor olabilir. Bu sorunu çözmek için özetlerin özeti tekniğini kullanabilirsiniz.
Özetlerin özeti nedir?
Özetlerin özeti tekniğini kullanmak için giriş içeriğini önemli noktalarda bölün ve ardından her bölümü bağımsız olarak özetleyin. Her bölümden elde edilen çıkışları birleştirebilir, ardından bu birleştirilmiş metni tek bir nihai özet halinde toplayabilirsiniz.

İçeriğinizi dikkatli bir şekilde bölme
Gemini Nano veya diğer LLM'ler tarafından büyük bir metnin farklı konumlarda bölünmesi, tamamen farklı sonuçlara yol açabileceğinden, metni nasıl böleceğinizi dikkatlice düşünmeniz önemlidir. İdeal olarak, metinler konu değişikliği olduğunda (ör. makalenin yeni bir bölümü) veya bir paragrafta bölünmelidir. Metni bir kelimenin veya cümlenin ortasında bölmekten kaçınmanız önemlidir. Yani, tek bölme kuralınız olarak bir karakter sayısı belirleyemezsiniz.
Bunu manuel çaba harcamadan birçok şekilde yapabilirsiniz. Aşağıdaki örnekte, performans ile çıkış kalitesini dengeleyen LangChain.js'deki Yinelenen Metin Bölme işlevini kullandık. Bu, çoğu iş yükü için işe yarayacaktır.
Yeni bir örnek oluştururken iki önemli parametre vardır:
chunkSize
, her bölme için izin verilen maksimum karakter sayısıdır.chunkOverlap
, art arda iki bölme arasında çakışma olacak karakter miktarıdır. Bu sayede her bir parçada önceki parçanın bağlamının bir kısmı bulunur.
Her bir parçayı içeren bir dize dizisi döndürmek için metni splitText()
ile bölün.
Çoğu büyük dil modelinin bağlam penceresi, karakter sayısı yerine jeton sayısı olarak ifade edilir. Bir jeton ortalama 4 karakter içerir. Bu nedenle, bir giriş tarafından kullanılan jeton sayısını tahmin etmek için karakter sayısını 4'e bölebilirsiniz.
Örneğimizde chunkSize
3.000 karakter uzunluğundadır ve yaklaşık 750 jetondan oluşur.
Her bölme için özet oluşturma
İçeriğin nasıl bölüneceğini ayarladıktan sonra Summarizer API ile her bölümün özetini oluşturabilirsiniz.
create()
işlevini kullanarak özetleyicinin bir örneğini oluşturun. Olabildiğince fazla bağlam bilgisini korumak için format
parametresini plain-text
, type
parametresini tl;dr
ve length
parametresini long
olarak ayarladık.
Ardından, RecursiveCharacterTextSplitter
tarafından oluşturulan her bölme için özeti oluşturun ve sonuçları yeni bir dize halinde birleştirin.
Her bölümün özetini net bir şekilde tanımlamak için her özeti yeni bir satırla ayırdık.
Bu yeni satır, bu döngüyü yalnızca bir kez çalıştırırken önemli olmasa da her özetin nihai özet için jeton değerine nasıl eklendiğini belirlemek için yararlıdır. Bu çözüm, çoğu durumda orta ve uzun içerikler için işe yarayacaktır.
Özetlerin yinelenen özeti
Çok uzun bir metniniz varsa birleştirilmiş özetin uzunluğu, mevcut bağlam penceresinden daha büyük olabilir. Bu da özetleme işleminin başarısız olmasına neden olur. Bu sorunu gidermek için özetlerin özetini yinelemeli olarak alabilirsiniz.

RecursiveCharacterTextSplitter
tarafından oluşturulan ilk bölmelerin toplanması devam eder. Ardından, recursiveSummarizer()
işlevinde, birleştirilmiş bölmelerin karakter uzunluğuna göre özetleme işlemini döngüye alırız. Özetlerin karakter uzunluğu 3000
'ü aşarsa fullSummaries
olarak birleştirilir. Sınıra ulaşılmazsa özet partialSummaries
olarak kaydedilir.
Tüm özetler oluşturulduktan sonra nihai kısmi özetler tam özete eklenir. fullSummaries
içinde yalnızca 1 özet varsa ek yineleme gerekmez. İşlev, nihai bir özet döndürür. Birden fazla özet varsa işlev, kısmi özetlerin özetlenmesi işlemini tekrarlayarak devam eder.
Bu çözümü, 17.560 kelime içeren 110.030 karakterden oluşan Internet Relay Chat (IRC) RFC ile test ettik. Summarizer API aşağıdaki özeti sağladı:
Internet Relay Chat (IRC), kısa mesajlar kullanarak internette gerçek zamanlı olarak iletişim kurmanın bir yoludur. Kanallarda sohbet edebilir veya özel mesaj gönderebilir, sohbeti kontrol etmek ve sunucuyla etkileşimde bulunmak için komutları kullanabilirsiniz. İnternetteki bir sohbet odası gibidir. Yazdığınız mesajlar ve diğer kullanıcıların mesajları anında gösterilir.
Bu oldukça etkili. Ayrıca, yalnızca 309 karakterden oluşuyor.
Sınırlamalar
Özetlerin özeti tekniği, müşteri boyutunda bir modelin bağlam penceresinde çalışmanıza yardımcı olur. İstemci tarafı yapay zekanın birçok avantajı olsa da aşağıdakilerle karşılaşabilirsiniz:
- Daha az doğru özetler: Yinelemeli özetleme işleminde özetleme işleminin tekrarı sonsuz olabilir ve her özet, orijinal metinden daha uzak olur. Bu, modelin yararlı olamayacak kadar yüzeysel bir nihai özet oluşturabileceği anlamına gelir.
- Daha yavaş performans: Her özetin oluşturulması zaman alır. Yine de, daha uzun metinlerde sonsuz sayıda özet oluşturma olasılığı olduğundan bu yaklaşımın tamamlanması birkaç dakika sürebilir.
Özetleyici demomuz mevcuttur ve tam kaynak kodunu görüntüleyebilirsiniz.
Görüşlerinizi paylaşın
Kullanım alanlarınız için en iyi sonucun ne olduğunu belirlemek üzere, farklı giriş metni uzunlukları, farklı bölme boyutları ve farklı çakışma uzunlukları ile özetlerin özeti tekniğini kullanmayı deneyin.
Kaynak denemesine katılarak Summarizer API'yi hemen test etmeye başlayın ve geri bildirimlerinizi paylaşın. Geri bildiriminiz, bu API'nin gelecekteki sürümlerini ve tüm yerleşik yapay zeka API'lerini nasıl geliştirip uygulayacağımızı doğrudan etkileyebilir.
- Chrome'un uygulanmasıyla ilgili geri bildirim için hata raporu veya özellik isteği gönderin.
- Mevcut bir soruna yorum yaparak veya yeni bir sorun açarak GitHub'da Özetleyici API tasarımını tartışın.
- Web Incubator Topluluk Grubu'na katılarak standartlar çalışmalarına katılın.
- Özetleme süreciniz veya yerleşik yapay zeka ile ilgili diğer sorularınız hakkında Chrome Yapay Zeka Ekibi ile sohbet edin.