Start · Sprachen · JavaScript · Referenz · Summarizer.expectedInputLanguages

Summarizer.expectedInputLanguages

Eigenschaft

Schreibgeschützte Eigenschaft einer <code>Summarizer</code>-Instanz: Sie liefert die Sprachen der Eingabetexte, die beim Erzeugen mit <code>Summarizer.create()</code> angegeben wurden.

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

Signatur

Summarizer.expectedInputLanguages

Beschreibung

Die Eigenschaft expectedInputLanguages gehört zur Summarizer API. Mit dieser API fasst ein Sprachmodell im Browser Texte lokal zusammen. Die Eigenschaft gibt ein eingefrorenes Array mit BCP-47-Sprachcodes zurück, etwa ["de", "en"]. Diese Sprachen haben Sie beim Aufruf von Summarizer.create() über die gleichnamige Option angegeben. Der Browser hat beim Erzeugen geprüft, ob das Modell sie verarbeiten kann.

Die Angabe ist für das Modell ein Hinweis darauf, in welchen Sprachen die Texte kommen, die Sie an summarize() oder summarizeStreaming() übergeben. Unterstützt das Modell eine der Sprachen nicht, schlägt schon create() fehl. Ob eine Sprachkombination verfügbar ist, prüfen Sie vorher mit Summarizer.availability().

Brauchbar ist die Eigenschaft vor allem, wenn eine Instanz an anderer Stelle im Code wiederverwendet wird. Dann lässt sich prüfen, ob sie für die aktuelle Eingabesprache passt, oder ob eine neue Instanz mit anderen Sprachen nötig ist. Wurde die Option beim Erzeugen weggelassen, liefert die Eigenschaft null.

Rückgabewert

Typ
ReadonlyArray<string> | null
Beschreibung
Ein eingefrorenes Array (FrozenArray) mit BCP-47-Sprachcodes, die beim Erzeugen angegeben wurden. Wurde die Option nicht gesetzt, ist der Wert null.

Beispiele

Summarizer mit erwarteten Eingabesprachen erzeugen und auslesen

if ('Summarizer' in self) {
  const summarizer = await Summarizer.create({
    type: 'tldr',
    format: 'plain-text',
    length: 'short',
    expectedInputLanguages: ['de', 'en'],
    outputLanguage: 'de'
  });

  console.log(summarizer.expectedInputLanguages);
  console.log(Object.isFrozen(summarizer.expectedInputLanguages));
}
["de", "en"] true

Vorher die Verfügbarkeit einer Sprachkombination prüfen

const options = {
  type: 'key-points',
  expectedInputLanguages: ['ja'],
  outputLanguage: 'en'
};

const status = await Summarizer.availability(options);

if (status === 'unavailable') {
  console.warn('Japanische Eingaben werden nicht unterstützt.');
} else {
  const summarizer = await Summarizer.create(options);
  console.log('Eingabesprachen:', summarizer.expectedInputLanguages.join(', '));
}
Eingabesprachen: ja

Wiederverwendete Instanz prüfen oder eine neue erzeugen

const cache = new Map();

const getSummarizer = async (lang) => {
  const cached = cache.get(lang);
  if (cached?.expectedInputLanguages?.includes(lang)) {
    return cached;
  }
  const summarizer = await Summarizer.create({
    expectedInputLanguages: [lang],
    outputLanguage: lang
  });
  cache.set(lang, summarizer);
  return summarizer;
};

const text = document.querySelector('article').textContent;
const lang = document.documentElement.lang || 'en';
const summarizer = await getSummarizer(lang);
console.log(await summarizer.summarize(text));

Ohne Angabe beim Erzeugen

const summarizer = await Summarizer.create();
console.log(summarizer.expectedInputLanguages);
null

// Wichtig · Fallstricke

  • Experimentell: Die Summarizer API gibt es derzeit nur in Chromium-Browsern auf dem Desktop (Chrome ab Version 138), mit Einschränkungen bei der Hardware. Firefox und Safari unterstützen sie nicht. Prüfen Sie deshalb die Unterstützung mit 'Summarizer' in self, bevor Sie die API nutzen.
  • Die Eigenschaft ist schreibgeschützt, und das zurückgegebene Array ist eingefroren. Ein Aufruf wie push() löst im strikten Modus einen TypeError aus. Für andere Sprachen erzeugen Sie eine neue Instanz.
  • Ist eine angegebene Sprache nicht verfügbar, wird das Promise von create() abgewiesen, meist mit einer NotSupportedError-DOMException. Rufen Sie daher vorher Summarizer.availability() mit denselben Optionen auf.
  • Die Angabe ist ein Hinweis an das Modell, keine Prüfung der Eingabe. Wenn Sie Texte in anderen Sprachen übergeben, erhalten Sie unter Umständen schlechtere Zusammenfassungen, aber keine Fehlermeldung.
  • Verwenden Sie gültige BCP-47-Codes wie "de" oder "en-US". Der Browser kann die Codes normalisieren.
  • Beim ersten Aufruf von create() muss der Browser das Modell unter Umständen erst herunterladen. Dafür ist eine Nutzeraktivierung nötig, etwa ein Klick.