Apa Itu Chrome Prompt API? AI Browser untuk Pengembang API

Ashley Innocent

Ashley Innocent

29 April 2026

Apa Itu Chrome Prompt API? AI Browser untuk Pengembang API

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.

tombol

TL;DR

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:

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.

  1. Konteksnya kecil. 4K input, 1K output. Pangkas secara agresif. Jangan menyalin dokumen JSON 50K-token dan mengharapkan jawaban yang berguna.
  2. 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.
  3. Pemuatan pertama lambat. Pengunduhan 2 GB terjadi di latar belakang tetapi memblokir sesi pertama. Selalu tampilkan antarmuka pengguna progres unduhan.
  4. 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.
  5. Penyimpangan prompt sistem. Model di perangkat mengikuti prompt sistem kurang kaku dibandingkan varian cloud. Tetapkan format dengan contoh satu kali dalam prompt sistem.
  6. Izin penting. Ekstensi membutuhkan "languageModel" dalam permissions. Lupakan itu dan API akan secara diam-diam mengembalikan unavailable.

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:

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:

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.

tombol

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.