Start · Sprachen · JavaScript · Referenz · Summarizer

Summarizer

Schnittstelle

Die Schnittstelle <code>Summarizer</code> fasst Texte mit einem Sprachmodell zusammen, das im Browser läuft. Sie prüft, ob das Modell verfügbar ist, und lädt es bei Bedarf herunter.

seit JavaScript Chrome 138+ (Desktop), experimentell – nicht in Fi Kategorie: webapi

Signatur

interface Summarizer

Beschreibung

Summarizer ist die zentrale Schnittstelle der Summarizer-API. Sie gehört zu den „Built-in AI“-APIs. Die Zusammenfassung erstellt ein Sprachmodell, das der Browser selbst mitbringt. In Chrome ist das Gemini Nano. Der Text verlässt das Gerät nicht. Das schützt die Daten, funktioniert nach dem ersten Herunterladen auch offline und kostet keine API-Gebühren. Typische Einsätze sind TL;DR-Zeilen für Artikel, Stichpunkte aus langen Kommentar-Threads, Überschriften-Vorschläge für Formulare und kurze Vorschautexte (Teaser).

Die Nutzung läuft meist in vier Schritten ab:

  • Summarizer.availability(options) meldet für die gewünschten Optionen einen dieser Werte: "available", "downloadable", "downloading" oder "unavailable".
  • Summarizer.create(options) erzeugt eine Instanz und lädt das Modell bei Bedarf herunter. Den Fortschritt verfolgt man über die Option monitor und das Event downloadprogress.
  • summarize(input, options) gibt die fertige Zusammenfassung als String zurück. summarizeStreaming(input, options) gibt stattdessen einen ReadableStream zurück, der die Zusammenfassung Stück für Stück liefert.
  • measureInputUsage(input) und inputQuota zeigen, ob ein Text in das Kontextfenster des Modells passt. destroy() gibt die Ressourcen wieder frei.

Eine Instanz zeigt ihre Konfiguration über schreibgeschützte Eigenschaften: type, format, length, sharedContext, expectedInputLanguages, expectedContextLanguages, outputLanguage und inputQuota. Diese Werte lassen sich später nicht ändern. Wer andere Optionen braucht, erzeugt eine neue Instanz.

Parameter

Name Typ Default Beschreibung
$options.type "key-points" | "tldr" | "teaser" | "headline" "key-points" Art der Zusammenfassung: die wichtigsten Punkte als Liste, ein knapper Überblick, ein neugierig machender Anreißer oder eine Überschrift. Option für create() und availability().
$options.format "markdown" | "plain-text" "markdown" Ausgabeformat. Bei "markdown" kommen z. B. Aufzählungen als - -Zeilen zurück.
$options.length "short" | "medium" | "long" "short" Ungefähre Länge der Zusammenfassung. Wie lang das genau ist, hängt von type ab, z. B. 3, 5 oder 7 Stichpunkte bei "key-points".
$options.sharedContext string Hintergrundinformation, die für alle Aufrufe dieser Instanz gilt, z. B. "Artikel eines Tech-Blogs für Entwickler".
$options.expectedInputLanguages string[] BCP-47-Sprachcodes der Eingabetexte, z. B. ["de", "en"].
$options.expectedContextLanguages string[] Sprachen der Kontext-Angaben (sharedContext, context).
$options.outputLanguage string Gewünschte Ausgabesprache, z. B. "de". Ob eine Sprache unterstützt wird, prüft man vorher mit availability().
$options.monitor (monitor: CreateMonitor) => void Callback, der ein CreateMonitor-Objekt erhält. Daran registriert man das Event downloadprogress (event.loaded liegt zwischen 0 und 1). Nur für create().
$options.signal AbortSignal Bricht create() ab, einschließlich eines laufenden Downloads. Auch bei summarize(), summarizeStreaming() und measureInputUsage() möglich.

Rückgabewert

Typ
Promise<Summarizer>
Beschreibung
Summarizer.create() gibt ein Promise zurück, das mit einer einsatzbereiten Summarizer-Instanz erfüllt wird. Summarizer.availability() gibt Promise<"available" | "downloadable" | "downloading" | "unavailable"> zurück.