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: Methode measureContextUsage()

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 Methode measureContextUsage() der Schnittstelle LanguageModel schätzt, wie viele Tokens des Kontextfensters die angegebene Eingabe verbrauchen würde, ohne sie an das Modell zu senden oder den Zustand der Sitzung zu verändern.

So können Sie prüfen, wie viel Platz eine Eingabe im Kontextfenster benötigt, bevor Sie entscheiden, ob Sie sie senden. Das Ergebnis lässt sich mit LanguageModel.contextWindow und LanguageModel.contextUsage vergleichen, um festzustellen, ob die Eingabe innerhalb der Grenze des Kontextfensters liegt.

Dies ist besonders nützlich für Anwendungen mit langen Kontexten, etwa für die Zusammenfassung von Dokumenten, bei denen Sie Inhalte möglicherweise aufteilen oder kürzen müssen, um innerhalb der Grenze des Kontextfensters zu bleiben.

Syntax

js
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 einer Konversation mit einem Sprachmodell darstellt. Die Objekte können folgende Eigenschaften haben:
    role

    Ein String, der angibt, aus welcher Perspektive die Nachricht formuliert ist. Muss einer der folgenden Werte sein:

    system

    Eine Anweisung auf Systemebene, die das allgemeine Verhalten des Modells steuert. Dies muss die erste Anweisung sein, die an das Modell übergeben wird.

    user

    Eine Nachricht des Benutzers, auf die die API antworten soll.

    assistant

    Eine Eingabe, die dem KI-Assistenten Kontext liefert, etwa seine Persona oder das Format seiner Antworten. Solche Nachrichten dienen hauptsächlich dazu, Kontext oder bisherigen Verlauf bereitzustellen und die Antworten des Modells weiter zu beeinflussen.

    content

    Ein String, der einen textuellen Prompt darstellt, oder ein Array von Objekten. Jedes Objekt enthält folgende Eigenschaften:

    type

    Ein Aufzählungswert, der die Art des Inhalts angibt. Dies kann einer der folgenden Werte sein:

    audio

    Audioinhalt.

    image

    Bildinhalt.

    text

    Textinhalt.

    tool-call

    Ein vom Modell ausgelöster Tool-Aufruf.

    tool-response

    Das Ergebnis eines Tool-Aufrufs.

    value

    Der Inhalt der Nachricht. Wenn type den Wert text hat, ist dies immer ein String. Wenn type den Wert audio oder image hat, kann value einer von mehreren Objekttypen sein; siehe Welche Datentypen werden akzeptiert?.

    prefix Optional

    Ein boolescher Wert, der standardmäßig false ist. Bei true wird die Nachricht als Präfix für die nächste vom Modell generierte Antwort behandelt und nicht als vollständiger Gesprächsbeitrag.

options Optional

Optionen zur Messung der Kontextnutzung. Dazu gehören folgende Eigenschaften:

responseConstraint

Ein Objekt mit der durch JSON Schema definierten Struktur, das das genaue Format festlegt, in dem die Ausgabe des Modells bereitgestellt werden soll. Wenn es angegeben ist und omitResponseConstraintInput den Wert false hat, wird eine implementierungsabhängige Nachricht zur Beschreibung der Einschränkung in die Messung einbezogen.

omitResponseConstraintInput

Ein boolescher Wert; bei true wird die automatische Nachricht zur Beschreibung der Einschränkung von der Messung ausgeschlossen.

signal

Ein AbortSignal, mit dem der Vorgang abgebrochen werden kann.

Rückgabewert

Ein Promise, das mit einer Number erfüllt wird, die angibt, wie viele Tokens des Kontextfensters die Eingabe verbrauchen würde.

Ausnahmen

AbortError DOMException

Wird ausgelöst, wenn der Vorgang über die Option signal abgebrochen wurde.

NotAllowedError DOMException

Wird ausgelöst, wenn die Verwendung der Methode durch eine language-model-Permissions-Policy blockiert wird.

NotSupportedError DOMException

Wird ausgelöst, wenn:

  • role einer Nachricht den Wert assistant hat und ihr type einen anderen Wert als text hat.
  • type einer Nachricht den Wert text hat und ihr value kein String ist.
  • Der Eingabe- oder Ausgabetext in einer Sprache verfasst ist, die der User Agent für Prompts nicht unterstützt.
  • type einer Nachricht den Wert image oder audio hat, dieser Typ aber nicht in expectedInputs aufgeführt wurde oder value kein akzeptierter Datentyp ist.
SyntaxError DOMException

Wird ausgelöst, wenn:

  • Das Nachrichten-Array keine Nachrichten enthält.
  • Die Eigenschaft prefix einer Nachricht auf true gesetzt ist und:
    • role der Nachricht nicht assistant ist.
    • Die Nachricht nicht das letzte Element im Nachrichten-Array ist.
TypeError

Wird ausgelöst, wenn:

  • omitResponseConstraintInput den Wert true hat, aber responseConstraint nicht angegeben wurde.
  • role einer Nachricht den Wert system hat, die Nachricht aber nicht als erste an den Kontext übergeben wurde.

Beispiele

Warnung, wenn das Kontextfenster fast voll ist

Im folgenden Beispiel prüft eine Funktion, ob noch Platz im Kontextfenster verfügbar ist, bevor LanguageModel.prompt() aufgerufen wird. Sie berechnet zunächst den verbleibenden Platz und übergibt diesen Wert an measureContextUsage(). Wenn needed kleiner oder gleich remaining ist, gibt sie true zurück und die Sitzung wird fortgesetzt.

js
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

Browser-Kompatibilität

Siehe auch