Yayınlanma tarihi: 28 Nisan 2025, Son güncelleme tarihi: 21 Mayıs 2025
Yapay zekanın hızlı gelişimi, özellikle cihaz üzerinde kullanılabilen özelliklerin ortaya çıkmasıyla birlikte web uygulamaları için yeni ufuklar açıyor. Japonya'nın önde gelen internet şirketlerinden CyberAgent'ın, platformu Ameba Blog'da blog yazma deneyimini geliştirmek için Chrome'un yerleşik yapay zekasını ve Prompt API'yi nasıl kullandığını öğrenin.
Bu geliştiricilerin hedeflerini, yerleşik yapay zekayla çalışmanın avantajlarını, karşılaştıkları zorlukları ve yerleşik yapay zekayı kullanan diğer geliştiriciler için değerli bilgileri paylaşıyoruz.
Prompt API nedir?
Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
---|---|---|---|---|
GitHub | Görünüm | Deneme Yapma Amacı |
Prompt API, geliştiricilerin büyük dil modellerini kullanarak doğrudan uygulamalarına yapay zeka özellikleri eklemesine yardımcı olur. Uygulamalar, özel istemler tanımlayarak veri ayıklama, içerik oluşturma ve kişiselleştirilmiş yanıtlar gibi görevleri gerçekleştirebilir. Chrome'da Prompt API, Gemini Nano ile istemci tarafı çıkarım gerçekleştirir. Bu yerel işleme, hangi modelin kullanıldığına bakılmaksızın veri gizliliğini ve yanıt hızını artırır. Hangi model kullanılırsa kullanılsın, istemci yanıt hızı.
Ameba Blog yazarları için yapay zeka yardımı
CyberAgent, yazarların ortak bir sorununu fark etti: Özellikle başlıklar olmak üzere ilgi çekici içerik oluşturma sürecinin genellikle çok zaman alması. Blog oluşturma arayüzüne yapay zeka destekli işlevlerin entegre edilmesinin, içerik oluşturmanın kalitesini ve verimliliğini önemli ölçüde artırabileceğini varsaydılar. Amaçları, ilham veren ve blog yazarlarının ilgi çekici içerikler oluşturmasına yardımcı olan araçlar sunmaktı.
CyberAgent, Prompt API ile bir Chrome uzantısı geliştirdi. Bu uzantı, Ameba Blog yazarlarının başlık ve başlıklar, sonraki paragraflar ve genel metin iyileştirmeleri oluşturmasına yardımcı olmak için tasarlanmış bir dizi yapay zeka destekli özellik sunar.
CyberAgent, özelliklerin esnek olmasını istiyordu ve bu nedenle Prompt API'yi tercih etti. Tek bir API'de sonsuz olasılık sunan CyberAgent, Ameba yazarları için en iyi ve en faydalı olanı tam olarak belirleyebildi.
CyberAgent, uzantıyı belirli sayıda blog yazarıyla test etti. Bu test, sunulan işlevlerin pratikliği hakkında değerli bilgiler sağladı. Geri bildirimler, CyberAgent'ın yapay zeka yardımına yönelik daha iyi uygulamalar belirlemesine ve uzantının tasarımını iyileştirmesine yardımcı oldu. CyberAgent, olumlu sonuçlar ve geri bildirimler doğrultusunda bu özelliği gelecekte yayınlamayı planlıyor. Böylece, istemci tarafı yapay zekanın gücünü doğrudan blog topluluğuna sunacak.
Bu özellikleri daha yakından inceleyelim.
Daha iyi başlıklar ve üstbilgiler yazma
Uzantı, blog içeriğinin tamamına göre birden fazla başlık önerisi oluşturur. Blog yazarları, "Yeniden Oluştur", "Daha Kibar", "Daha Samimi" veya "Benzer Başlıklar Oluştur" gibi seçeneklerle bu önerileri daha da iyileştirebilir.
CyberAgent, kullanıcıların herhangi bir istem yazmasına gerek kalmaması için kullanıcı arayüzünü özel olarak tasarladı. Bu sayede, istem mühendisliği konusunda bilgisi olmayan kullanıcılar da yapay zekanın gücünden yararlanabilir.
Uzantı, blogun her bir bölümü için ilgi çekici başlıklar da oluşturabilir. Yazarlar, başlık için ilgili metni seçerek bu başlıkları isteyebilir.
İstem API'si ile başlık oluşturma kodu, ilk istemi ve kullanıcı istemini içerir. İlk istem, belirli bir çıktı türü elde etmek için bağlam ve talimatlar sağlarken kullanıcı istemleri, modelin kullanıcının yazdıklarıyla etkileşime geçmesini ister. Kodları hakkında daha fazla bilgiyi Yapay zeka yardımını dağıtma başlıklı makalede bulabilirsiniz.
Sonraki paragrafları oluşturma
Uzantı, seçilen metne dayalı olarak sonraki paragrafları oluşturarak blog yazarlarının yazma tıkanıklığını aşmasına yardımcı olur. Önceki paragraftaki bağlamı kullanarak paragrafın devamını taslak hâlinde oluşturur. Böylece yazarlar, yaratıcı akışlarını koruyabilir.
Metni iyileştirme ve düzenleme
Gemini Nano, seçili metni analiz eder ve iyileştirmeler önerebilir. Kullanıcılar, kopyayı "daha sevimli" veya "daha basit" hale getirmek için ton ve dil seçimiyle ilgili ek notlar ekleyerek iyileştirmeleri yeniden oluşturabilir.
Yapay zeka yardımını dağıtma
CyberAgent, uzantı kodunu üç adıma ayırdı: oturum oluşturma, tetikleyici ve model istemi.
Öncelikle, yerleşik yapay zekanın kullanılabilir ve desteklenip desteklenmediğini tarayıcıyla kontrol ederler. Evetse varsayılan parametrelerle bir oturum oluşturulur.
if (!LanguageModel) {
// Detect the feature and display "Not Supported" message as needed
return;
}
// Define default values for topK and temperature within the application
const DEFAULT_TOP_K = 3;
const DEFAULT_TEMPERATURE = 1;
let session = null;
async function createAISession({ initialPrompts, topK, temperature } = {}) {
const { available, defaultTopK, maxTopK, defaultTemperature } =
await LanguageModel.availability();
// "readily", "after-download", or "no"
if (available === "no") {
return Promise.reject(new Error('AI not available'));
}
const params = {
monitor(monitor) {
monitor.addEventListener('downloadprogress', event => {
console.log(`Downloaded: ${event.loaded} of ${event.total} bytes.`);
});
},
initialPrompts: initialPrompts || '',
topK: topK || defaultTopK,
temperature: temperature || defaultTemperature,
};
session = await LanguageModel.create(params);
return session;
}
Her özelliğin, kullanıcı tarafından tetiklenen bir yardımcı işlevi vardır. Tetiklendikten sonra, kullanıcı ilgili düğmeyi tıkladığında oturumu buna göre günceller.
async function updateSession({ initialPrompts, topK, temperature } = {
topK: DEFAULT_TOP_K,
temperature: DEFAULT_TEMPERATURE,
}) {
if (session) {
session.destroy();
session = null;
}
session = await createAISession({
initialPrompts,
topK,
temperature,
});
}
Oturum güncellendikten sonra, işlev doğrultusunda modele istem gönderirler. Örneğin, başlık oluşturmak ve daha resmi bir üslupla başlık yeniden oluşturmak için kullanılan kod aşağıda verilmiştir.
async function generateTitle() {
// Initialize the model session
await updateSession({
initialPrompts: [
{ role: 'system',
content: `Create 3 titles suitable for the blog post's content,
within 128 characters, and respond in JSON array format.`,
}
]
});
const prompt = `Create a title for the following
blog post.${textareaEl.textContent}`;
const result = await session.prompt(prompt);
try {
const fixedJson = fixJSON(result);
// display result
displayResult(fixedJSON);
} catch (error) {
// display error
displayError();
}
}
async function generateMoreFormalTitle() {
// Do not execute updateSession to reuse the session during regeneration
const prompt = 'Create a more formal title.';
const result = await session.prompt(prompt);
...
}
Yerleşik yapay zekanın avantajları
Yerleşik yapay zeka, istemci tarafı yapay zeka türüdür. Bu nedenle çıkarım, kullanıcının cihazında gerçekleşir. CyberAgent, hem uygulama geliştiricilere hem de kullanıcılara sunduğu avantajlar nedeniyle Gemini Nano ile yerleşik yapay zeka API'lerini kullanmayı tercih etti.
CyberAgent'ın odaklandığı temel avantajlar şunlardır:
- Güvenlik ve gizlilik
- Maliyet
- Yanıt verme ve güvenilirlik
- Geliştirme kolaylığı
Güvenlik ve gizlilik
Verileri harici sunuculara iletmeden yapay zeka modellerini doğrudan kullanıcının cihazında çalıştırma özelliği çok önemlidir. Blog taslaklarının herkese açık olması amaçlanmadığından CyberAgent bu taslakları üçüncü taraf sunucusuna göndermek istemiyor.
Yerleşik yapay zeka, Gemini Nano'yu kullanıcı cihazlarına indirerek sunuculardan veri gönderme ve alma ihtiyacını ortadan kaldırır. Bu özellik, özellikle yazma sırasında kullanışlıdır. Taslaklar gizli bilgiler veya istenmeyen ifadeler içerebilir. Yerleşik yapay zeka, orijinal ve oluşturulan içeriği bir sunucuya göndermek yerine yerel olarak tutar. Bu sayede güvenlik artırılabilir ve içerik gizliliği korunabilir.
Maliyet tasarrufları
Yerleşik yapay zekayı kullanmanın en büyük avantajlarından biri, tarayıcının Gemini Nano'yu içermesi ve API'lerin ücretsiz olarak kullanılabilmesidir. Ek veya gizli maliyet yoktur.
Yerleşik yapay zeka, sunucu maliyetlerini önemli ölçüde azaltır ve yapay zeka çıkarımıyla ilişkili maliyetleri tamamen ortadan kaldırabilir. Bu çözüm, geniş bir kullanıcı tabanına hızlı bir şekilde ölçeklenebilir ve kullanıcıların ek ücret ödemeden çıktıları iyileştirmek için art arda istem göndermesine olanak tanır.
Yanıt verme ve güvenilirlik
Yerleşik yapay zeka, ağ koşullarından bağımsız olarak tutarlı ve hızlı yanıt süreleri sağlar. Bu sayede kullanıcılar, içerik oluşturma sürecini tekrar tekrar deneyebiliyor. Böylece yeni fikirleri denemek ve tatmin edici bir sonuç elde etmek çok daha kolay ve hızlı hale geliyor.
Geliştirme kolaylığı
Chrome'un yerleşik yapay zekası, hazır bir API sağlayarak geliştirme sürecini basitleştirir. Geliştiriciler, uygulamaları için yapay zeka destekli özellikler oluşturmanın kolaylığından yararlanır.
Gemini Nano ve yerleşik yapay zeka API'leri Chrome'a yüklendiğinden ek kurulum veya model yönetimi gerekmez. API'ler, diğer tarayıcı API'leri gibi JavaScript kullanır ve makine öğrenimi uzmanlığı gerektirmez.
Daha iyi sonuçlar için zorlukların üstesinden gelme
CyberAgent'ın Prompt API ile yolculuğu, istemci tarafı büyük dil modelleriyle çalışmanın incelikleri hakkında değerli dersler verdi.
- Tutarsız yanıtlar: Diğer LLM'ler gibi Gemini Nano da aynı istem için aynı çıkışları garanti etmez. CyberAgent, beklenmedik biçimlerde (ör. Markdown ve geçersiz JSON) yanıtlarla karşılaştı. Talimatlar verilse bile sonuçlar büyük ölçüde farklılık gösterebilir. Yerleşik yapay zeka içeren bir uygulama veya Chrome uzantısı uygularken, çıktının her zaman doğru biçimde olmasını sağlamak için geçici bir çözüm eklemek faydalı olabilir.
- Jeton sınırı: Jeton kullanımını yönetmek çok önemlidir. CyberAgent,
inputUsage
,inputQuota
vemeasureInputUsage()
gibi özellikler ve yöntemler kullanarak oturumları yönetti, bağlamı korudu ve jeton tüketimini azalttı. Bu, özellikle başlıkları iyileştirirken önemliydi. - Model boyutu kısıtlamaları: Model, kullanıcının cihazına indirildiği ve cihazda bulunduğu için sunucu tabanlı bir modele kıyasla önemli ölçüde daha küçüktür. Bu nedenle, özellikle özetleme için tatmin edici sonuçlar elde etmek amacıyla istemde yeterli bağlam bilgisi sağlamak çok önemlidir. LLM boyutlarını anlama hakkında daha fazla bilgi edinin.
CyberAgent, istemci tarafı modellerin henüz tüm tarayıcı ve cihazlarda evrensel olarak kullanılamadığını ve daha küçük modellerin sınırlamaları olduğunu vurgulasa da belirli görevlerde etkileyici bir performans sunabileceğini belirtiyor. Hızlı yineleme ve sunucu tarafı maliyetleri olmadan deneme yapabilme özelliği, bu aracı değerli kılar.
Mükemmel yanıtlar elde etmenin, sunucu tarafı veya istemci tarafı olsun, herhangi bir yapay zeka ile zor olduğunu kabul ederek denge kurmanızı önerirler. Son olarak, hem sunucu taraflı hem de istemci taraflı yapay zekanın güçlü yönlerini birleştiren hibrit bir yaklaşımın daha da büyük bir potansiyel ortaya çıkaracağı bir gelecek görüyorlar.
Geleceğe dönük olarak
CyberAgent'ın yerleşik yapay zeka araştırması, kullanıcı deneyimlerini iyileştirmek için sorunsuz yapay zeka entegrasyonlarının heyecan verici olanaklarını gösteriyor. Ameba Blog ile çalışmak üzere geliştirilen uzantıları, bu teknolojilerin gerçek dünya sorunlarını çözmek için nasıl pratik bir şekilde uygulanabileceğini göstererek daha geniş web geliştirme topluluğu için değerli dersler sunuyor.
Teknoloji olgunlaştıkça ve tarayıcılar ile cihazlar için destek genişledikçe yerleşik yapay zekanın ve diğer istemci tarafı yapay zeka biçimlerinin daha da yenilikçi uygulamalarını görmeyi bekliyoruz.
Kaynaklar
- Prompt API hakkında daha fazla bilgi edinin.
- Chrome'da yerleşik API'leri kullanmaya başlama
- Aynı konuyu ele alan CyberAgent'ın Web Yapay Zeka'ya ilişkin örnek olay çalışması.
- CyberAgent'ın istemci tarafı yapay zeka ile ilgili örnek olaylarını içeren The future of AI is now (Yapay zekanın geleceği artık burada) başlıklı videoyu izleyin.
Teşekkür
Geri bildirimde bulunarak uzantının iyileştirilmesine yardımcı olan Ameba'nın blog yazarları ao, Nodoka, Erin, Chiaki ve socchi'ye teşekkür ederiz. Bu blog yayınını yazma ve inceleme konusundaki yardımları için Thomas Steiner, Alexandra Klepper ve Sebastian Benz'e teşekkür ederiz.