Signatur
Beschreibung
Die Eigenschaft length einer Summarizer-Instanz gibt an, wie lang die vom eingebauten Sprachmodell erzeugten Zusammenfassungen ungefähr werden. Der Wert wird einmalig über die Option length von Summarizer.create() festgelegt und lässt sich danach nicht mehr ändern. Fehlt die Option, gilt "medium".
Die Länge ist relativ. Was "short", "medium" und "long" konkret bedeuten, hängt vom type des Summarizers ab. In Chrome gelten ungefähr diese Werte:
"tldr"und"teaser": 1, 3 bzw. 5 Sätze"key-points": 3, 5 bzw. 7 Stichpunkte"headline": etwa 12, 17 bzw. 22 Wörter
Die Eigenschaft ist vor allem nützlich, wenn eine Instanz weitergereicht oder zwischengespeichert wird. So kann man prüfen, ob ein vorhandener Summarizer die gewünschte Konfiguration hat, oder die Länge in der Oberfläche anzeigen. Wird eine andere Länge gebraucht, muss man mit Summarizer.create() eine neue Instanz erzeugen.
Rückgabewert
"medium".Beispiele
Summarizer mit kurzer Länge erzeugen und Wert auslesen
if ('Summarizer' in self) {
const availability = await Summarizer.availability({ type: 'tldr', length: 'short' });
if (availability !== 'unavailable') {
const summarizer = await Summarizer.create({
type: 'tldr',
format: 'plain-text',
length: 'short'
});
console.log(summarizer.type, summarizer.length);
}
} else {
console.log('Summarizer API wird nicht unterstützt');
}
Standardwert, wenn keine Länge angegeben wird
const summarizer = await Summarizer.create({ type: 'key-points' });
console.log(summarizer.length); // Standardwert
const text = document.querySelector('article').innerText;
const summary = await summarizer.summarize(text);
console.log(summary);
Summarizer-Instanzen pro Länge zwischenspeichern
const cache = new Map();
const getSummarizer = async (length = 'medium') => {
const cached = cache.get(length);
// Nur wiederverwenden, wenn die Konfiguration passt
if (cached?.length === length) return cached;
const summarizer = await Summarizer.create({ type: 'teaser', length });
cache.set(length, summarizer);
return summarizer;
};
const lang = await getSummarizer('long');
console.log(`Länge: ${lang.length}`);
const teaser = await lang.summarize('Langer Blogartikel …');
console.log(teaser);
// Wichtig · Fallstricke
- Schreibgeschützt: Eine Zuweisung wie
summarizer.length = 'long'hat keine Wirkung und wirft im Strict Mode einenTypeError. Für eine andere Länge muss man eine neue Instanz erzeugen und die alte mitdestroy()freigeben. - Verwechslungsgefahr:
Summarizer.lengthdirekt am Konstruktor istFunction.prototype.length, also die Anzahl der Parameter der Funktion, und nicht die Zusammenfassungslänge. Die hier beschriebene Eigenschaft liest man immer an einer Instanz, zum Beispiel ansummarizer.length. - Nur Richtwert: Die Länge steuert das Modell, ist aber keine harte Grenze. Die tatsächliche Zahl der Sätze oder Wörter kann abweichen.
- Kompatibilität: Die API ist experimentell. Sie ist bisher nur in Chromium-Browsern auf dem Desktop verfügbar (Chrome ab 138) und braucht ein lokal heruntergeladenes Modell (Gemini Nano). Firefox und Safari unterstützen sie nicht. Immer vorher mit
'Summarizer' in selfundSummarizer.availability()prüfen. Fürcreate()ist bei einem nötigen Modell-Download eine Nutzeraktivierung (User Activation) erforderlich. - Ungültige Werte für die Option
length(etwa"xl") führen increate()zu einemTypeError.