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: 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

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 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 type text ist, ist dies immer ein String. Wenn der type audio oder image ist, kann der value eines von mehreren verschiedenen Objekttypen sein; siehe Welche Datentypen werden akzeptiert?.

    prefix Optional

    Ein Boolean, standardmäßig auf false. Wenn true, wird die Nachricht als Präfix für die nächste vom Modell generierte Antwort behandelt, anstatt als vollständiger Kommunikationsschritt.

options Optional

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 omitResponseConstraintInput ist false, 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 AbortSignal zur 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

AbortError DOMException

Ausgelöst, wenn die Operation über die signal-Option abgebrochen wurde.

NotAllowedError DOMException

Ausgelöst, wenn die Nutzung der Methode durch eine language-model Permissions-Policy blockiert wird.

NotSupportedError DOMException

Ausgelöst, wenn:

  • Die role einer Nachricht assistant ist und der type etwas anderes als text ist.
  • Die type einer Nachricht text ist und der value kein String ist.
  • Der Ein- oder Ausgabtext in einer Sprache ist, die vom Benutzeragenten nicht für die Eingabeaufforderung unterstützt wird.
  • Der type einer Nachricht image oder audio ist, jedoch nicht in expectedInputs aufgelistet war, oder der value kein akzeptierter Datentyp ist.
SyntaxError DOMException

Ausgelöst, wenn:

  • Keine Nachrichten im Nachrichten-Array enthalten sind.
  • Die prefix-Eigenschaft einer Nachricht auf true gesetzt ist und:
    • Die role der Nachricht nicht assistant ist.
    • Die Nachricht nicht das letzte Element im Nachrichten-Array ist.
TypeError

Ausgelöst, wenn:

  • omitResponseConstraintInput true ist, aber responseConstraint nicht bereitgestellt wird.
  • Die role einer Nachricht system ist, 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.

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