Signatur
Beschreibung
Die Eigenschaft expectedContextLanguages gibt an, in welchen Sprachen die Kontextstrings verfasst sein sollen, die der Zusammenfassung mitgegeben werden. Gemeint sind der sharedContext aus Summarizer.create() und die Option context bei summarize() bzw. summarizeStreaming(). Den Wert legen Sie beim Erzeugen der Instanz über die gleichnamige Option expectedContextLanguages fest. Danach lässt er sich nur noch lesen.
Der Wert ist ein eingefrorenes Array mit Sprachcodes nach BCP 47 (z. B. "de", "en-US"). Wurde die Option beim Erzeugen weggelassen, ist der Wert null. Anhand der Angabe kann der Browser prüfen, ob das eingebaute Modell diese Sprachen unterstützt. Es kann dann gezielt passende Sprachressourcen laden.
Nützlich ist die Eigenschaft, um eine bestehende Instanz zu prüfen. So stellen Sie z. B. vor dem Wiederverwenden eines zwischengespeicherten Summarizers fest, ob er zur Sprache des aktuellen Kontexts passt. Ebenso eignet sie sich zum Protokollieren und Debuggen der Konfiguration.
Rückgabewert
null, wenn beim Erzeugen keine expectedContextLanguages angegeben wurden.Beispiele
Kontextsprachen beim Erzeugen festlegen und auslesen
if ('Summarizer' in self) {
const summarizer = await Summarizer.create({
type: 'key-points',
format: 'markdown',
sharedContext: 'Technische Artikel für ein deutschsprachiges Entwickler-Magazin',
expectedInputLanguages: ['de', 'en'],
expectedContextLanguages: ['de'],
outputLanguage: 'de'
});
console.log(summarizer.expectedContextLanguages);
}
Standardwert ohne Angabe
const summarizer = await Summarizer.create({ type: 'tldr' });
console.log(summarizer.expectedContextLanguages);
Vorab die Verfügbarkeit prüfen und die Instanz passend wiederverwenden
const cache = new Map();
const getSummarizer = async (contextLang) => {
const cached = cache.get(contextLang);
if (cached?.expectedContextLanguages?.includes(contextLang)) {
return cached;
}
const options = { expectedContextLanguages: [contextLang], outputLanguage: 'de' };
const availability = await Summarizer.availability(options);
if (availability === 'unavailable') {
throw new Error(`Kontextsprache ${contextLang} wird nicht unterstützt`);
}
const summarizer = await Summarizer.create(options);
cache.set(contextLang, summarizer);
return summarizer;
};
const s = await getSummarizer('de');
const text = document.querySelector('article').textContent;
const result = await s.summarize(text, {
context: 'Zielgruppe: Einsteiger ohne Vorkenntnisse'
});
console.log(result);
// Wichtig · Fallstricke
- Experimentell: Die Summarizer-API ist derzeit nur in Chromium-Browsern mit eingebautem KI-Modell (z. B. Gemini Nano in Chrome 138+ auf dem Desktop) verfügbar. Firefox und Safari unterstützen sie nicht. Prüfen Sie die Unterstützung vorher mit
'Summarizer' in self. - Das zurückgegebene Array ist eingefroren. Versuche wie
push()schlagen fehl, im Strict Mode mit einemTypeError. Um andere Sprachen zu nutzen, müssen Sie eine neue Instanz erzeugen. - Werden Sprachen angefordert, die das Modell nicht unterstützt, wird das von
Summarizer.create()zurückgegebene Promise abgelehnt. Prüfen Sie deshalb vorher mitSummarizer.availability()und denselben Optionen. - Die Angabe ist ein Hinweis an das Modell, keine Prüfung. Kontext in einer anderen Sprache wird nicht zwingend abgewiesen, kann aber schlechtere Ergebnisse liefern.
- Der Browser kann die Sprachcodes normalisieren. Vergleichen Sie Einträge deshalb möglichst ohne Beachtung der Groß- und Kleinschreibung.