Signatur
Beschreibung
LanguageModel ist der Einstiegspunkt der Prompt API. Webseiten und Browser-Erweiterungen schicken damit Text an ein Sprachmodell, das der Browser selbst bereitstellt. Je nach Umgebung gehen auch Bilder und Audio. Die Verarbeitung läuft komplett auf dem Gerät. Es fallen keine Server- oder API-Kosten an, die Eingaben verlassen den Rechner nicht, und nach dem einmaligen Herunterladen des Modells funktioniert alles auch offline. Gut eignet sich die API zum Klassifizieren, Zusammenfassen, Umformulieren, Extrahieren strukturierter Daten und für kleine Chat-Assistenten. Für präzises Faktenwissen oder lange Denkketten ist das kleine Modell dagegen nicht gemacht.
Es gibt keinen öffentlichen Konstruktor. Zuerst prüft man mit der statischen Methode LanguageModel.availability(options), ob ein Modell nutzbar ist. Das Ergebnis ist "unavailable", "downloadable", "downloading" oder "available". Danach erzeugt LanguageModel.create(options) eine Sitzung. Dabei lassen sich ein System-Prompt und Beispiel-Dialoge (initialPrompts), die erwarteten Ein- und Ausgabearten, ein AbortSignal und ein Download-Monitor übergeben.
Wichtige Instanz-Mitglieder:
prompt(input, options): liefert die vollständige Antwort alsPromise<string>. MitresponseConstraint(JSON-Schema oderRegExp) lässt sich die Ausgabe auf ein festes Format zwingen.promptStreaming(input, options): gibt einenReadableStream<string>zurück, der die Antwort Stück für Stück liefert.append(input): fügt dem Kontext Nachrichten hinzu, ohne eine Antwort anzufordern.measureInputUsage(input),inputUsage,inputQuota: messen, wie viele Token eine Eingabe braucht, wie viele bereits verbraucht sind und wie groß das Kontextfenster ist.clone()kopiert eine Sitzung samt Verlauf,destroy()gibt die Ressourcen frei.- Das Ereignis
quotaoverflow(bzw.onquotaoverflow) feuert, wenn ältere Nachrichten aus dem Kontext fallen, weil das Kontingent überschritten wurde.
Jede Sitzung merkt sich den ganzen Gesprächsverlauf. Für unabhängige Aufgaben erzeugt man deshalb getrennte Sitzungen oder klont eine vorbereitete Basis-Sitzung. So beeinflussen sich die Aufgaben nicht gegenseitig und der Kontext bleibt klein.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $options.initialPrompts | Array<{role: "system"|"user"|"assistant", content: string|Array}> | [] | Startkontext der Sitzung, der nur an create() übergeben wird. Die Rolle "system" ist nur als erster Eintrag erlaubt. Paare aus user und assistant dienen als Few-Shot-Beispiele. |
| $options.expectedInputs | Array<{type: "text"|"image"|"audio", languages?: string[]}> | [{type: "text"}] | Eingabearten und Sprachen (BCP-47), die man verwenden will. Gibt man sie auch an availability(), lässt sich vorab prüfen, ob die Kombination unterstützt wird. |
| $options.expectedOutputs | Array<{type: "text", languages?: string[]}> | [{type: "text"}] | Erwartete Ausgabesprache(n), z. B. [{ type: "text", languages: ["de"] }]. |
| $options.temperature | number | Modellstandard | Steuert, wie zufällig die Antworten ausfallen. Ist nur zusammen mit topK gültig. Im Web teils nicht verfügbar (nur in Erweiterungen). |
| $options.topK | number | Modellstandard | Anzahl der Token-Kandidaten pro Schritt. Ist nur zusammen mit temperature gültig. |
| $options.signal | AbortSignal | Bricht das Erzeugen der Sitzung oder den Download des Modells ab. | |
| $options.monitor | (m: CreateMonitor) => void | Callback, der ein EventTarget erhält. Über das Ereignis downloadprogress (e.loaded von 0 bis 1) lässt sich der Modell-Download verfolgen. |
Rückgabewert
LanguageModel.create() gibt ein Promise zurück, das mit einer einsatzbereiten Sitzung erfüllt wird. Ist die Konfiguration nicht verfügbar, wird es mit NotSupportedError abgelehnt, bei fehlender Berechtigung mit NotAllowedError.