Chrome AI Prompt Chat Playground
Testa det experimentella Chrome-inbyggda Prompt API:et (LanguageModel) direkt i din webbläsare. Skicka prompter till Gemini Nano på enheten, konfigurera en systemprompt och samplingparametrar, se svar strömma i realtid och övervaka modellnedladdning och kontextfönsteranvändning — ingen server krävs.
Readme
Vad är Prompt API?
Prompt API är ett experimentellt webbplattformsförslag från W3C Web Machine Learning Community Group som exponerar en webbläsarlevererad stor språkmodell för JavaScript genom ett window.LanguageModel-gränssnitt. Sidor skapar en session med LanguageModel.create(), konfigurerar den valfritt med en systemprompt och anropar sedan prompt() eller promptStreaming() för att få ett svar.
Till skillnad från att anropa ett värdbaserat LLM API körs modellen på användarens enhet. Det betyder att indata aldrig lämnar maskinen, sidan fungerar offline när modellen är cachad och det finns inga kostnader per begäran. I Chrome är den underliggande modellen Gemini Nano, men API:et är avsiktligt modellagnostiskt så andra webbläsare kan ansluta olika implementeringar.
En session är tillståndsbaserad: den spårar konversationshistoriken inom ett kontextfönster mätt i tokens. När fönstret fylls upp evikteras de äldsta icke-systemmeddelanden automatiskt (en contextoverflow-händelse utlöses) och du kan inspektera session.contextUsage och session.contextWindow när som helst för att se hur mycket utrymme som är kvar.
Verktygsbeskrivning
Den här lekplatsen är en interaktiv chattyta kopplad till window.LanguageModel. Den låter dig ställa in en systemprompt, skicka meddelanden och se modellen strömma tokens tillbaka i realtid. En förloppsindikator visar modellens tillgänglighet och nedladdningsförlopp, och en tokenanvändningsindikator rapporterar hur mycket av sessionens kontextfönster som förbrukas.
Sessionen skapas lat vid första sändning och återanvänds mellan meddelanden tills du ändrar systemprompt, då den förstörs och en ny skapas med de nya instruktionerna.
Funktioner
- Strömningsvar — använder
promptStreaming()så tokens visas i chatten när de produceras. - Systemprompt-redigerare — definiera en beständig roll eller beteende som villkorar varje svar.
- Stoppknapp — avbryt en pågående prompt med en
AbortControllerutan att förstöra sessionen. - Live-kontextanvändning — visualiserar
contextUsagemotcontextWindowså du kan se när konversationen är på väg att överflöda. - Tillgänglighet och nedladdningsförlopp — visar
availability()-tillstånd ochdownloadprogress-händelser medan modellen hämtas.
Användningsfall
- Testa prompts lokalt — iterera på systemprompts och few-shot-mönster utan att betala för ett moln-API.
- Testa genomförbarhet för AI på enheten — verifiera att Prompt API är tillgängligt, se hur stort kontextfönstret är och benchmarka svarshastighet på din hårdvara.
- Sekretessöm utkastning — brainstorm eller omformulera text som inte bör skickas till en tredjepartsserver.
Krav
- En webbläsare som implementerar Prompt API. Chrome 138+ exponerar det experimentellt; i äldre versioner kan du behöva aktivera det via
chrome://flags/#prompt-api-for-gemini-nanooch ha modellen på enheten nedladdad. - En säker kontext (HTTPS eller
localhost). - En enhet som uppfyller modellens maskinvarukrav (tillräckligt diskutrymme, RAM och en GPU/CPU som stöds). På enheter som inte stöds returnerar
availability()unavailable. - Initial bandbredd för att ladda ned modellen. Efterföljande sessioner återanvänder den cachade modellen.
Hur det fungerar
- Vid montering kontrollerar verktyget
typeof window.LanguageModel. Om det saknas ersätter en varning chattinmatningen. LanguageModel.availability()rapporterar ett avavailable,downloadable,downloadingellerunavailable. Resultatet visas i förloppsindikationen.- Första gången du trycker på Skicka anropar verktyget
LanguageModel.create()med enmonitorsom strömmardownloadprogress-händelser till gränssnittet. Om en systemprompt är inställd skickas den viainitialPrompts: [{ role: "system", content: ... }]. - Användarmeddelandet skickas genom
session.promptStreaming(text, { signal }). Den returneradeReadableStream<string>förbrukas bit för bit och läggs till assistentmeddelandet. - Efter varje svar läses
session.contextUsageochsession.contextWindowoch återspeglas i tokenanvändningsindikatorn. - Att trycka på Stopp anropar
controller.abort(), vilket avvisar den pågående strömmen med ettAbortErrormedan sessionen förblir aktiv för nästa prompt. - Redigering av systemprompt ogiltigförklarar den cachade sessionen: den befintliga
destroy()-as och nästa sändning skapar en ny session med de uppdaterade instruktionerna.
Alternativ förklarade
- Systemprompt — en fri instruktion som skickas som det första
system-rollmeddelandet. Det villkorar alla efterföljande omgångar. Om du lämnar det tomt skapas en session utan systemmeddelande. - Skicka / Stopp — Skicka skickar inmatningen som ett
user-meddelande. Stopp avbryter strömningssvaret utan att ta bort tidigare meddelanden. - Tokenanvändning —
använd / totalttokens för den aktuella sessionen. Näranvändnärmar sigtotaltkommer äldre användar-/assistentpar att evikteras vid nästa prompt. - Modellstatus — kombinerad avläsning av
availability()ochdownloadprogress. Medan modellen laddar ned animeras stapeln och visar en procentsats.
Begränsningar
- Prompt API är experimentell. Metodnamn, alternativ (t.ex.
inputUsagevscontextUsage) och händelsesemantik kan ändras mellan Chrome-versioner. - Utgångskvalitet, faktiskhet och instruktionsföljning beror helt på webbläsarlevererad modell och är inte garanterade.
- Kontextfönstret är litet jämfört med värdbaserade LLM:er. Långa konversationer kommer att överflöda och tyst släppa de tidigaste omgångarna.
- API:et exponeras inte för webworkers och kan kräva Permissions Policy (
language-model)-delegering på cross-origin iframes. - Det här verktyget exponerar avsiktligt inte
temperature,topK, toolanvändning, multimodala inmatningar, strukturerad utmatning (responseConstraint) eller sessionskloningen. De är en del av specifikationen men hålls utanför lekplatsen för att fokusera på vanlig chat.
Vanliga frågor
Varför säger det att API:et inte stöds?
window.LanguageModel är odefinierad i din webbläsare. Prova den senaste Chrome på skrivbordet och aktivera vid behov Prompt API-flaggan och vänta på att modellen på enheten laddar ned via chrome://components.
Varför är det första svaret långsamt? Det första anropet kan utlösa en modellnedladdning (se förloppsindikationen) och ett sessionsskapandesteg. Senare prompts återanvänder samma session och börjar strömma nästan omedelbar.
Lämnar min prompt enheten? Nej. Modellen körs lokalt. Din text skickas inte till någon server av det här verktyget.
Vad händer när kontexten fylls upp?
Sessionen utlöser en contextoverflow-händelse och evikterar de äldsta icke-systemomgångarna för att göra plats. Systemprompt bevaras.
Varför rensade ändring av systemprompt svarsstilen mitt i konversationen? Redigering av systemprompt förstör den aktuella sessionen och skapar en ny vid nästa sändning. Den nya sessionen har ingen minne av tidigare omgångar.