Mit integrierter KI Zusammenfassungen erstellen

Veröffentlicht: 11. November 2024, letzte Aktualisierung: 1. Mai 2025

Erklärvideo Web Erweiterungen Chrome-Status Absicht
GitHub Hinter einer Flagge Origin-Testversion Hinter einer Flagge Origin-Testversion Ansicht Testabsicht

Stellen Sie sich vor, Sie könnten Ihren Nutzern die Möglichkeit bieten, lange Artikel, komplexe Dokumente oder sogar lebhafte Chatunterhaltungen in prägnante und aussagekräftige Zusammenfassungen zu verdichten.

Mit der Summarizer API können Sie verschiedene Arten von Zusammenfassungen in unterschiedlichen Längen und Formaten generieren, z. B. Sätze, Absätze oder Aufzählungslisten. Wir sind der Meinung, dass diese API in folgenden Szenarien nützlich ist:

  • Die wichtigsten Punkte eines Artikels oder einer Chatunterhaltung zusammenfassen.
  • Titel und Überschriften für Artikel vorschlagen
  • Erstellen einer kurzen und informativen Zusammenfassung eines langen Textes.
  • Einen Teaser für ein Buch basierend auf einer Buchrezension generieren

Jetzt starten

Nehmen Sie am Ursprungstest der Summarizer API teil, der von Chrome 131 bis Chrome 139 läuft. Mit Ursprungstests können Sie die Funktion echten Nutzern an Ihrem Ursprung in Chrome anbieten.

Für den Ursprungstest registrieren

So verwenden Sie die Summarizer API:

  1. Sie bestätigen, dass Sie die Google-Richtlinie zur unzulässigen Nutzung von generativer KI gelesen und verstanden haben.
  2. Rufen Sie den Summarizer API-Ursprungstest auf.
  3. Klicken Sie auf Registrieren und füllen Sie das Formular aus.
    • Geben Sie im Feld Web-Ursprung Ihren Ursprung oder die Erweiterungs-ID chrome-extension://YOUR_EXTENSION_ID ein.
  4. Klicken Sie auf Registrieren, um die Änderungen zu senden.
  5. Kopieren Sie das bereitgestellte Token und fügen Sie es auf jeder Webseite in Ihrem Ursprung oder in der Datei für Ihre Erweiterung ein, auf der der Test aktiviert werden soll.
  6. Verwenden Sie die Summarizer API.

Weitere Informationen zum Einstieg in Ursprungstests

Einschränkungen während des Testzeitraums für den Ursprung

Während des Testzeitraums unterstützt die Summarizer API nur die Zusammenfassung englischer Texte, da die Modellqualität nur gründlich an englischen Inhalten getestet wurde. Wir möchten diese Einschränkung aufheben, sobald wir zusätzliche Sprachen auf Qualität und Sicherheit getestet haben und die API allgemein verfügbar ist.

Unterstützung für localhost hinzufügen

Wenn Sie während des Ursprungstests auf die Summarizer API auf localhost zugreifen möchten, benötigen Sie Chrome Canary. Führen Sie dann die folgenden Schritte aus:

  1. Öffnen Sie chrome://flags/#summarization-api-for-gemini-nano.
  2. Wählen Sie Aktiviert aus.
  3. Klicken Sie auf Neu starten oder starten Sie Chrome neu.

Summarizer API verwenden

Führen Sie zuerst die Funktionserkennung aus, um zu prüfen, ob der Browser die Summarizer API unterstützt.

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

Download des Modells

Die Summarizer API verwendet ein Modell, das für die Erstellung hochwertiger Zusammenfassungen trainiert wurde. Die API ist zwar in Chrome integriert, das Modell wird jedoch separat heruntergeladen, wenn eine Website die API zum ersten Mal verwendet.

Rufen Sie die asynchrone Funktion Summarizer.availability() auf, um zu prüfen, ob das Modell einsatzbereit ist. Es gibt ein Promise mit den folgenden Werten zurück.

  • "unavailable" bedeutet, dass die Implementierung die angeforderten Optionen nicht unterstützt.
  • "downloadable" bedeutet, dass die Implementierung die angeforderten Optionen unterstützt, der Browser aber zuerst etwas herunterladen muss, z. B. ein Modell (in Chrome Gemini Nano) oder eine Feinabstimmung für das Modell.
  • "downloading" bedeutet, dass die Implementierung die angeforderten Optionen unterstützt, aber ein laufender Download abgeschlossen werden muss, bevor fortgefahren werden kann.
  • "available" bedeutet, dass die Implementierung die angeforderten Optionen unterstützt und der Summarizer fortfahren kann.

Rufen Sie die asynchrone Funktion Summarizer.create() auf, um den Modelldownload auszulösen und den Summarizer zu erstellen. Wenn die Antwort auf availability() downloadable oder downloading war, solltest du den Downloadfortschritt im Blick behalten. So können Sie den Nutzer darüber informieren, dass der Download einige Zeit in Anspruch nehmen kann, bevor die Zusammenfassung erstellt werden kann.

const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

API-Funktionen

Mit der Funktion create() können Sie ein neues Zusammenfassungsobjekt nach Ihren Anforderungen konfigurieren. Es nimmt ein optionales options-Objekt mit den folgenden Parametern an:

  • sharedContext: Zusätzlicher gemeinsamer Kontext, der dem Summarisierer helfen kann.
  • type: Der Typ der Zusammenfassung mit den zulässigen Werten key-points (Standard), tl;dr, teaser und headline. Weitere Informationen finden Sie in der folgenden Tabelle.
  • format: Das Format der Zusammenfassung. Zulässige Werte: markdown (Standard) und plain-text.
  • length: Die Länge der Zusammenfassung. Zulässige Werte: short, medium (Standard) und long. Die Bedeutung dieser Längen variiert je nach angeforderter type. In der Chrome-Implementierung besteht eine kurze Zusammenfassung der wichtigsten Punkte beispielsweise aus drei Aufzählungspunkten und eine kurze Zusammenfassung aus einem Satz.

In der folgenden Tabelle sind die verschiedenen Arten von Zusammenfassungen und ihre entsprechenden Längen aufgeführt. Die Längen geben den maximal möglichen Wert an, da die Ergebnisse manchmal kürzer sein können.

Typ Bedeutung Länge
"tl;dr" Die Zusammenfassung sollte kurz und prägnant sein und einen schnellen Überblick über die Eingabe bieten, der für einen beschäftigten Leser geeignet ist.
kurz 1 Satz
mittel 3 Sätze
long 5 Sätze
"teaser" Die Zusammenfassung sollte sich auf die interessantesten oder spannendsten Teile des Eingabematerials konzentrieren und den Leser dazu anregen, mehr zu lesen.
kurz 1 Satz
mittel 3 Sätze
long 5 Sätze
"key-points" Die Zusammenfassung sollte die wichtigsten Punkte aus der Eingabe in einer Aufzählungsliste enthalten.
kurz 3 Aufzählungspunkte
mittel 5 Aufzählungspunkte
long 7 Aufzählungspunkte
"headline" Die Zusammenfassung sollte den Hauptpunkt der Eingabe in einem einzigen Satz im Format einer Artikelüberschrift enthalten.
kurz 12 Wörter
mittel 17 Wörter
long 22 Wörter

Im folgenden Beispiel wird gezeigt, wie der Summer initialisiert wird.

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}
if (availability === 'available') {
  // The Summarizer API can be used immediately .
  summarizer = await Summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await Summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(`Downloaded ${e.loaded * 100}%`);
  });
  await summarizer.ready;
}

Zusammenfassung ausführen

Es gibt zwei Möglichkeiten, den Summarizer auszuführen: Streaming und Batch (nicht Streaming).

Batch-Zusammenfassung

Bei der Batch-Zusammenfassung verarbeitet das Modell die Eingabe als Ganzes und generiert dann die Ausgabe.

Rufen Sie die Funktion summarize() auf, um eine Batch-Zusammenfassung abzurufen. Das erste Argument ist der Text, der zusammengefasst werden soll. Das zweite, optionale Argument ist ein Objekt mit einem context-Feld. In diesem Feld können Sie Hintergrunddetails hinzufügen, die die Zusammenfassung verbessern könnten.

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

Streaming-Zusammenfassung

Bei der Streaming-Zusammenfassung werden Ergebnisse in Echtzeit angezeigt. Die Ausgabe wird kontinuierlich aktualisiert, während die Eingabe hinzugefügt und angepasst wird.

Wenn Sie eine Streaming-Zusammenfassung abrufen möchten, rufen Sie die Funktion summarizeStreaming() des Summarizers auf. Gehen Sie dann die verfügbaren Textsegmente im Stream durch.

let result = '';
let previousChunk = '';
for await (const chunk of stream) {
  const newChunk = chunk.startsWith(previousChunk)
      ? chunk.slice(previousChunk.length) : chunk;
  console.log(newChunk);
  result += newChunk;
  previousChunk = chunk;
}
console.log(result);

summarizeStreaming() gibt eine ReadableStream zurück, bei der die Antwortsegmente aufeinander aufbauen. Das bedeutet, dass jede Antwort die gesamte bis zu diesem Punkt generierte Zusammenfassung enthält, nicht nur das nächste Segment. Das ist nicht beabsichtigt.

Wir möchten uns an anderen Streaming-APIs auf der Plattform orientieren, bei denen die Segmente aufeinanderfolgende Teile eines einzigen langen Streams sind. Bis dahin können Sie Folgendes implementieren, um das gewünschte Verhalten zu erzielen:

let result = '';
let previousLength = 0;
for await (const segment of stream) {
  const newContent = segment.slice(previousLength);
  console.log(newContent);
  previousLength = segment.length;  
  result += newContent;
}
console.log(result);

Demo

Sie können die Summarizer API im Summarizer API Playground ausprobieren.

Standardisierungsaufwand

Wir arbeiten daran, die Summarizer API zu standardisieren, um für plattformübergreifende Kompatibilität zu sorgen.

Unser API-Vorschlag hat Unterstützung von der Community erhalten und wird nun in der W3C Web Incubator Community Group weiter diskutiert. Das Chrome-Team hat Feedback von der W3C Technical Architecture Group angefordert und Mozilla und WebKit um ihre Positionierung zu den Standards gebeten.

Teilnehmen und Feedback geben

Sie können die Summarizer API jetzt testen, indem Sie am Ursprungstest teilnehmen und uns Feedback geben. Ihr Feedback kann sich direkt darauf auswirken, wie wir zukünftige Versionen dieser API und alle integrierten KI-APIs entwickeln und implementieren.