Yayınlanma tarihi: 28 Nisan 2025, Son güncelleme tarihi: 21 Mayıs 2025
Yapay zekanın hızlı gelişimi, özellikle cihaz üzerinde özelliklerin kullanıma sunulmasıyla web uygulamaları için yeni ufuklar açıyor. Japonya'nın önde gelen internet şirketlerinden CyberAgent'ın, Ameba Blog platformundaki blog deneyimini iyileş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 zeka ile çalışmanın avantajlarını, karşılaştıkları zorlukları ve yerleşik yapay zekayı kullanan diğer geliştiricilere yönelik değerli analizleri paylaşıyoruz.
Prompt API nedir?
Açıklayıcı | Web | Uzantılar | Chrome Durumu | Amaç |
---|---|---|---|---|
GitHub | Görünüm | Deneme yapma niyeti |
Prompt API, geliştiricilerin yapay zeka özelliklerini doğrudan uygulamalarına eklemek için büyük dil modellerini kullanmasına 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ında çıkarım yapar. Kullanılan modelden bağımsız olarak bu yerel işleme, veri gizliliğini ve yanıt hızını artırır. Kullanılan model ne olursa olsun istemci yanıt hızı.
Ameba Blog yazarları için yapay zeka desteği
CyberAgent, yazarların ortak bir sorunu olduğunu fark etti: Özellikle başlıklar olmak üzere ilgi çekici içerikler oluşturmanın genellikle zaman alıcı olması. Ekip, yapay zeka destekli işlevlerin blog oluşturma arayüzüne entegre edilmesinin içerik oluşturmanın kalitesini ve verimliliğini önemli ölçüde artırabileceğini öne sürdü. Amacları, ilham veren ve bloger'larının ilgi çekici içerikler oluşturmasına yardımcı olacak 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ış, yapay zeka destekli bir özellik paketi sunar.
CyberAgent, özelliklerde esneklik istedi ve bu da doğrudan Prompt API'ye yol açtı. CyberAgent, tek bir API'deki sonsuz olasılıklar sayesinde Ameba yazarları için en iyi ve en yararlı çözümü tam olarak belirleyebildi.
CyberAgent, uzantıyı belirli sayıda blogger ile test etti. Bu sayede, sunulan işlevlerin kullanışlılığı hakkında değerli bilgiler edindi. Geri bildirim, CyberAgent'ın yapay zeka yardımı için daha iyi uygulamalar belirlemesine ve uzantının tasarımını iyileştirmesine yardımcı oldu. Olumlu sonuçlar ve geri bildirimler doğrultusunda CyberAgent, istemci tarafı yapay zekanın gücünü doğrudan blog topluluğuna sunmak için bu özelliği gelecekte kullanıma sunmayı planlıyor.
Bu özelliklere daha yakından bakalım.
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 Rahat" veya "Benzer Başlıklar Oluştur" gibi seçeneklerle bu önerileri daha da hassaslaştırabilir.
CyberAgent, kullanıcı arayüzünü özellikle kullanıcıların herhangi bir istem yazması gerekmeyecek şekilde tasarladı. Bu sayede, istem mühendisliği hakkında bilgi sahibi olmayan kullanıcılar da yapay zekanın gücünden yararlanabilir.
Uzantı, blogun ayrı bölümleri için ilgi çekici üstbilgiler de oluşturabilir. Yazarlar, bir başlık için alakalı metni seçerek bu üstbilgilerin oluşturulmasını isteyebilir.
Prompt API ile başlık oluşturmak için kullanılan kod, bir ilk istem ve bir kullanıcı istemi içerir. İlk istem, belirli bir türde çıktı almak için bağlam ve talimatlar sağlar. Kullanıcı istemleri ise modelin, kullanıcının yazdığı metinle etkileşime geçmesini ister. Yapay zeka desteğini dağıtma başlıklı makalede bu kod hakkında daha fazla bilgi edinebilirsiniz.
Sonraki paragrafları oluşturma
Uzantı, seçilen metne göre sonraki paragrafları oluşturarak yazarların yazma krizini yenmesine yardımcı olur. Yapay zeka, önceki paragraftaki bağlamı kullanarak paragrafın devamını yazar ve yazarların yaratıcı akışlarını korumalarına olanak tanır.
Metni iyileştirme ve düzenleme
Gemini Nano, seçili metni analiz eder ve iyileştirmeler önerebilir. Kullanıcılar, metni "daha sevimli" veya "daha basit" hale getirmek için ton ve dil seçimiyle ilgili ek notlarla 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ıdan kontrol ederler. Evet ise varsayılan parametrelerle bir oturum oluşturur.
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ıklayarak oturumu uygun şekilde 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şleve göre modele istem gönderirler. Örneğin, bir başlık oluşturmak ve daha resmi bir üslupla yeniden oluşturmak için kullanılacak 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, çıkarım işleminin kullanıcının cihazında gerçekleştiği anlamına gelir. CyberAgent, hem uygulama geliştiricilere hem de kullanıcılara sunduğu cazip avantajlar nedeniyle Gemini Nano ile yerleşik yapay zeka API'lerini kullanmayı tercih etti.
CyberAgent'ın odaklandığı temel avantajlar arasında şunlar yer alır:
- Güvenlik ve gizlilik
- Maliyet
- Yanıt verme ve güvenilirlik
- Geliştirme kolaylığı
Güvenlik ve gizlilik
Yapay zeka modellerini harici sunuculara veri aktarmadan doğrudan kullanıcının cihazında çalıştırabilmek çok önemlidir. Blog taslakları herkes tarafından görülmek üzere tasarlanmamıştır. Bu nedenle CyberAgent, bu taslakları üçüncü taraf bir sunucuya göndermek istemez.
Yerleşik yapay zeka, Gemini Nano'yu kullanıcı cihazlarına indirerek sunuculardan veri gönderme ve alma ihtiyacını ortadan kaldırır. Taslaklar gizli bilgiler veya istenmeyen ifadeler içerebileceğinden bu özellik özellikle yazma aşamasında kullanışlıdır. Yerleşik yapay zeka, orijinal ve oluşturulan içeriği bir sunucuya göndermek yerine yerel olarak tutar. Bu da güvenliği artırabilir ve içerik gizliliğini koruyabilir.
Maliyet tasarrufları
Yerleşik yapay zekayı kullanmanın en önemli avantajlarından biri, tarayıcının Gemini Nano'yu içermesi ve API'lerin ücretsiz olmasıdır. 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, büyük bir kullanıcı tabanına hızlıca ölçeklenebilir ve kullanıcıların ek ücret ödemeden çıktıları hassaslaştırmak 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 tekrar tekrar içerik oluşturabilir. Böylece kullanıcılar yeni fikirleri deneyebilir ve tatmin edici bir sonuç elde etmek için hızlıca çalışabilir.
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 konusunda uzmanlık gerektirmez.
Daha iyi sonuçlar için zorlukların üstesinden gelme
CyberAgent'ın Prompt API ile olan yolculuğu, istemci tarafı LLM'lerle ç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 olsa bile sonuçların çok farklı olması mümkündür. Yerleşik yapay zeka içeren herhangi bir uygulamayı veya Chrome uzantısını uygularken, çıktının her zaman doğru biçimde olmasını sağlamak için bir geçici çözüm eklemek yararlı olabilir.
- Jeton sınırı: Jeton kullanımını yönetmek çok önemlidir. CyberAgent, oturumları yönetmek, bağlamı korumak ve jeton tüketimini azaltmak için
inputUsage
,inputQuota
vemeasureInputUsage()
gibi mülkleri ve yöntemleri kullandı. Bu, özellikle başlıkları hassaslaştırırken önemliydi. - Model boyutu kısıtlamaları: Model indirilir ve kullanıcının cihazında depolandığından sunucu tabanlı bir modelden ö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ılarda ve cihazlarda evrensel olarak kullanılamadığını ve küçük modellerin sınırlamaları olduğunu belirtmekle birlikte, belirli görevler için etkileyici performans sunabileceğini vurgulamaktadır. Hızlı iterasyon yapma ve sunucu tarafı maliyetleri olmadan deneme yapma olanağı, bu aracı değerli kılar.
Sunucu tarafı veya istemci tarafı olsun, herhangi bir yapay zeka ile mükemmel yanıtlar elde etmenin zor olduğunun farkında olarak bir denge bulmanızı öneriyorlar. Son olarak, hem sunucu hem de istemci taraflı yapay zekanın güçlü yönlerini birleştiren karma bir yaklaşımın daha da büyük potansiyellerin kilidini açacağı bir gelecek görüyorlar.
Geleceğe dönük olarak
CyberAgent'ın yerleşik yapay zeka keşfi, kullanıcı deneyimlerini iyileştirmek için sorunsuz yapay zeka entegrasyonlarının sunduğu heyecan verici olasılıkları gösteriyor. Ameba Blog ile çalışmak üzere geliştirdikleri uzantı, bu teknolojilerin gerçek dünyadaki sorunları çözmek için nasıl pratik bir şekilde uygulanabileceğini gösterir ve daha geniş web geliştirme topluluğu için değerli dersler sunar.
Teknoloji geliştikçe ve tarayıcılar ile cihazlar için destek genişledikçe yerleşik yapay zekanın ve istemci tarafı yapay zekanın diğer formlarının 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
- CyberAgent'ın Web Yapay Zeka ile ilgili örnek olayını inceleyebilirsiniz.
- CyberAgent'ın istemci tarafı yapay zeka konulu örnek çalışmalarını içeren Yapay zekanın geleceği şimdi başlıklı videosunu izleyin
Teşekkür ederiz
Geri bildirimde bulunarak uzantının iyileştirilmesine yardımcı olan Ameba'nın blog yazarları ao, Nodoka, Erin, Chiaki ve socchi'ya teşekkür ederiz. Bu blog yayınının yazılması ve incelenmesinde yardımları için Thomas Steiner, Alexandra Klepper ve Sebastian Benz'e teşekkür ederiz.