LanguageModel: measureContextUsage() Methode
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.
Die measureContextUsage() Methode der LanguageModel Schnittstelle schätzt, wie viele Kontextfenster-Token der gegebene Eingabetext verbrauchen würde, ohne ihn an das Modell zu senden oder den Zustand der Sitzung zu verändern.
Dies ermöglicht es Ihnen zu überprüfen, wie viel des Kontextfensters ein gegebener Eingabetext benötigt, bevor Sie entscheiden, ob Sie ihn senden. Das Ergebnis kann mit LanguageModel.contextWindow und LanguageModel.contextUsage verglichen werden, um festzustellen, ob der Eingabetext innerhalb das Kontextfenster-Limits passt.
Dies ist besonders nützlich für Langkontext-Anwendungen wie die Dokumentzusammenfassung, bei der Sie möglicherweise Inhalte aufteilen oder kürzen müssen, um innerhalb des Kontextfenster-Limits zu bleiben.
Syntax
measureContextUsage(input)
measureContextUsage(input, options)
Parameter
input-
Der Inhalt, der dem Kontextfenster hinzugefügt werden soll. Dies ist entweder:
- Ein String — Kurzform für eine einzelne Textnachricht.
- Ein Array von Objekten, von denen jedes eine einzelne Nachricht in einem Gespräch mit einem Sprachmodell darstellt.
Objekte können die folgenden Eigenschaften haben:
role-
Ein String, der angibt, aus welcher Perspektive die Nachricht formuliert ist. Muss eine der folgenden sein:
system-
Eine Systemanweisung, die das allgemeine Verhalten des Modells leitet. Dies muss die erste Anweisung sein, die an das Modell übermittelt wird.
user-
Eine Nachricht vom Benutzer, auf die die API antworten soll.
assistant-
Eine Eingabe, die den KI-Assistenten kontextualisiert, wie z. B. seine Persona oder das Format seiner Antworten. Solche Nachrichten dienen hauptsächlich dazu, Kontext/Verlauf bereitzustellen, und formen weiter, wie das Modell antwortet.
content-
Ein String, der ein Text-Prompt darstellt, oder ein Array von Objekten. Jedes Objekt enthält die folgenden Eigenschaften:
type-
Ein aufzählbarer Wert, der die Art des Inhalts darstellt. Dies kann eine der folgenden sein:
audio-
Audioinhalt.
image-
Bildinhalt.
text-
Textinhalt.
tool-call-
Ein vom Modell ausgeführter Werkzeugaufruf.
tool-response-
Das Ergebnis eines Werkzeugaufrufs.
value-
Der Inhalt der Nachricht. Wenn der
typetextist, ist dies immer ein String. Wenn dertypeaudiooderimageist, kann dervalueeines von mehreren verschiedenen Objekttypen sein; siehe Welche Datentypen werden akzeptiert?.
prefixOptional-
Ein Boolean, standardmäßig auf
false. Wenntrue, wird die Nachricht als Präfix für die nächste vom Modell generierte Antwort behandelt, anstatt als vollständiger Kommunikationsschritt.
optionsOptional-
Optionen zur Messung der Kontextnutzung. Eigenschaften umfassen:
responseConstraint-
Ein Objekt gemäß der von JSON Schema definierten Struktur, das das genaue Format vorgibt, in dem die Ausgabe des Modells geliefert werden soll. Wird dies bereitgestellt und
omitResponseConstraintInputistfalse, wird jede implementierungsdefinierte Einschränkungs-Beschreibungsnachricht in die Messung einbezogen. omitResponseConstraintInput-
Ein Boolean; wenn
true, wird die automatische Einschränkungs-Beschreibungsnachricht aus der Messung ausgeschlossen. signal-
Ein
AbortSignalzur Abbruch der Operation.
Rückgabewert
Ein Promise, das mit einer Number aufgelöst wird, die die Anzahl der Kontextfenster-Token darstellt, die der Eingabetext verbrauchen würde.
Ausnahmen
AbortErrorDOMException-
Ausgelöst, wenn die Operation über die
signal-Option abgebrochen wurde. NotAllowedErrorDOMException-
Ausgelöst, wenn die Nutzung der Methode durch eine
language-modelPermissions-Policyblockiert wird. NotSupportedErrorDOMException-
Ausgelöst, wenn:
- Die
roleeiner Nachrichtassistantist und dertypeetwas anderes alstextist. - Die
typeeiner Nachrichttextist und dervaluekein String ist. - Der Ein- oder Ausgabtext in einer Sprache ist, die vom Benutzeragenten nicht für die Eingabeaufforderung unterstützt wird.
- Der
typeeiner Nachrichtimageoderaudioist, jedoch nicht inexpectedInputsaufgelistet war, oder dervaluekein akzeptierter Datentyp ist.
- Die
SyntaxErrorDOMException-
Ausgelöst, wenn:
- Keine Nachrichten im Nachrichten-Array enthalten sind.
- Die
prefix-Eigenschaft einer Nachricht auftruegesetzt ist und:- Die
roleder Nachricht nichtassistantist. - Die Nachricht nicht das letzte Element im Nachrichten-Array ist.
- Die
TypeError-
Ausgelöst, wenn:
omitResponseConstraintInputtrueist, aberresponseConstraintnicht bereitgestellt wird.- Die
roleeiner Nachrichtsystemist, aber sie nicht die erste Nachricht ist, die an den Kontext übergeben wird.
Beispiele
>Warnung, wenn der Kontext fast voll ist
Das folgende Beispiel verwendet eine Funktion, um zu überprüfen, ob Kontext verfügbar ist, bevor LanguageModel.prompt() aufgerufen wird. Es berechnet zunächst den verbleibenden Kontext und übergibt diesen Wert an measureContextUsage(). Wenn needed kleiner oder gleich remaining ist, gibt es true zurück und die Sitzung wird fortgesetzt.
const promptText = "Let me ask you an interesting question...";
const session = await LanguageModel.create();
async function contextAvailable(promptText) {
const remaining = session.contextWindow - session.contextUsage;
const needed = await session.measureContextUsage(promptText);
return needed <= remaining;
}
if (await contextAvailable(promptText)) {
const response = await session.prompt(promptText);
console.log(response);
} else {
console.warn("Prompt skipped: Not enough context window remaining.");
}
Spezifikationen
| Spezifikation |
|---|
| Prompt API> # dom-languagemodel-measurecontextusage> |