Hva er Prompt API?

Prompt API er et eksperimentelt webplattformforslag fra W3C Web Machine Learning Community Group som eksponerer en nettleserbasert stor språkmodell til JavaScript gjennom et window.LanguageModel-grensesnitt. Sider oppretter en økt med LanguageModel.create(), konfigurerer den eventuelt med en systemprompt, og kaller deretter prompt() eller promptStreaming() for å få et svar.

I motsetning til å kalle et vertekst LLM API, kjører modellen på brukerens enhet. Det betyr at inndataene aldri forlater maskinen, siden fungerer frakoblet når modellen er bufret, og det er ingen kostnader per forespørsel. I Chrome er den underliggende modellen Gemini Nano, men API-et er bevisst modellagnnostisk slik at andre nettlesere kan plugge inn ulike implementeringer.

En økt er tilstandsfull: den sporer samtalehistorikken innenfor et kontekstvindu målt i tokens. Når vinduet fylles opp, fjernes de eldste ikke-systemmeldingene automatisk (en contextoverflow-hendelse utløses), og du kan inspisere session.contextUsage og session.contextWindow når som helst for å se hvor mye plass som er igjen.

Verktøybeskrivelse

Denne lekeplassen er en interaktiv chatflate koblet til window.LanguageModel. Den lar deg angi en systemprompt, sende meldinger og se modellen streame tokens tilbake i sanntid. En fremdriftslinje viser modelltilgjengelighet og nedlastingsfremdrift, og en tokenbruksbar rapporterer hvor mye av øktens kontekstvindu som brukes.

Økten opprettes lat ved første sending og gjenbrukes på tvers av meldinger til du endrer systemprompt, på hvilket punkt den blir ødelagt og en ny opprettes med de nye instruksjonene.

Funksjoner

  • Strømmende svar — bruker promptStreaming() slik at tokens vises i chatten når de produseres.
  • Systemprompt-editor — definer en vedvarende rolle eller oppførsel som betinger hvert svar.
  • Stoppknapp — avbryt en pågående prompt med en AbortController uten å ødelegge økten.
  • Live kontekstbruk — visualiserer contextUsage mot contextWindow slik at du kan se når samtalen er i ferd med å overflyte.
  • Tilgjengelighet og nedlastingsfremdrift — viser availability()-tilstand og downloadprogress-hendelser mens modellen blir hentet.

Brukstilfeller

  • Prøve prompts lokalt — iterer på systemprompts og few-shot-mønstre uten å betale for et sky-API.
  • Teste gjennomførbarhet av AI på enheten — verifiser at Prompt API er tilgjengelig, se hvor stort kontekstvinduen er, og benchmark responshastighetene på maskinvaren din.
  • Personvernfølsom utkasting — brainstorm eller omformulering av tekst som ikke skal sendes til en tredjepartsserver.

Krav

  • En nettleser som implementerer Prompt API. Chrome 138+ eksponerer det eksperimentelt; i eldre versjoner kan du trenge å aktivere det via chrome://flags/#prompt-api-for-gemini-nano og ha modellen på enheten lastet ned.
  • En sikker kontekst (HTTPS eller localhost).
  • En enhet som oppfyller modellens maskinvarekrav (tilstrekkelig diskplass, RAM og en støttet GPU/CPU). På ikke-støttede enheter returnerer availability() unavailable.
  • Innledende båndbredde for å laste ned modellen. Påfølgende økter gjenbruker den bufrede modellen.

Hvordan det fungerer

  1. Ved montering kontrollerer verktøyet typeof window.LanguageModel. Hvis det mangler, erstatter en advarsel chatinndataene.
  2. LanguageModel.availability() rapporterer en av available, downloadable, downloading eller unavailable. Resultatet vises i fremdriftslinja.
  3. Første gang du trykker Send, kaller verktøyet LanguageModel.create() med en monitor som strømmer downloadprogress-hendelser til brukergrensesnittet. Hvis en systemprompt er angitt, sendes den via initialPrompts: [{ role: "system", content: ... }].
  4. Brukerens melding sendes gjennom session.promptStreaming(text, { signal }). Den returnerte ReadableStream<string> forbrukes bit for bit og legges til assistentmeldingen.
  5. Etter hvert svar leses session.contextUsage og session.contextWindow og reflekteres i tokenbruksbaren.
  6. Å trykke Stop kaller controller.abort(), som avviser strømmen som er i ferd med å kjøre med en AbortError mens økten holdes i live for neste prompt.
  7. Redigering av systemprompt ugyldiggjør den bufrede økten: den eksisterende blir destroy()-et og neste sending oppretter en ny økt med de oppdaterte instruksjonene.

Alternativer forklart

  • Systemprompt — en friform-instruksjon sendt som den første system-rolle-meldingen. Den betinger alle påfølgende turer. Å la den være tom oppretter en økt uten en systemmeldelse.
  • Send / StoppSend sender inndataene som en user-melding. Stopp avbryter strømmingen av svar uten å slette tidligere meldinger.
  • Tokenbrukbrukt / totalt tokens for gjeldende økt. Når brukt nærmer seg totalt, vil eldre bruker-/assistentpar bli fjernet ved neste prompt.
  • Modellstatus — kombinert avlesning av availability() og downloadprogress. Mens modellen lastes ned, animeres linja og viser en prosentandel.

Begrensninger

  • Prompt API er eksperimentell. Metodenavn, alternativer (f.eks. inputUsage vs contextUsage) og hendelsessemantikk kan endres mellom Chrome-utgivelser.
  • Utdatakvalitet, faktualitet og instruksjonsfølging avhenger helt av nettleserens tilbudte modell og er ikke garantert.
  • Kontekstvinduen er lite sammenlignet med vertekst LLM-er. Lange samtaler vil overflyte og stille slette de tidligste turene.
  • API-et er ikke eksponert for webarbeidere og kan kreve Permissions Policy (language-model)-delegering på tverrorgins-iframes.
  • Dette verktøyet eksponerer bevisst ikke temperature, topK, verktøybruk, multimodale inndataer, strukturert utdata (responseConstraint) eller øktkloning. De er del av spesifikasjonen, men holdt ut av lekeplassen for å holde fokus på vanlig chat.

Vanlige spørsmål

Hvorfor sier det at API-et ikke støttes? window.LanguageModel er udefinert i nettleseren din. Prøv den nyeste Chrome på skrivebord og, hvis nødvendig, aktiver Prompt API-flagget og vent på at modellen på enheten skal lastes ned via chrome://components.

Hvorfor er det første svaret sakte? Det første anropet kan utløse en modelllasting (se fremdriftslinja) og et øktopprettingstrinn. Senere prompts gjenbruker samme økt og begynner å streame nesten umiddelbart.

Forlater prompten min enheten? Nei. Modellen kjører lokalt. Teksten din sendes ikke til noen server av dette verktøyet.

Hva skjer når konteksten fylles opp? Økten utløser en contextoverflow-hendelse og fjerner de eldste ikke-systemturene for å gjøre plass. Systemprompt bevares.

Hvorfor fjernet endring av systemprompt svarsstilen midt i samtalen? Redigering av systemprompt ødelegger gjeldende økt og oppretter en ny ved neste sending. Den nye økten har ingen minne om tidligere turer.