Freigeben über


Zusammenfassen, Schreiben und Erneutes Schreiben von Text mit den Schreibunterstützungs-APIs

Die Schreibunterstützungs-APIs sind experimentelle Web-APIs, mit denen Sie Text mithilfe eines in Microsoft Edge integrierten kleinen Sprachmodells (SLM) aus dem JavaScript-Code Ihrer Website oder Browsererweiterung zusammenfassen, schreiben und umschreiben können.

Einführende Informationen zur Summarizer-API, writer-API und Rewriter-API finden Sie unter Writing Assistance APIs Explainer.

Ausführlicher Inhalt:

Verfügbarkeit der Schreibunterstützungs-APIs

Die Summarizer-, Writer- und Rewriter-APIs sind ab Version 138.0.3309.2 als Entwicklervorschau in Microsoft Edge Canary- oder Dev-Kanälen verfügbar.

Die Schreibunterstützungs-APIs sind für Aufgaben optimiert, die speziell für das Generieren, Ändern und Zusammenfassen von Textinhalten gelten. Weitere Informationen zu einer Alternative für szenarien mit benutzerdefinierteren Eingabeaufforderungen, die möglicherweise nicht von diesen APIs bereitgestellt werden, finden Sie unter Eingabeaufforderung für ein integriertes Sprachmodell mit der Eingabeaufforderungs-API.

Alternativen zu und Vorteile der ApIs für die Schreibhilfe

Um KI-Funktionen in Websites und Browsererweiterungen zu nutzen, können Sie auch die folgenden Methoden verwenden:

Die Schreibunterstützungs-APIs verwenden ein kleines Sprachmodell (Small Language Model, SLM), das auf demselben Gerät ausgeführt wird, auf dem die Eingaben und Ausgaben des Modells verwendet werden (also lokal). Dies hat im Vergleich zu cloudbasierten Lösungen die folgenden Vorteile:

  • Reduzierte Kosten: Für die Verwendung eines KI-Clouddiensts fallen keine Kosten an.

  • Netzwerkunabhängigkeit: Über den ursprünglichen Modelldownload hinaus gibt es keine Netzwerklatenz, wenn das Modell aufgefordert wird, und kann auch verwendet werden, wenn das Gerät offline ist.

  • Verbesserter Datenschutz: Die Dateneingabe für das Modell verlässt nie das Gerät und wird nicht zum Trainieren von KI-Modellen gesammelt.

Die Schreibunterstützungs-APIs verwenden ein Modell, das von Microsoft Edge bereitgestellt und in den Browser integriert ist, das zusätzliche Vorteile gegenüber benutzerdefinierten lokalen Lösungen bietet, z. B. solche, die auf WebGPU, WebNN oder WebAssembly basieren:

  • Gemeinsame Einmalige Kosten: Das vom Browser bereitgestellte Modell wird heruntergeladen, wenn die API zum ersten Mal aufgerufen und für alle Websites freigegeben wird, die im Browser ausgeführt werden, wodurch die Netzwerkkosten für Benutzer und Entwickler reduziert werden.

  • Vereinfachte Nutzung für Webentwickler: Das integrierte Modell kann mit einfachen Web-APIs ausgeführt werden und erfordert keine KI/ML-Kenntnisse oder Die Verwendung von Frameworks von Drittanbietern.

Das Phi-4-mini-Modell

Mit der Eingabeaufforderungs-API können Sie Phi-4-mini auffordern – ein leistungsstarkes kleines Sprachmodell, das sich bei textbasierten Aufgaben auszeichnet – integriert in Microsoft Edge. Weitere Informationen zu Phi-4-mini und seinen Funktionen finden Sie im Karte modell unter microsoft/Phi-4-mini-instruct.

Haftungsausschluss

Wie andere Sprachmodelle kann sich die Phi-Modellfamilie potenziell unfair, unzuverlässig oder anstößig verhalten. Weitere Informationen zu den KI-Überlegungen des Modells finden Sie unter Überlegungen zu verantwortungsvoller KI.

Hardwareanforderungen

Die Vorschauversion der Eingabeaufforderungs-API für Entwickler soll auf Geräten mit Hardwarefunktionen verwendet werden, die SLM-Ausgaben mit vorhersagbarer Qualität und Latenz erzeugen.

Die Eingabeaufforderungs-API ist derzeit auf Folgendes beschränkt:

  • Betriebssystem: Windows 10 oder 11 und macOS 13.3 oder höher.

  • Lagerung: Mindestens 20 GB sind auf dem Volume verfügbar, das Ihr Edge-Profil enthält. Wenn der verfügbare Speicher unter 10 GB sinkt, wird das Modell gelöscht, um sicherzustellen, dass andere Browserfeatures über genügend Speicherplatz verfügen, um zu funktionieren.

  • GPU: 5,5 GB VRAM oder mehr.

  • Netz: Unbegrenzter Datentarif oder unmeter Verbindung. Das Modell wird nicht heruntergeladen, wenn eine getaktete Verbindung verwendet wird.

Informationen zum Überprüfen, ob Ihr Gerät die Entwicklervorschau für Schreibhilfe-APIs unterstützt, finden Sie unter Aktivieren der Schreibunterstützungs-APIs unten, und überprüfen Sie ihre Geräteleistungsklasse.

Aufgrund der experimentellen Natur der Schreibunterstützungs-APIs können Probleme bei bestimmten Hardwarekonfigurationen auftreten. Wenn Probleme bei bestimmten Hardwarekonfigurationen auftreten, geben Sie Feedback an, indem Sie ein neues Problem im MSEdgeExplainers-Repository öffnen.

Modellverfügbarkeit

Ein erster Download des Modells ist erforderlich, wenn eine Website zum ersten Mal eine integrierte KI-API aufruft. Sie können den Modelldownload überwachen, indem Sie die Option monitor verwenden, wenn Sie eine neue Summarizer-, Writer- oder Rewriter-API-Sitzung erstellen. Weitere Informationen finden Sie weiter unten unter Überwachen des Status des Modelldownloads.

Aktivieren der APIs für die Schreibunterstützung

So verwenden Sie die Schreibunterstützungs-APIs in Microsoft Edge:

  1. Stellen Sie sicher, dass Sie die neueste Version von Microsoft Edge Canary oder Dev (Version 138.0.3309.2 oder höher) verwenden. Weitere Informationen finden Sie unter Werden Sie ein Microsoft Edge-Insider.

  2. Öffnen Sie in Microsoft Edge Canary oder Dev eine neue Registerkarte oder ein neues Fenster, und wechseln Sie zu edge://flags/.

  3. Im Suchfeld oben auf der Seite:

    • Um die Zusammenfassungs-API zu aktivieren, geben Sie Zusammenfassungs-API für Phi mini ein.
    • Um die Writer-API zu aktivieren, geben Sie Writer-API für Phi mini ein.
    • Um die Rewriter-API zu aktivieren, geben Sie Rewriter-API für Phi mini ein.

    Die Seite wird gefiltert, um das übereinstimmende Flag anzuzeigen.

  4. Wählen Sie Aktiviert neben dem Flag für die API aus, die Sie aktivieren möchten:

    Seite

  5. Wenn Sie informationen lokal protokollieren möchten, die für Debugprobleme nützlich sein können, aktivieren Sie optional auch das Flag Enable on device AI model debug logs (Auf Gerät aktivieren, KI-Modell debugprotokolle aktivieren).

  6. Starten Sie Microsoft Edge Canary oder Dev neu.

  7. Um zu überprüfen, ob Ihr Gerät die Hardwareanforderungen für die Entwicklervorschau schreibunterstützungs-APIs erfüllt, öffnen Sie eine neue Registerkarte, wechseln Sie zu edge://on-device-internals, und überprüfen Sie den Wert der Geräteleistungsklasse .

    Wenn ihre Geräteleistungsklasse hoch oder höher ist, sollten die Schreibunterstützungs-APIs auf Ihrem Gerät unterstützt werden. Wenn Weiterhin Probleme auftreten, melden Sie ein neues Problem.

Weitere Informationen finden Sie unter Arbeitsbeispiele

So sehen Sie sich die ApIs für die Schreibunterstützung in Aktion an und überprüfen den vorhandenen Code, der diese APIs verwendet:

  1. Aktivieren Sie die Schreibunterstützungs-APIs, wie oben beschrieben.

  2. Öffnen Sie im Microsoft Edge Canary- oder Dev-Browser eine Registerkarte oder ein Fenster, und wechseln Sie zum Integrierten KI-Playground.

  3. Unter der linken Navigation:

    • Klicken Sie für die Summarizer-API auf Summarizer.
    • Klicken Sie für die Writer-API auf Writer.
    • Klicken Sie für die Rewriter-API auf Rewriter.
  4. Überprüfen Sie im Informationsbanner oben die status: Zunächst heißt es Modelldownloading, bitte warten Sie:

    Statusanzeige, die den Fortschritt des Modelldownloads anzeigt

    Nachdem das Modell heruntergeladen wurde, liest das Informationsbanner API und Modell bereit und gibt an, dass die API und das Modell verwendet werden können:

    Statusanzeige, die api- und modellbereit zeigt

    Wenn der Modelldownload nicht gestartet wird, starten Sie Microsoft Edge neu, und versuchen Sie es erneut.

    Die Schreibunterstützungs-APIs werden nur auf Geräten unterstützt, die bestimmte Hardwareanforderungen erfüllen. Weitere Informationen finden Sie weiter oben unter Hardwareanforderungen.

  5. Um die APIs auszuführen, ändern Sie optional die Einstellungen auf den Playground-Seiten, z. B. den Text, der zusammengefasst, geschrieben oder neu geschrieben werden soll, oder die Länge und das Format der erwarteten Ausgabe.

  6. Klicken Sie unten auf der Seite auf die Schaltfläche Zusammenfassen, Schreiben oder Umschreiben .

    Die Ausgabe wird im Antwortabschnitt der Seite generiert.

  7. Klicken Sie jederzeit auf die Schaltfläche Beenden , um die Generierung von Text zu beenden:

    Die Schaltfläche

Den Quellcode des Playgrounds für Schreibunterstützungs-APIs finden Sie im Repository MicrosoftEdge/Demos auf GitHub.

Verwenden der Schreibunterstützungs-APIs

Die drei Schreibunterstützungs-APIs – Summarizer, Writer und Rewriter – werden sehr ähnlich verwendet und in den folgenden Abschnitten zusammen dokumentiert.

Überprüfen, ob die APIs aktiviert sind

Bevor Sie eine der Schreibunterstützungs-APIs im Code Ihrer Website verwenden, überprüfen Sie, ob die API aktiviert ist, indem Sie das Vorhandensein der SummarizerObjekte , Writeroder Rewriter testen:

if (!Summarizer) {
  // The Summarizer API is not available.
}

if (!Writer) {
  // The Writer API is not available.
}

if (!Rewriter) {
  // The Rewriter API is not available.
}

Überprüfen, ob das Modell verwendet werden kann

Die Schreibunterstützungs-APIs können nur verwendet werden, wenn das Gerät die Ausführung des Modells unterstützt und nachdem das Sprachmodell und die Modelllaufzeit von Microsoft Edge heruntergeladen wurden.

Verwenden Sie die -Methode der API, um zu überprüfen, ob die API availability() verwendet werden kann. So überprüfen Sie beispielsweise die Verfügbarkeit des Modells mit der Writer-API:

const availability = await Writer.availability();

if (availability == "unavailable") {
  // The model is not available.
}

if (availability == "downloadable" || availability == "downloading") {
  // The model can be used, but it needs to be downloaded first.
}

if (availability == "available") {
  // The model is available and can be used.
}

Um die Verfügbarkeit des Modells mit den Rewriter- und Summarizer-APIs zu überprüfen, wechseln Writer Sie zu Rewriter oder Summarizer im obigen Code.

Erstellen einer neuen Sitzung

Beim Erstellen einer Sitzung wird der Browser angewiesen, das Sprachmodell in den Arbeitsspeicher zu laden, damit es verwendet werden kann. Bevor Sie die Schreibunterstützungs-APIs zum Zusammenfassen, Schreiben oder Umschreiben von Text verwenden können, erstellen Sie mithilfe der create() -Methode eine neue Sitzung:

// Create a Summarizer session.
const summarizerSession = await Summarizer.create();

// Create a Writer session.
const writerSession = await Writer.create();

// Create a Rewriter session.
const rewriterSession = await Rewriter.create();

Zum Anpassen der Modellsitzung können Sie Optionen an die create() -Methode übergeben:

// Create a Writer session with options.
const session = await Writer.create(options);

Einige Optionen sind für die drei Schreibunterstützungs-APIs üblich, während andere Optionen unterschiedlich sind oder unterschiedliche Werte verwenden. Die verfügbaren Optionen pro API sind unten aufgeführt:

Option Zusammenfassungs-API Writer-API Rewriter-API
monitor Monitor-Objekt Monitor-Objekt Monitor-Objekt
type Zeichenfolge: "tl;dr", "key-points", "teaser", "headline" Nicht unterstützt Nicht unterstützt
tone Nicht unterstützt Zeichenfolge: "formal", "neutral", "casual" Zeichenfolge: "as-is", "more-formal", "more-casual"
length Zeichenfolge: "short", "medium", "long" Zeichenfolge: "short", "medium", "long" Zeichenfolge: "as-is", "shorter", "longer"
format Zeichenfolge: "plain-text", "markdown" Zeichenfolge: "plain-text", "markdown" Zeichenfolge: "as-is", "plain-text", "markdown"

Diese Optionen sind unten dokumentiert.

Überwachen des Fortschritts des Modelldownloads

Sie können den Fortschritt des Modelldownloads verfolgen, indem Sie die monitor Option verwenden. Dies ist nützlich, wenn das Modell noch nicht vollständig auf das Gerät heruntergeladen wurde, auf dem es verwendet wird, um die Benutzer Ihrer Website darüber zu informieren, dass sie warten sollten.

// Create a Summarizer session with the monitor option to monitor the model
// download.
const session = await Summarizer.create({
  monitor: m => {
    // Use the monitor object argument to add an listener for the 
    // downloadprogress event.
    m.addEventListener("downloadprogress", event => {
      // The event is an object with the loaded and total properties.
      if (event.loaded == event.total) {
        // The model is fully downloaded.
      } else {
        // The model is still downloading.
        const percentageComplete = (event.loaded / event.total) * 100;
      }
    });
  }
});
Festlegen des Zusammenfassungstyps

Die type Option wird nur von der Summarizer-API unterstützt. Verwenden Sie die type Option, um das Sprachmodell aufzufordern, eine Zusammenfassung eines der folgenden Typen zu generieren:

  • tl;dr
  • key-points
  • teaser
  • headline

Beispiel für das Erstellen einer Summarizer Sitzung mit der Zusammenfassungsoption type :key-points

const session = await Summarizer.create({
  type: "key-points"
});
Festlegen des Tons des generierten Texts

Die Writer- und Rewriter-APIs unterstützen die tone Option.

Verwenden Sie die tone -Option, um den Ton des Texts festzulegen, der geschrieben oder umgeschrieben wird.

Die Writer-API unterstützt die folgenden Werte für die tone Option:

  • formal
  • neutral
  • casual

Die Rewriter-API unterstützt die folgenden Werte für die tone Option:

  • as-is
  • more-formal
  • more-casual

Beispiel für das Erstellen einer Rewriter Sitzung, in der das Modell aufgefordert wird, Text so umzuschreiben, dass eine tone von verwendet wird more-formal:

const session = await Rewriter.create({
  tone: "more-formal"
});
Festlegen der Länge des generierten Texts

Die length Option wird von den APIs Summarizer, Writer und Rewriter unterstützt und wird verwendet, um die Länge des generierten Texts zu steuern.

Die Writer- und Summarizer-APIs unterstützen die folgenden Werte:

  • short
  • medium
  • long

Die Rewriter-API unterstützt die folgenden Werte:

  • as-is
  • shorter
  • longer

Beispiel für das Erstellen einer Writer Sitzung, in der das Modell aufgefordert wird, Text mit length von longzu generieren:

const session = await Writer.create({
  length: "long"
});
Festlegen des Formats des generierten Texts

Die format Option wird von den Summarizer-, Writer- und Rewriter-APIs unterstützt und wird verwendet, um das Modell aufzufordern, entweder Nur-Text zu generieren oder textformatiert als Markdown.

Die Writer- und Summarizer-APIs unterstützen die folgenden Werte:

  • plain-text
  • markdown

Die Rewriter-API unterstützt die folgenden Werte:

  • as-is
  • plain-text
  • markdown

Beispiel für das Erstellen einer Rewriter Sitzung, bei der das Modell aufgefordert wird, den bereitgestellten Text umzuschreiben, um den format als markdownzu erzeugen:

const session = await Rewriter.create({
  format: "markdown"
});

Ausführen der APIs für die Schreibunterstützung

Um Text mithilfe der Summarizer-, Writer- oder Rewriter-APIs zu generieren, nachdem Sie die entsprechende Modellsitzung erstellt haben, verwenden Sie die folgenden Methoden:

  • summarizerSession.summarize()
  • writerSession.write()
  • rewriterSession.rewrite()

Oder verwenden Sie die Streamingversionen der oben genannten Methoden, um den generierten Text anzuzeigen:

  • summarizerSession.summarizeStreaming()
  • writerSession.writeStreaming()
  • rewriterSession.rewriteStreaming()

Die beiden Versionen dieser Methoden sind unten dokumentiert.

Warten Sie, bis der Text generiert wurde.

Um zu warten, bis der Text vollständig generiert wurde, bevor Sie mit der Codeausführung fortfahren, verwenden Sie die summarize()asynchronen Methoden , write()und rewrite() . Diese Methoden geben eine Zusage zurück, die aufgelöst wird, sobald die entsprechende API die Textgenerierung abgeschlossen hat.

Beispiel für die Verwendung der summarize() asynchronen Methode der Summarizer-API:

// Create a Summarizer session.
const summarizerSession = await Summarizer.create();

// Summarize text and wait for the summary to be done.
const summary = await summarizerSession.summarize(textToBeSummarized);

// Use the summary.
console.log(summary);
Anzeigen von Token beim Generieren

Um die Token während der Generierung anzuzeigen, verwenden Sie stattdessen die Streamingversionen der oben genannten Methoden. Die summarizeStreaming()Methoden , writeStreaming()und rewriteStreaming() geben sofort ein Streamobjekt zurück. Verwenden Sie das zurückgegebene Streamobjekt, um die Antworttoken anzuzeigen, während sie generiert werden.

Beispiel für die Verwendung der summarizeStreaming() asynchronen Methode der Summarizer-API:

// Create a Summarizer session.
const session = await Summarizer.create();

// Ask the model to summarize text.
const stream = session.summarizeStreaming(textToBeSummarized);

// Use the stream object to display tokens that are generated by the model, as
// they are being generated.
for await (const chunk of stream) {
  console.log(chunk);
}

Beenden der Textgenerierung

Verwenden Sie ein AbortController Signal, um die Generierung von Text zu beenden, bevor die von den obigen Methoden zurückgegebene Zusage oder der Stream aufgelöst oder beendet wurde:

Beispiel für eine Rewriter Sitzung mit einem AbortController Signal:

// Create a Rewriter session.
const session = await Rewriter.create();

// Create an AbortController object.
const abortController = new AbortController();

// Use the model session to generate some text and pass the AbortController
// object by using the signal option.
const stream = session.rewriteStreaming(textToBeRewritten, {
    signal: abortController.signal
});

// Later, perhaps when the user presses a "Stop" button, call the abort()
// method on the AbortController object to stop generating text.
abortController.abort();

Für eine Summarizer - oder Writer -Sitzung im obigen Code:

  • Ändern Sie Rewriter.create() in Summarizer.create() oder Writer.create().
  • Ändern Sie von der Verwendung session.rewriteStreaming()von .

Zerstören einer Sitzung

Löschen Sie die Sitzung, um dem Browser mitzuteilen, dass Sie das Sprachmodell nicht mehr benötigen, damit das Modell aus dem Arbeitsspeicher entladen werden kann.

Sie können eine Sitzung auf zwei verschiedene Arten zerstören:

  • Mithilfe der destroy() -Methode.
  • Mithilfe von AbortController.
Zerstören einer Sitzung mithilfe der destroy()-Methode

Sie können die destroy() -Methode mit einer -, Writer- Summarizeroder Rewriter -Sitzung verwenden.

Beispiel für die Verwendung einer Summarizer Sitzung:

const session = await Summarizer.create();

// Later, destroy the session by using the destroy method.
session.destroy();
Zerstören einer Sitzung mithilfe eines AbortControllers

Alternativ können Sie ein AbortController -Objekt erstellen, eine -, Writer- Summarizeroder Rewriter -Sitzung erstellen und dann aufrufenabort().

Beispiel für die Verwendung einer Writer Sitzung:

// Create an AbortController object.
const controller = new AbortController();

// Create a Summarizer, Writer, or Rewriter session and pass the 
// AbortController object by using the signal option.
const session = await Writer.create({ signal: controller.signal });

// Later, perhaps when the user interacts with the UI, destroy the session by
// calling the abort() function of the AbortController object.
controller.abort();

Feedback senden

Wir sind sehr daran interessiert, mehr über die Verschiedenen Szenarien zu erfahren, für die Sie die Schreibunterstützungs-APIs verwenden möchten, über Probleme mit den APIs oder Sprachmodellen und darüber, ob neue APIs, z. B. APIs für Korrekturlesen, nützlich sind.

Um Feedback zu Ihren Szenarien und den Aufgaben zu senden, die Sie ausführen möchten, fügen Sie bitte einen Kommentar zum Feedbackproblem der Schreibunterstützungs-APIs hinzu.

Wenn Sie probleme bei der Verwendung der APIs feststellen, melden Sie dies im Repository.

Sie können auch an der Diskussion über den Entwurf der ApIs für die Schreibunterstützung im W3C Web Machine Learning Working Group-Repository mitwirken.

Siehe auch