Start · Sprachen · JavaScript · Referenz · Summarizer.expectedContextLanguages

Summarizer.expectedContextLanguages

Eigenschaft

Schreibgeschützte Eigenschaft einer <code>Summarizer</code>-Instanz, die die erwarteten Sprachen der Kontextstrings als eingefrorenes Array von BCP-47-Sprachcodes liefert.

seit JavaScript Chrome/Edge 138+ (experimentell, keine Baseline) Kategorie: webapi

Signatur

Summarizer.expectedContextLanguages

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

Typ
ReadonlyArray<string> | null
Beschreibung
Ein eingefrorenes Array von BCP-47-Sprachcodes, die für die Kontextstrings erwartet werden. 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);
}
["de"]

Standardwert ohne Angabe

const summarizer = await Summarizer.create({ type: 'tldr' });
console.log(summarizer.expectedContextLanguages);
null

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 einem TypeError. 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 mit Summarizer.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.