Chrome AI Prompt Chat Playground
Testen Sie die experimentelle Chrome-integrierte Prompt API (LanguageModel) direkt in Ihrem Browser. Senden Sie Prompts an Gemini Nano auf dem Gerät, konfigurieren Sie einen System-Prompt und Sampling-Parameter, beobachten Sie Antworten in Echtzeit streamen und überwachen Sie den Modelldownload und die Nutzung des Kontextfensters — ohne Server erforderlich.
Readme
Was ist die Prompt API?
Die Prompt API ist ein experimenteller Webplattform-Vorschlag der W3C Web Machine Learning Community Group, der ein vom Browser bereitgestelltes großes Sprachmodell JavaScript über eine window.LanguageModel-Schnittstelle zugänglich macht. Seiten erstellen eine Session mit LanguageModel.create(), konfigurieren sie optional mit einem System-Prompt und rufen dann prompt() oder promptStreaming() auf, um eine Antwort zu erhalten.
Im Gegensatz zum Aufrufen einer gehosteten LLM API läuft das Modell auf dem Gerät des Benutzers. Das bedeutet, dass Eingaben die Maschine nie verlassen, die Seite offline funktioniert, sobald das Modell gecacht ist, und es keine Pro-Request-Kosten gibt. In Chrome ist das zugrunde liegende Modell Gemini Nano, aber die API ist absichtlich modellunabhängig, sodass andere Browser unterschiedliche Implementierungen einbinden können.
Eine Session ist zustandsbehaftet: Sie verfolgt den Gesprächsverlauf innerhalb eines Kontextfensters, das in Tokens gemessen wird. Wenn das Fenster voll ist, werden die ältesten Nicht-System-Nachrichten automatisch entfernt (ein contextoverflow-Event wird ausgelöst), und Sie können session.contextUsage und session.contextWindow jederzeit überprüfen, um zu sehen, wie viel Platz noch verfügbar ist.
Tool-Beschreibung
Dieser Playground ist eine interaktive Chat-Oberfläche, die mit window.LanguageModel verbunden ist. Sie können einen System-Prompt festlegen, Nachrichten senden und das Modell in Echtzeit Tokens zurückstreamen sehen. Eine Fortschrittsleiste zeigt die Modellverfügbarkeit und den Download-Fortschritt an, und eine Token-Nutzungsleiste zeigt, wie viel des Kontextfensters der Session verbraucht wird.
Die Session wird beim ersten Senden träge erstellt und über Nachrichten hinweg wiederverwendet, bis Sie den System-Prompt ändern. Dann wird sie zerstört und eine neue mit den neuen Anweisungen erstellt.
Funktionen
- Streaming-Antworten — verwendet
promptStreaming(), sodass Tokens im Chat erscheinen, während sie produziert werden. - System-Prompt-Editor — definieren Sie eine persistente Rolle oder ein Verhalten, das jede Antwort beeinflusst.
- Stop-Schaltfläche — brechen Sie einen laufenden Prompt mit einem
AbortControllerab, ohne die Session zu beenden. - Live-Kontextnutzung — visualisiert
contextUsagegegencontextWindow, sodass Sie sehen können, wenn das Gespräch kurz vor einem Überlauf steht. - Verfügbarkeit und Download-Fortschritt — zeigt
availability()-Status unddownloadprogress-Events an, während das Modell abgerufen wird.
Anwendungsfälle
- Prompts lokal testen — iterieren Sie über System-Prompts und Few-Shot-Muster, ohne für eine Cloud API zu bezahlen.
- On-Device-AI-Machbarkeit testen — überprüfen Sie, ob die Prompt API verfügbar ist, sehen Sie, wie groß das Kontextfenster ist, und benchmarken Sie die Antwortgeschwindigkeit auf Ihrer Hardware.
- Datenschutzsensitives Verfassen — brainstormen oder umformulieren Sie Text, der nicht an einen Server eines Drittanbieters gesendet werden sollte.
Anforderungen
- Ein Browser, der die Prompt API implementiert. Chrome 138+ stellt sie experimentell zur Verfügung; in älteren Versionen müssen Sie sie möglicherweise über
chrome://flags/#prompt-api-for-gemini-nanoaktivieren und das On-Device-Modell herunterladen. - Ein sicherer Kontext (HTTPS oder
localhost). - Ein Gerät, das die Hardware-Anforderungen des Modells erfüllt (ausreichend Speicherplatz, RAM und eine unterstützte GPU/CPU). Auf nicht unterstützten Geräten gibt
availability()unavailablezurück. - Anfängliche Bandbreite zum Herunterladen des Modells. Nachfolgende Sessions verwenden das gecachte Modell wieder.
Funktionsweise
- Bei der Bereitstellung prüft das Tool
typeof window.LanguageModel. Falls nicht vorhanden, ersetzt eine Warnung die Chat-Eingabe. LanguageModel.availability()gibt einen vonavailable,downloadable,downloadingoderunavailablezurück. Das Ergebnis wird in der Fortschrittsleiste angezeigt.- Wenn Sie zum ersten Mal Senden drücken, ruft das Tool
LanguageModel.create()mit einemmonitorauf, derdownloadprogress-Events zur UI streamt. Wenn ein System-Prompt gesetzt ist, wird er überinitialPrompts: [{ role: "system", content: ... }]übergeben. - Die Benutzernachricht wird über
session.promptStreaming(text, { signal })gesendet. Der zurückgegebeneReadableStream<string>wird Chunk für Chunk verbraucht und an die Assistenten-Nachricht angehängt. - Nach jeder Antwort werden
session.contextUsageundsession.contextWindowgelesen und in der Token-Nutzungsleiste reflektiert. - Das Drücken von Stop ruft
controller.abort()auf, was den laufenden Stream mit einemAbortErrorablehnt, während die Session für den nächsten Prompt erhalten bleibt. - Das Bearbeiten des System-Prompts invalidiert die gecachte Session: die vorhandene wird
destroy()-ed und der nächste Senden erstellt eine neue Session mit den aktualisierten Anweisungen.
Optionen erklärt
- System-Prompt — eine freie Anweisung, die als erste
system-Rolle-Nachricht übergeben wird. Sie beeinflusst alle nachfolgenden Züge. Wenn Sie sie leer lassen, wird eine Session ohne System-Nachricht erstellt. - Senden / Stop — Senden sendet die Eingabe als
user-Nachricht. Stop bricht die Streaming-Antwort ab, ohne vorherige Nachrichten zu löschen. - Token-Nutzung —
used / totalTokens für die aktuelle Session. Wennusedsichtotalnähert, werden ältere Benutzer-/Assistenten-Paare beim nächsten Prompt entfernt. - Modellstatus — kombinierte Anzeige von
availability()unddownloadprogress. Während das Modell heruntergeladen wird, animiert sich die Leiste und zeigt einen Prozentsatz.
Einschränkungen
- Die Prompt API ist experimentell. Methodennamen, Optionen (z. B.
inputUsagevscontextUsage) und Event-Semantik können sich zwischen Chrome-Versionen ändern. - Ausgabequalität, Faktizität und Anweisungsbefolgung hängen vollständig vom vom Browser bereitgestellten Modell ab und sind nicht garantiert.
- Das Kontextfenster ist klein im Vergleich zu gehosteten LLMs. Lange Gespräche werden überlasten und löschen stillschweigend die frühesten Züge.
- Die API wird nicht Web Workers zugänglich gemacht und erfordert möglicherweise Permissions Policy (
language-model)-Delegierung auf Cross-Origin-iframes. - Dieses Tool stellt absichtlich
temperature,topK, Tool-Nutzung, multimodale Eingaben, strukturierte Ausgabe (responseConstraint) oder Session-Klonen nicht zur Verfügung. Sie sind Teil der Spezifikation, werden aber aus dem Playground herausgehalten, um sich auf einfachen Chat zu konzentrieren.
Häufig gestellte Fragen
Warum sagt es, dass die API nicht unterstützt wird?
window.LanguageModel ist in Ihrem Browser nicht definiert. Versuchen Sie die neueste Chrome auf dem Desktop und aktivieren Sie bei Bedarf das Prompt API-Flag und warten Sie, bis das On-Device-Modell über chrome://components heruntergeladen wird.
Warum ist die erste Antwort langsam? Der erste Aufruf kann einen Modell-Download (beobachten Sie die Fortschrittsleiste) und einen Session-Erstellungsschritt auslösen. Spätere Prompts verwenden dieselbe Session wieder und beginnen fast sofort zu streamen.
Verlässt mein Prompt das Gerät? Nein. Das Modell läuft lokal. Ihr Text wird von diesem Tool nicht an einen Server gesendet.
Was passiert, wenn der Kontext voll ist?
Die Session löst ein contextoverflow-Event aus und entfernt die ältesten Nicht-System-Züge, um Platz zu schaffen. Der System-Prompt wird beibehalten.
Warum hat das Ändern des System-Prompts den Antwortstil mitten im Gespräch gelöscht? Das Bearbeiten des System-Prompts zerstört die aktuelle Session und erstellt beim nächsten Senden eine neue. Die neue Session hat keine Erinnerung an vorherige Züge.