Chrome AI Prompt Chat Playground
Тествайте експериментално вградения Prompt API на Chrome (LanguageModel) директно в браузъра си. Изпращайте подсказки към Gemini Nano на устройството, конфигурирайте системна подсказка и параметри за вземане на проби, наблюдавайте отговорите в реално време и следете изтеглянето на модела и използването на контекстния прозорец — без нужда от сървър.
Прочети ме
Какво е Prompt API?
Prompt API е експериментално предложение за уеб платформа от W3C Web Machine Learning Community Group, което разкрива езиков модел, предоставен от браузъра, към JavaScript чрез интерфейс window.LanguageModel. Страниците създават сесия с LanguageModel.create(), по желание я конфигурират със системна подсказка и след това извикват prompt() или promptStreaming() за получаване на отговор.
За разлика от извикването на хостван LLM API, моделът работи на устройството на потребителя. Това означава, че входните данни никога не напускат машината, страницата работи офлайн след като моделът е кеширан и няма разходи за всяко заявление. В Chrome основният модел е Gemini Nano, но API е намерено модел-агностичен, така че други браузъри могат да включат различни реализации.
Сесията е със състояние: проследява историята на разговора в рамките на контекстен прозорец измерен в токени. Когато прозорецът се запълни, най-старите не-системни съобщения се премахват автоматично (се активира събитие contextoverflow) и можете да инспектирате session.contextUsage и session.contextWindow по всяко време, за да видите колко място е останало.
Описание на инструмента
Този playground е интерактивна чат повърхност свързана с window.LanguageModel. Позволява ви да зададете системна подсказка, да изпращате съобщения и да наблюдавате как моделът потоково връща токени в реално време. Лента на напредъка показва наличност на модела и напредък на изтеглянето, а лента за използване на токени докладва колко от контекстния прозорец на сесията се използва.
Сесията се създава мързеливо при първо изпращане и се преизползва в съобщенията, докато не промените системната подсказка, в който момент се унищожава и се създава нова със новите инструкции.
Функции
- Потокови отговори — използва
promptStreaming()така че токените се появяват в чата, докато се произвеждат. - Редактор на системна подсказка — дефинирайте постоянна роля или поведение, което обуславя всеки отговор.
- Бутон Спиране — прекъснете текущо изпълнявана подсказка с
AbortControllerбез разрушаване на сесията. - Живо използване на контекст — визуализира
contextUsageспрямоcontextWindowтака че да видите кога разговорът е на път да преливне. - Наличност и напредък на изтеглянето — показва
availability()състояние и събитиеdownloadprogressдокато моделът се изтегля.
Случаи на употреба
- Опитване на подсказки локално — итерирайте върху системни подсказки и few-shot модели без плащане за облачен API.
- Тестване на осъществимост на AI на устройството — проверете дали Prompt API е наличен, видете колко голям е контекстния прозорец и измерете скоростта на отговор на вашия хардуер.
- Чернови чувствителни към поверителност — мозъчна атака или преформулиране на текст, който не трябва да се изпраща на сървър на трета страна.
Изисквания
- Браузър, който реализира Prompt API. Chrome 138+ го разкрива експериментално; в по-старите версии може да трябва да го активирате чрез
chrome://flags/#prompt-api-for-gemini-nanoи да имате изтеглен моделът на устройството. - Защитен контекст (HTTPS или
localhost). - Устройство, което отговаря на хардуерните изисквания на модела (достатъчно дисково пространство, RAM и поддържан GPU/CPU). На неподдържани устройства
availability()връщаunavailable. - Начална честотна лента за изтегляне на модела. Последващите сесии преизползват кеширания модел.
Как работи
- При монтиране инструментът проверява
typeof window.LanguageModel. Ако отсъства, предупреждение замества входа на чата. LanguageModel.availability()докладва един отavailable,downloadable,downloadingилиunavailable. Резултатът се показва в лентата на напредъка.- Първия път когато натиснете Изпращане, инструментът извиква
LanguageModel.create()сmonitor, който потоково предава събитиеdownloadprogressкъм UI. Ако е зададена системна подсказка, тя се предава чрезinitialPrompts: [{ role: "system", content: ... }]. - Съобщението на потребителя се изпраща чрез
session.promptStreaming(text, { signal }). ВърнатияReadableStream<string>се консумира парче по парче и се добавя към съобщението на асистента. - След всеки отговор
session.contextUsageиsession.contextWindowсе четат и отразяват в лентата за използване на токени. - Натискането на Спиране извиква
controller.abort(), което отхвърля текущо изпълнявания поток сAbortErrorдокато оставя сесията жива за следващата подсказка. - Редактирането на системната подсказка инвалидира кеширана сесия: съществуващата се
destroy()-ва и следващото изпращане създава нова сесия с актуализираните инструкции.
Обяснени опции
- Системна подсказка — свободна инструкция предадена като първо съобщение с роля
system. Тя обуславя всички последващи ходове. Оставянето й празна създава сесия без системно съобщение. - Изпращане / Спиране — Изпращане изпраща входа като съобщение
user. Спиране прекъсва потоковия отговор без изтриване на предишни съобщения. - Използване на токени —
използвани / общотокени за текущата сесия. Когатоизползванисе приближи къмобщо, по-старите двойки потребител/асистент ще бъдат премахнати при следващата подсказка. - Статус на модела — комбинирано отчитане на
availability()иdownloadprogress. Докато моделът се изтегля, лентата се анимира и показва процент.
Ограничения
- Prompt API е експериментален. Имената на методи, опции (напр.
inputUsageсрещуcontextUsage) и семантика на събитията могат да се променят между издания на Chrome. - Качеството на изхода, фактичност и следване на инструкции зависят изцяло от браузъра предоставения модел и не са гарантирани.
- Контекстния прозорец е малък в сравнение с хоствани LLM. Дълги разговори ще преливнат и мълчаливо ще отхвърлят най-ранните ходове.
- API не е разкрит на уеб работници и може да изисква делегиране на Permissions Policy (
language-model) на кръстосани произход iframe. - Този инструмент намерено не разкрива
temperature,topK, използване на инструменти, многомодални входове, структуриран изход (responseConstraint) или клониране на сесия. Те са част от спецификацията, но са оставени извън playground, за да останем фокусирани върху обикновен чат.
ЧЗВ
Защо казва, че API не се поддържа?
window.LanguageModel е неопределен в вашия браузър. Опитайте най-новия Chrome на десктоп и, ако е необходимо, активирайте флага на Prompt API и изчакайте моделът на устройството да се изтегли чрез chrome://components.
Защо първия отговор е бавен? Първото извикване може да активира изтегляне на модела (наблюдавайте лентата на напредъка) и стъпка на създаване на сесия. По-късните подсказки преизползват същата сесия и започват потоково почти незабавно.
Моята подсказка напуска ли устройството? Не. Моделът работи локално. Вашият текст не се изпраща на никой сървър от този инструмент.
Какво се случва когато контекстът се запълни?
Сесията активира събитие contextoverflow и премахва най-старите не-системни ходове, за да направи място. Системната подсказка се запазва.
Защо промяната на системната подсказка изчисти стила на отговор по средата на разговора? Редактирането на системната подсказка унищожава текущата сесия и създава нова при следващото изпращане. Новата сесия няма памет на предишните ходове.