Chrome menyematkan model AI langsung di dalam browser. Prompt API adalah antarmuka JavaScript yang Anda panggil untuk menggunakannya. Tanpa kunci API, tanpa bolak-balik jaringan, tanpa biaya per-token. Model tersebut adalah Gemini Nano, yang berjalan di perangkat pengguna, dan mulai Chrome 138 sudah tersedia secara umum untuk ekstensi dan di balik flag untuk halaman web. Bagi pengembang API, ini mengubah apa yang masuk akal untuk dilakukan di sisi klien.
Panduan ini mencakup apa itu Chrome Prompt API, bagaimana perbedaannya dengan Gemini API berbasis cloud, kapan API ini cocok untuk alur kerja API, kode praktis untuk ekstensi dan halaman web, serta batasan yang akan Anda temui lebih cepat daripada yang diakui oleh dokumentasi. Kami memasangkannya dengan Apidog di akhir sehingga tugas yang sama memiliki jalur cadangan ketika model tidak tersedia.
TL;DR
- Chrome Prompt API mengekspos Gemini Nano melalui
LanguageModel, tersedia diwindow.LanguageModeluntuk halaman web danchrome.languageModeluntuk ekstensi. - Model berjalan sepenuhnya di perangkat. Tanpa panggilan jaringan, tanpa kunci, tanpa biaya token.
- Stabil untuk ekstensi Chrome di Chrome 138+. Untuk halaman web, API ini diluncurkan di balik flag
chrome://flags/#prompt-api-for-gemini-nanodan Origin Trial yang terdaftar. - Penggunaan terbaik untuk pengembang API: parsing input sisi klien, perbaikan bentuk JSON, meringkas respons API untuk UI, dan pembuatan stub selama pengembangan.
- Selalu sediakan fallback cloud. Model di perangkat gagal secara terbuka; kode Anda tidak boleh.
Apa yang sebenarnya diekspos oleh Prompt API
Prompt API adalah salah satu dari kelompok kecil API “AI Bawaan” yang mulai diluncurkan Chrome tahun lalu. Yang lainnya lebih spesifik: Summarizer, Writer, Rewriter, Translator, dan Language Detector. Prompt API adalah antarmuka serbaguna; yang lainnya membungkusnya dengan default khusus tugas.

Tiga primitif yang penting:
LanguageModel.availability(). Mengembalikanavailable,downloadable,downloading, atauunavailable. Model berukuran sekitar 2 GB dan diunduh di latar belakang saat pertama kali situs memintanya.LanguageModel.create(options). Memulai sesi. Sesi menyimpan status giliran, prompt sistem, dan beberapa penyesuaian sampling.session.prompt(text)dansession.promptStreaming(text). Dua cara untuk benar-benar memanggil model.
Bentuknya sengaja dibuat mirip dengan Gemini cloud SDK tetapi dipangkas. Belum ada pemanggilan alat, belum ada input gambar di saluran stabil (saat ini dalam Origin Trial), dan jendela konteksnya kecil (4K token input, 1K output, dengan perluasan lunak hingga total 8K).
Panggilan pertama dari halaman web terlihat seperti ini:
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);
}
}
Setiap bagian penting ditampilkan dalam cuplikan: deteksi fitur, pemeriksaan ketersediaan, unduhan opsional, pembuatan sesi, prompt sistem, panggilan prompt.
Bagaimana Perbedaannya dengan Gemini API Berbasis Cloud
Keluarga yang sama, deployment yang berbeda. Perbedaan ini membentuk apa yang bisa dan tidak bisa Anda bangun di atasnya.
| Properti | Chrome Prompt API | Gemini API (cloud) |
|---|---|---|
| Model | Gemini Nano (di perangkat) | gemini-3-flash, gemini-3-flash-preview, gemini-3-pro |
| Biaya per panggilan | Nol | Penagihan per-token |
| Latensi | 50 hingga 300 md token pertama tipikal | 200 hingga 800 md token pertama |
| Jaringan | Tidak diperlukan setelah pengunduhan model | Diperlukan setiap panggilan |
| Privasi | Input tidak pernah meninggalkan perangkat | Dikirim ke server Google |
| Jendela konteks | 4K input / 1K output (8K gabungan) | Hingga 1M token |
| Pemanggilan alat (Tool calling) | Tidak (direncanakan) | Ya |
| Multimodal | Input gambar dalam Origin Trial | Ya |
| Mode JSON | Upaya terbaik melalui prompt sistem | Kelas satu dengan skema |
| Ketersediaan | Hanya Chrome, hanya perangkat keras yang mampu | Klien mana pun dengan jaringan |
Model di perangkat kira-kira dua tingkat besaran lebih kecil daripada gemini-3-flash. Gunakan untuk tugas-tugas singkat di mana Anda akan mengirimkan regex atau pengklasifikasi prompt yang disetel secara manual. Jangan menggunakannya sebagai pengganti langsung untuk Gemini berbasis cloud.
Di mana ia benar-benar cocok dalam alur kerja pengembang API
Empat kasus penggunaan yang sepadan dengan biaya integrasi. Di luar ini, API berbasis cloud masih merupakan pilihan yang tepat.
1. Parsing dan pembentukan ulang input pengguna di sisi klien. Ambil kueri bentuk bebas dan ubah menjadi filter terstruktur untuk API Anda. Pengguna mengetik “tagihan stripe lebih dari $100 minggu lalu”; Prompt API mengubahnya menjadi { "amount_gt": 100, "since": "2026-04-22", "provider": "stripe" } sebelum Anda memanggil endpoint pencarian Anda. Menghemat bolak-balik dan melindungi privasi pengguna.
2. Meringkas respons API untuk UI. Anda memanggil API Anda sendiri, mendapatkan kembali 40 catatan, dan membutuhkan ringkasan satu baris untuk ditampilkan dalam kartu. Mengirim catatan ke model cloud menambah latensi dan biaya. Prompt API berjalan secara lokal dan mengembalikan hasil dalam waktu kurang dari 200 md.
3. Perbaikan bentuk JSON. Respons LLM sering kali tiba dalam format yang salah sehingga menjadi masalah. Jalankan perbaikan satu kali melalui Gemini Nano: “Ini adalah JSON yang tidak valid. Kembalikan hanya JSON yang valid dengan bidang yang sama.” Murah, cepat, tanpa biaya.
4. Stubbing lokal selama pengembangan. Saat Anda sedang mengimplementasikan endpoint baru dan backend belum sepenuhnya selesai, hasilkan badan respons yang masuk akal secara instan. Bentuknya tidak akan benar untuk produksi, tetapi ini membuka jalan bagi pekerjaan front-end. Gabungkan dengan server mock Apidog untuk pengaturan hibrida di mana endpoint kritis berasal dari contoh yang disimpan dan endpoint eksplorasi berasal dari Prompt API.
Membangunnya ke dalam ekstensi
Ekstensi mendapatkan Prompt API di saluran stabil mulai Chrome 138 dan seterusnya. Anda mendeklarasikan izin dan memanggil chrome.languageModel.
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;
}
});
Dua hal yang perlu diperhatikan. temperature dan topK adalah satu-satunya penyesuaian sampling yang diekspos API; topP tidak didukung di saluran stabil. Streaming adalah iterator asinkron, bukan server-sent events, sehingga pola konsumsinya adalah for await daripada pembaca SSE yang akan Anda tulis untuk Gemini berbasis cloud.
Membangunnya ke dalam halaman web
Halaman web membutuhkan pengguna untuk mengaktifkan flag atau asal Anda untuk terdaftar dalam Origin Trial. Token percobaan ditempatkan dalam tag meta.
<!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>
Jika Anda ingin menguji halaman tanpa token Origin Trial, buka chrome://flags/#prompt-api-for-gemini-nano, atur ke Enabled, dan mulai ulang Chrome. Flag ini telah stabil selama enam versi terakhir tetapi tidak dijanjikan akan tetap ada selamanya; gunakan jalur Origin Trial jika Anda menginginkan perilaku yang dapat diprediksi.
Batasan dan Jebakan yang Tidak Cukup Ditekankan dalam Dokumentasi
Enam hal yang akan membuat Anda kesulitan.
- Konteksnya kecil. 4K input, 1K output. Pangkas secara agresif. Jangan menyalin dokumen JSON 50K-token dan mengharapkan jawaban yang berguna.
- Dukungan perangkat keras tidak merata. Model membutuhkan sekitar 4 GB VRAM atau memori terpadu dan hanya berjalan di Chrome 138+ di Windows, macOS, Linux, dan ChromeOS terbaru. Chrome seluler tidak didukung saat tulisan ini dibuat.
- Pemuatan pertama lambat. Pengunduhan 2 GB terjadi di latar belakang tetapi memblokir sesi pertama. Selalu tampilkan antarmuka pengguna progres unduhan.
- Tidak ada pemanggilan alat. Jika tugas Anda membutuhkan model untuk memanggil API Anda, lakukan sendiri di sisi klien; model hanya memutuskan apa yang akan dipanggil.
- Penyimpangan prompt sistem. Model di perangkat mengikuti prompt sistem kurang kaku dibandingkan varian cloud. Tetapkan format dengan contoh satu kali dalam prompt sistem.
- Izin penting. Ekstensi membutuhkan
"languageModel"dalampermissions. Lupakan itu dan API akan secara diam-diam mengembalikanunavailable.
Siapkan fallback cloud sebelum Anda merilis
Aplikasi Anda dikirimkan ke pengguna yang tidak memiliki model. Selalu siapkan fallback. Polanya singkat:
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;
}
Privasi dan Apa yang Perlu Diberitahu kepada Pengguna
Titik jual Prompt API adalah bahwa input tidak pernah meninggalkan perangkat. Ini benar adanya hari ini dan merupakan tujuan desain eksplisit dari inisiatif AI Bawaan. Dua kualifikasi yang perlu diketahui:
- Model itu sendiri dilatih oleh Google menggunakan data Google; menjalankannya secara lokal tidak mengubah hal itu. Chrome mengirimkan bobot model bersama dengan pembaruan browser.
- Telemetri tentang penggunaan mungkin masih dilaporkan oleh Chrome di bawah pengaturan telemetri Chrome normal pengguna. Konten prompt bukan bagian dari telemetri tersebut.
Untuk sebagian besar aplikasi konsumen, ini adalah cerita privasi yang kuat yang dapat Anda tempatkan di UI Anda tanpa tinjauan hukum. Untuk beban kerja yang diatur (HIPAA, PCI), konfirmasikan dengan penasihat hukum sebelum Anda mengandalkannya.
Kapan Harus Melewatkan Prompt API
Pilih Gemini API berbasis cloud sebagai gantinya ketika:
- Tugas Anda membutuhkan lebih dari 4K token input.
- Anda membutuhkan pemanggilan alat, output terstruktur dengan penegakan skema, atau input multimodal di luar Origin Trial.
- Anda melayani pengguna di Safari, Firefox, atau Chrome seluler. Dukungan browser saat ini hanya untuk Chrome dan Apple belum mengisyaratkan tanggal rilis.
- Kualitas output lebih penting daripada latensi. Nano berukuran kecil; Pro tidak.
Untuk sudut pandang open-weight, Cara menjalankan DeepSeek V4 secara lokal mencakup menjalankan model yang jauh lebih besar di mesin pengembang tanpa meninggalkan jaringan lokal.
FAQ
Apakah Prompt API dalam proses standar web resmi? Ini ada dalam kelompok komunitas W3C WebML sebagai proposal. Perlakukan sebagai spesifik Chrome sampai mesin lain meluncurkannya.
Bisakah saya menggunakannya dari service worker? Di Chrome 138+, ya untuk ekstensi. Halaman web saat ini membatasinya pada konteks dokumen. Periksa dokumentasi sebelum Anda menerapkannya ke service worker.
Ukuran model apa yang sebenarnya saya dapatkan? Gemini Nano berada dalam rentang parameter 2-4B, dikuantisasi agar sesuai. Google belum berkomitmen pada ukuran tertentu; perkirakan akan tumbuh.
Apakah ia mendukung pemanggilan fungsi? Tidak di saluran stabil. Cabang Origin Trial memiliki dukungan alat eksperimental; jangan bergantung padanya untuk produksi.
Bagaimana cara mengujinya dalam CI otomatis? Anda belum dapat menjalankan model di perangkat di headless Chromium. Lakukan mocking pada global LanguageModel dalam pengujian dan jalankan jalur fallback cloud di CI.
Apakah gratis untuk penggunaan komersial? Ya. Tidak ada penagihan per panggilan. Anda menanggung biaya penyimpanan di perangkat pengguna (sekitar 2 GB) dan Chrome menangani pembaruan.
Untuk tim yang sudah menjalankan alur kerja LLM sisi cloud di samping ini, postingan Apa itu GPT-5.5 membahas trade-off sisi cloud lebih dalam, dan Apidog menangani mocking dan wiring fallback tanpa alat pengujian terpisah.
