LanguageModel: Ereignis contextoverflow
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 Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.
addEventListener("contextoverflow", (event) => {})
oncontextoverflow = (event) => {}
Ereignistyp
Ein generisches Event.
Beispiele
>Reaktion auf einen Kontextüberlauf
Der folgende Code zeigt zwei Methoden zur Erstellung eines Ereignis-Listeners für das contextoverflow-Ereignis.
const session = await LanguageModel.create();
session.addEventListener("contextoverflow", () => {
console.warn("Context overflow detected.");
});
Alternativ:
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.",
);
};
Zurücksetzen der Sitzung bei Überlauf
Das folgende Beispiel erstellt eine neue Sitzung, wenn das contextoverflow-Ereignis ausgelöst wird.
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> |