Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

LanguageModel: contextoverflow-Ereignis

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Das contextoverflow-Ereignis wird auf einer LanguageModel-Instanz ausgelöst, wenn ein Aufruf von prompt(), promptStreaming() oder append() dazu führt, dass die contextUsage der Sitzung das contextWindow überschreitet.

Syntax

Verwenden Sie den Ereignisnamen in addEventListener():

js
addEventListener("contextoverflow", (event) => {})

Alternativ können Sie ihn der Ereignisbehandlungs-Eigenschaft der Schnittstelle zuweisen:

js
oncontextoverflow = (event) => {}

Ereignistyp

Ein generisches Event.

Beispiele

Auf einen Kontextüberlauf reagieren

Der folgende Code zeigt zwei Möglichkeiten, einen Ereignis-Listener für das contextoverflow-Ereignis zu erstellen.

js
const session = await LanguageModel.create();

session.addEventListener("contextoverflow", () => {
  console.warn("Context overflow detected.");
});

Alternativ können Sie die Ereignisbehandlungs-Eigenschaft oncontextoverflow verwenden. Beachten Sie jedoch, dass dadurch gegebenenfalls andere mit oncontextoverflow hinzugefügte Ereignis-Listener ersetzt werden:

js
const session = await LanguageModel.create();

session.oncontextoverflow = () => {
  console.warn(
    "The session's context window is full. " +
      "Consider cloning the session or starting a new one.",
  );
};

Die Sitzung bei einem Überlauf zurücksetzen

Das folgende Beispiel erstellt eine neue Sitzung, wenn das contextoverflow-Ereignis ausgelöst wird.

js
let session = await LanguageModel.create({
  initialPrompts: [{ role: "system", content: "You are a helpful assistant." }],
});

session.addEventListener("contextoverflow", async () => {
  console.log("Context full — creating a fresh session.");
  session.destroy();
  session = await LanguageModel.create({
    initialPrompts: [
      { role: "system", content: "You are a helpful assistant." },
    ],
  });
});

async function chat(userMessage) {
  const response = await session.prompt(userMessage);
  return response;
}

Spezifikationen

Spezifikation
Prompt API
# dom-languagemodel-oncontextoverflow

Browser-Kompatibilität

Siehe auch