Chrome, doğrudan tarayıcının içine bir yapay zeka modeli yerleştirdi. Prompt API, onu kullanmak için çağırdığınız JavaScript arayüzüdür. API anahtarı yok, ağ gidiş-dönüşü yok, token başına ücret yok. Model Gemini Nano'dur, kullanıcının cihazında çalışır ve Chrome 138 itibarıyla uzantılar için genel olarak kullanılabilir olup web sayfaları için bir bayrağın arkasındadır. API geliştiricileri için bu, istemcide makul olanı değiştirir.
Bu kılavuz, Chrome Prompt API'nin ne olduğunu, bulut Gemini API'den nasıl farklılaştığını, bir API iş akışına ne zaman uygun olduğunu, hem uzantılar hem de web sayfaları için uygulamalı kodu ve belgelerin kabul ettiğinden daha hızlı karşılaşacağınız sınırlamaları kapsar. Model mevcut olmadığında aynı görevlerin yedek bir yolu olması için sonunda Apidog ile eşleştiriyoruz.
Özet
- Chrome Prompt API, Gemini Nano'yu web sayfaları için
window.LanguageModelve uzantılar içinchrome.languageModelüzerinden erişilebilenLanguageModelaracılığıyla sunar. - Model tamamen cihaz üzerinde çalışır. Ağ çağrısı yok, anahtar yok, token maliyeti yok.
- Chrome 138+ sürümünde Chrome uzantıları için kararlıdır. Web sayfaları için
chrome://flags/#prompt-api-for-gemini-nanobayrağının arkasında ve kayıtlı bir Origin Trial aracılığıyla sunulmaktadır. - API geliştiricileri için en iyi kullanımlar: istemci tarafı giriş ayrıştırma, JSON şekil onarımı, kullanıcı arayüzü için API yanıtlarını özetleme ve geliştirme sırasında taslak oluşturma.
- Her zaman bir bulut yedeklemesi bağlayın. Cihaz içi model açıkça başarısız olur; kodunuz olmamalıdır.
Prompt API aslında neyi sunuyor?
Prompt API, Chrome'un geçen yıl sunmaya başladığı küçük bir "Yerleşik Yapay Zeka" API grubundan biridir. Diğerleri daha dardır: Özetleyici, Yazar, Yeniden Yazıcı, Çevirmen ve Dil Algılayıcı. Prompt API genel amaçlı bir arayüzdür; diğerleri onu göreve özel varsayılanlarla sarmalar.

Üç temel öğe önemlidir:
LanguageModel.availability(). `available`, `downloadable`, `downloading` veya `unavailable` döndürür. Model yaklaşık 2 GB boyutundadır ve bir site ilk kez istediğinde arka planda indirilir.LanguageModel.create(options). Bir oturum başlatır. Oturum, dönüş durumunu, sistem istemini ve birkaç örnekleme düğmesini tutar.session.prompt(text)vesession.promptStreaming(text). Modeli gerçekten çağırmanın iki yolu.
Şekil, kasıtlı olarak Gemini bulut SDK'sına yakındır ancak kırpılmıştır. Henüz araç çağırma yok, kararlı kanalda görüntü girişi yok (Origin Trial'da), ve bağlam penceresi küçüktür (4K girdi token'ı, 1K çıktı token'ı, toplamda 8K'ya kadar yumuşak genişleme ile).
Bir web sayfasından ilk çağrı şöyle görünür:
if (!('LanguageModel' in window)) {
console.warn('Prompt API not available. Falling back to cloud.');
} else {
const status = await LanguageModel.availability();
if (status === 'unavailable') {
console.warn('Device does not support Gemini Nano.');
} else {
if (status !== 'available') {
// Triggers a background download. Show a UI.
await LanguageModel.create({ monitor(m) {
m.addEventListener('downloadprogress', e => {
console.log(`downloaded ${(e.loaded * 100).toFixed(0)}%`);
});
}});
}
const session = await LanguageModel.create({
systemPrompt: 'You answer in three concise bullets. JSON only.',
});
const reply = await session.prompt(
'Summarize this changelog in three bullets.\n\n' + changelog
);
console.log(reply);
}
}
Her anlamlı parça kod parçasında sergilenmiştir: özellik algılama, kullanılabilirlik kontrolü, isteğe bağlı indirme, oturum oluşturma, sistem istemi, istem çağrısı.
Bulut Gemini API'den farkı nedir?
Aynı aile, farklı dağıtım. Farklılıklar, üzerine ne inşa edip ne inşa edemeyeceğinizi şekillendirir.
| Özellik | Chrome Prompt API | Gemini API (bulut) |
|---|---|---|
| Model | Gemini Nano (cihaz üzerinde) | gemini-3-flash, gemini-3-flash-preview, gemini-3-pro |
| Çağrı başına maliyet | Sıfır | Token başına ücretlendirme |
| Gecikme | Tipik ilk token 50 ila 300 ms | İlk token 200 ila 800 ms |
| Ağ | Model indirildikten sonra gerekli değil | Her çağrıda gerekli |
| Gizlilik | Giriş asla cihazdan ayrılmaz | Google sunucularına gönderilir |
| Bağlam penceresi | 4K girdi / 1K çıktı (8K birleşik) | 1M token'a kadar |
| Araç çağırma | Yok (planlanıyor) | Var |
| Çok modlu | Origin Trial'da görüntü girişi | Var |
| JSON modu | Sistem istemi aracılığıyla en iyi çaba | Şema ile birinci sınıf |
| Kullanılabilirlik | Yalnızca Chrome, yalnızca uyumlu donanım | Ağ erişimi olan herhangi bir istemci |
Cihaz içi model, gemini-3-flash'ten kabaca iki kat daha küçüktür. Bir regex veya elle ayarlanmış bir istem sınıflandırıcısı göndereceğiniz kısa görevler için kullanın. Bulut Gemini için doğrudan bir ikame olarak kullanmayın.
Bir API geliştiricisinin iş akışına gerçekte nerede uyar?
Dört kullanım durumu entegrasyon maliyetini karşılar. Bunların dışında, bulut API hala doğru seçimdir.
1. İstemci tarafında kullanıcı girişini ayrıştırma ve yeniden şekillendirme. Serbest biçimli bir sorguyu alın ve API'niz için yapılandırılmış bir filtreye dönüştürün. Kullanıcı "geçen hafta 100 dolardan fazla stripe ücretleri" yazar; Prompt API, arama uç noktanızı çağırmadan önce bunu { "amount_gt": 100, "since": "2026-04-22", "provider": "stripe" } şekline dönüştürür. Gidiş-dönüşü azaltır ve kullanıcı gizliliğini korur.
2. Kullanıcı arayüzü için API yanıtlarını özetleme. Kendi API'nizi çağırır, 40 kayıt alırsınız ve bir kartta göstermek için tek satırlık bir özete ihtiyacınız olur. Kayıtları bir bulut modeline göndermek gecikme ve maliyet ekler. Prompt API yerel olarak çalışır ve 200 ms'den daha kısa sürede yanıt verir.
3. JSON şekil onarımı. LLM yanıtları, önemli olacak kadar sık bozuk gelir. Gemini Nano aracılığıyla tek seferlik bir onarım geçişi çalıştırın: “İşte geçersiz JSON. Yalnızca aynı alanlara sahip geçerli JSON döndürün.” Ucuz, hızlı, maliyetsiz.
4. Geliştirme sırasında yerel taslak oluşturma. Yeni bir uç nokta bağlarken ve arka uç yarı inşa edilmişken, anında makul yanıt gövdeleri oluşturun. Şekiller üretime uygun olmayabilir, ancak ön uç çalışmasını engellemeyi kaldırırlar. Kritik uç noktaların kaydedilmiş örneklerden geldiği ve keşif amaçlı olanların Prompt API'den geldiği hibrit bir kurulum için Apidog'un sahte sunucusuyla birleştirin.
Uzantıya dahil etme
Uzantılar, Chrome 138 ve sonraki sürümlerden itibaren kararlı kanalda Prompt API'ye erişebilir. İzni bildirir ve chrome.languageModel'i çağırırsınız.
manifest.json:
{
"manifest_version": 3,
"name": "Endpoint Summarizer",
"version": "1.0.0",
"permissions": ["languageModel"],
"action": { "default_popup": "popup.html" }
}
popup.js:
const status = await chrome.languageModel.availability();
if (status === 'unavailable') {
document.getElementById('out').textContent =
'Device does not support on-device AI.';
return;
}
const session = await chrome.languageModel.create({
systemPrompt: [
'You summarize HTTP responses in three short bullets.',
'Mention status, the most-changed field, and any error keys.',
].join(' '),
temperature: 0.3,
topK: 3,
});
document.getElementById('go').addEventListener('click', async () => {
const tab = await chrome.tabs.query({ active: true, currentWindow: true });
const [{ result }] = await chrome.scripting.executeScript({
target: { tabId: tab[0].id },
func: () => document.body.innerText.slice(0, 4000),
});
const stream = session.promptStreaming(result);
const out = document.getElementById('out');
out.textContent = '';
for await (const chunk of stream) {
out.textContent += chunk;
}
});
Vurgulanmaya değer iki şey var. temperature ve topK API'nin sunduğu tek örnekleme düğmeleridir; topP kararlı kanalda desteklenmemektedir. Akış, sunucu tarafından gönderilen olaylar değil, bir asenkron yineleyicidir, bu nedenle tüketim deseni bulut Gemini için yazacağınız SSE okuyucusundan ziyade for await şeklindedir.
Web sayfasına dahil etme
Web sayfalarının, kullanıcının bir bayrağı açmasını veya kaynağınızın Origin Trial'a kaydedilmesini gerektirir. Deneme jetonu bir meta etiketinde yer alır.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="origin-trial" content="YOUR_TRIAL_TOKEN_HERE" />
</head>
<body>
<textarea id="in" placeholder="Paste an API response..."></textarea>
<button id="go">Summarize</button>
<pre id="out"></pre>
<script type="module">
if (!('LanguageModel' in window)) {
document.getElementById('out').textContent =
'Prompt API not available in this browser.';
} else {
const session = await LanguageModel.create({
systemPrompt: 'Reply in JSON: { "summary": "...", "tags": [...] }',
temperature: 0.2,
});
document.getElementById('go').onclick = async () => {
const text = document.getElementById('in').value;
const reply = await session.prompt(text);
try {
document.getElementById('out').textContent =
JSON.stringify(JSON.parse(reply), null, 2);
} catch {
document.getElementById('out').textContent = reply;
}
};
}
</script>
</body>
</html>
Sayfayı bir Origin Trial jetonu olmadan test etmek isterseniz, chrome://flags/#prompt-api-for-gemini-nano adresini açın, Etkin olarak ayarlayın ve Chrome'u yeniden başlatın. Bayrak son altı sürümde kararlıydı ancak sonsuza kadar kalacağı sözü verilmemektedir; tahmin edilebilir bir davranış istiyorsanız Origin Trial yolunu kullanın.
Belgelerin yeterince vurgulamadığı sınırlamalar ve tuzaklar
Sizi tökezletecek altı şey.
- Bağlam küçük. 4K girdi, 1K çıktı. Agresif bir şekilde kırpın. 50K token'lık bir JSON belgesi yapıştırıp faydalı bir yanıt beklemeyin.
- Donanım desteği düzensiz. Model kabaca 4 GB VRAM veya birleşik bellek gerektirir ve yalnızca Windows, macOS, Linux ve güncel ChromeOS üzerinde Chrome 138+ sürümlerinde çalışır. Bu yazı itibarıyla mobil Chrome desteklenmemektedir.
- İlk yükleme yavaş. 2 GB'lık indirme arka planda gerçekleşir ancak ilk oturumu engeller. Her zaman bir indirme ilerleme kullanıcı arayüzü gösterin.
- Araç çağırma yok. Göreviniz modelin API'nizi çağırmasını gerektiriyorsa, bunu istemcide kendiniz yapın; model sadece ne çağırılacağına karar verir.
- Sistem istemi kayması. Cihaz içi model, sistem istemlerini bulut varyantlarına göre daha az katı bir şekilde takip eder. Biçimi, sistem isteminde tek seferlik örneklerle sabitleyin.
- İzinler önemli. Uzantılar,
permissionsiçinde"languageModel"'a ihtiyaç duyar. Bunu unutursanız API sessizceunavailabledöndürür.
Yayınlamadan önce bir bulut yedeklemesi bağlayın
Uygulamanız, modele sahip olmayan kullanıcılara gönderilir. Her zaman bir yedekleme bağlayın. Desen kısadır:
async function summarize(text) {
if ('LanguageModel' in window) {
const status = await LanguageModel.availability();
if (status === 'available') {
const session = await LanguageModel.create({
systemPrompt: 'Reply with one bullet summary, max 12 words.',
});
return session.prompt(text);
}
}
// Fallback: call your server, which calls cloud Gemini or your own model.
const r = await fetch('/api/summarize', {
method: 'POST', body: JSON.stringify({ text }),
});
return (await r.json()).summary;
}
Gizlilik ve kullanıcılara ne söylenmeli
Prompt API'nin satış noktası, girdinin asla cihazdan ayrılmamasıdır. Bu bugün de doğrudur ve Yerleşik Yapay Zeka girişiminin açık tasarım amacıdır. Bilinmesi gereken iki nitelik:
- Modelin kendisi Google tarafından Google'ın verileriyle eğitilmiştir; yerel olarak çalıştırmak bunu değiştirmez. Chrome, ağırlıkları tarayıcı güncellemesiyle birlikte gönderir.
- Kullanım telemetrisi, kullanıcının normal Chrome telemetri ayarları altında Chrome tarafından rapor edilebilir. İstem içeriği bu telemetrinin bir parçası değildir.
Çoğu tüketici uygulaması için bu, hukuki inceleme olmadan kullanıcı arayüzünüze koyabileceğiniz güçlü bir gizlilik hikayesidir. Düzenlenmiş iş yükleri (HIPAA, PCI) için, ona güvenmeden önce avukatınıza danışın.
Prompt API'yi ne zaman atlamalı
Bunun yerine bulut Gemini API'yi şu durumlarda seçin:
- Göreviniz 4K token'dan fazla girdi gerektiriyorsa.
- Araç çağırmaya, şema zorlamalı yapılandırılmış çıktıya veya Origin Trial'ın ötesinde çok modlu girdilere ihtiyacınız varsa.
- Kullanıcılara Safari, Firefox veya mobil Chrome üzerinden hizmet veriyorsanız. Tarayıcı desteği bugün sadece Chrome'a özgüdür ve Apple bir gönderim tarihi belirtmemiştir.
- Çıktı kalitesi gecikmeden daha önemliyse. Nano küçüktür; Pro değildir.
Açık ağırlık açısından, DeepSeek V4 yerel olarak nasıl çalıştırılır makalesi, yerel ağı terk etmeden bir geliştirme makinesinde anlamlı ölçüde daha büyük bir model çalıştırmayı kapsar.
Sıkça Sorulan Sorular
- Prompt API resmi web standartları sürecinde mi? W3C WebML topluluk grubunda bir öneri olarak yer almaktadır. Diğer motorlar sunana kadar Chrome'a özgü olarak kabul edin.
- Bir servis çalışanından kullanabilir miyim? Chrome 138+'da, uzantılar için evet. Web sayfaları şu anda onu belge bağlamıyla sınırlar. Bir servis çalışanına göndermeden önce belgeleri kontrol edin.
- Gerçekte hangi model boyutunu alıyorum? Gemini Nano, uyacak şekilde nicelenmiş, 2-4B parametre aralığındadır. Google belirli bir boyuta taahhüt etmemiştir; büyümesini bekleyin.
- Fonksiyon çağırmayı destekliyor mu? Kararlı kanalda hayır. Origin Trial dalında deneysel araç desteği bulunmaktadır; üretim için ona güvenmeyin.
- Otomatik bir CI'da nasıl test ederim? Cihaz içi modeli henüz başsız Chromium'da çalıştıramazsınız. Testlerde
LanguageModelglobal'ini taklit edin ve CI'da bulut yedekleme yolunu çalıştırın. - Ticari kullanım için ücretsiz mi? Evet. Çağrı başına ücretlendirme yoktur. Kullanıcının cihazındaki depolama maliyetini (yaklaşık 2 GB) siz karşılarsınız ve Chrome güncellemeleri yönetir.
Bunun yanı sıra bulut tarafı LLM iş akışlarını zaten yürüten ekipler için, GPT-5.5 nedir yazısı bulut tarafı ödünleşimlerini daha derinlemesine ele alır ve Apidog, ayrı bir test aracı olmadan taklit ve yedekleme bağlantısını yönetir.
