← Усі статті

Prompt API в Chrome: локальний Gemini Nano з JavaScript

LanguageModel.create() без сервера й API-ключа — можливості, ліміти ~4K токенів і обовʼязковий fallback на hosted LLM.

Prompt API в Chrome: локальний Gemini Nano з JavaScript
Зміст

Коротко

У Chrome 138+ зʼявився Prompt API: виклик await LanguageModel.create() запускає Gemini Nano на пристрої — без сервера, ключа й мережевого round-trip. Модель (~4 GB) підтягується з оновленнями браузера. Для продакшену все одно потрібен fallback на hosted API: підходить не кожен користувач.

Що сталося

Спека й прапорці еволюціонували з 2024 року; до травня 2026 API у Stable та через Origin Trial для продакшен-доменів. На HN і в розширеннях уже шиплять фічі «за вихідні».

Мінімальний сценарій:

const session = await LanguageModel.create({
  systemPrompt: "You are a concise technical assistant.",
});
const reply = await session.prompt("Summarize this in one sentence.");

Стрімінг — session.promptStreaming() з for await, скасування — через AbortSignal.

Чому це важливо

Це третій вектор «дешевого AI» поруч із локальними серверами та open weights: користувачу нічого не встановлювати — достатньо Chrome. Для задач рівня «автодоповнення» маржа hosted API стискається.

Обмеження:

Параметр Реальність
Контекст ~4K in / ~1K out
Мови English у пріоритеті
Залізо ~4 GB VRAM або 16 GB RAM + 4+ ядра
Диск ~22 GB вільно
Слабко Довгий RAG, код, ланцюги міркувань

Mozilla попереджає про vendor lock-in промптів під Nano — fallback потрібен і для Safari/Firefox, і через зміну моделі при автооновленні Chrome.

На практиці

  1. Перевіряти LanguageModel.availability().
  2. Звести on-device і hosted до одного AsyncIterable<string>.
  3. На fallback — дешевша модель, інакше економія лише переноситься.
  4. Не обіцяти приватність без прозорості для користувача.
  5. JSON mode нестабільний; довгі сторінки різати.

Правило: <500 токенів ввод, <200 вивід, помилка некритична → Nano; інакше hosted.

Підсумок

Prompt API — не «GPT у вкладці», а безкоштовний tier для легких задач. Варто викотити одну фічу з fallback і виміряти частку on-device користувачів.