LanguageModel: prompt()-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 Methode prompt() der Schnittstelle LanguageModel sendet eine Eingabe an das Sprachmodell und gibt ein Promise zurück, das mit der vollständigen Antwort des Modells als Zeichenfolge erfüllt wird.
Syntax
prompt(input)
prompt(input, options)
Parameter
input-
Der Inhalt, der dem Modell als Prompt übergeben wird. Dies ist entweder:
- Eine Zeichenfolge – Kurzform für eine einzelne Textnachricht.
- Ein Array von Objekten, die jeweils eine einzelne Nachricht in einer Unterhaltung mit einem Sprachmodell darstellen.
Die Objekte können folgende Eigenschaften haben:
role-
Eine Zeichenfolge, die 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 an das Modell übergebene Anweisung sein.
user-
Eine Nachricht des Benutzers, auf die die API antworten soll.
assistant-
Eine Eingabe, die dem KI-Assistenten Kontext liefert, etwa seine Rolle oder das Format seiner Antworten. Solche Nachrichten dienen hauptsächlich dazu, Kontext oder den bisherigen Gesprächsverlauf bereitzustellen und die Antworten des Modells weiter zu beeinflussen.
content-
Eine Zeichenfolge, die einen Text-Prompt darstellt, oder ein Array von Objekten. Jedes Objekt enthält die folgenden Eigenschaften:
type-
Ein Aufzählungswert, der den Inhaltstyp 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
typeden Werttexthat, ist dies immer eine Zeichenfolge. Wenntypeden Wertaudiooderimagehat, kannvalueeiner von mehreren Objekttypen sein; siehe Welche Datentypen werden akzeptiert?.
prefixOptional-
Ein boolescher Wert, standardmäßig
false. Beitruewird die Nachricht als Präfix für die nächste generierte Antwort des Modells behandelt und nicht als abgeschlossener Gesprächsbeitrag.
optionsOptional-
Optionen zum Erstellen eines Prompts. Dazu gehören:
responseConstraint-
Ein Objekt, das der durch JSON Schema definierten Struktur entspricht und das genaue Format festlegt, in dem die Ausgabe des Modells zurückgegeben werden soll. Wenn diese Option angegeben ist und
omitResponseConstraintInputden Wertfalsehat, wird jede implementierungsabhängige Nachricht zur Beschreibung der Einschränkung bei der Messung berücksichtigt. omitResponseConstraintInput-
Ein boolescher Wert; bei
truewird die automatisch erzeugte 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 einem String erfüllt wird, der die vollständige Antwort des Modells enthält.
Ausnahmen
AbortErrorDOMException-
Wird ausgelöst, wenn der Vorgang über die Option
signalabgebrochen wurde. NotAllowedErrorDOMException-
Wird ausgelöst, wenn die Verwendung der Methode durch eine
language-model-Permissions-Policyblockiert wird. NotSupportedErrorDOMException-
Wird ausgelöst, wenn:
roleeiner Nachricht den Wertassistanthat und ihrtypeeinen anderen Wert alstexthat.typeeiner Nachricht den Werttexthat und ihrvaluekeine Zeichenfolge ist.- Der Eingabe- oder Ausgabetext in einer Sprache verfasst ist, die der User Agent für Prompts nicht unterstützt.
typeeiner Nachricht den Wertimageoderaudiohat, dieser Typ aber nicht inexpectedInputsaufgeführt wurde odervaluekein akzeptierter Datentyp ist.
OperationErrorDOMException-
Wird ausgelöst, wenn der Prompt aus einem anderen Grund fehlschlägt, der nicht unter den übrigen Ausnahmetypen aufgeführt ist.
QuotaExceededErrorDOMException-
Wird ausgelöst, wenn der Prompt dazu führen würde, dass die Kontextnutzung der Sitzung das
LanguageModel.contextWindowdes Modells überschreitet. SyntaxErrorDOMException-
Wird ausgelöst, wenn:
- Das Nachrichten-Array keine Nachrichten enthält.
- Die Eigenschaft
prefixeiner Nachricht auftruegesetzt ist und:roleder Nachricht nichtassistantist.- Die Nachricht nicht das letzte Element im Nachrichten-Array ist.
TypeError-
Wird ausgelöst, wenn:
omitResponseConstraintInputden Werttruehat, aberresponseConstraintnicht angegeben wurde.roleeiner Nachricht den Wertsystemhat, die Nachricht aber nicht die erste an den Kontext übergebene Nachricht war.
Beschreibung
Die Methode prompt() ist der wichtigste Mechanismus für die Interaktion mit einer Sprachmodellsitzung. Sie fügt die bereitgestellte Eingabe zum Kontextfenster hinzu und generiert eine Antwort. Die gesamte Antwort wird zwischengespeichert und nach Abschluss der Generierung als einzelne Zeichenfolge zurückgegeben.
Verwenden Sie für lange Antworten oder Anwendungsfälle mit Streaming stattdessen LanguageModel.promptStreaming(), um die Antwort schrittweise zu erhalten. Um dem Kontextfenster Inhalt hinzuzufügen, ohne eine Antwort zu generieren, verwenden Sie LanguageModel.append().
Jeder Aufruf von prompt() erweitert den Kontext der Sitzung. Um von einem bestimmten Zustand aus einen neuen Verlauf zu beginnen, ohne die ursprüngliche Sitzung zu beeinflussen, rufen Sie LanguageModel.clone() auf.
Beispiele
>Einfacher Text-Prompt
Dieses Beispiel zeigt die grundlegende Verwendung von prompt() mit einer einzelnen Texteingabe des Benutzers.
const session = await LanguageModel.create();
const response = await session.prompt(
"Summarize the water cycle in one paragraph.",
);
console.log(response);
Siehe auch Verwendung der Prompt API > Dem Modell einen Prompt übergeben.
Unterhaltung über mehrere Gesprächsbeiträge
const session = await LanguageModel.create();
const reply1 = await session.prompt("My name is Alex.");
console.log(reply1); // "Nice to meet you, Alex!"
const reply2 = await session.prompt("What's my name?");
console.log(reply2); // "Your name is Alex."
JSON-Ausgabe mit vorgegebenem Format
Das folgende Beispiel zeigt, wie Sie der Option responseConstraint JSON übergeben, um festzulegen, dass der Aufruf von prompt() ein Array zurückgeben soll.
const session = await LanguageModel.create();
const raw = await session.prompt("Name three planets in our solar system.", {
responseConstraint: {
type: "object",
properties: {
planets: {
type: "array",
items: { type: "string" },
},
},
required: ["planets"],
},
});
const { planets } = JSON.parse(raw);
console.log(planets); // ["Mercury", "Venus", "Earth"]
Einen Prompt abbrechen
Das folgende Beispiel zeigt, wie Sie Benutzern ermöglichen, einen Prompt mit einer Schaltfläche abzubrechen. Dazu wird ein AbortController erstellt. Dessen abort()-Methode kann im click-Handler einer Schaltfläche aufgerufen werden. Damit dies funktioniert, muss eine Referenz auf die Eigenschaft signal des Controllers an prompt() übergeben werden.
const controller = new AbortController();
// Select your cancel button from the DOM
const cancelButton = document.querySelector("#btn-cancel");
// Trigger the abort when the user clicks the button
cancelButton.addEventListener("click", () => {
controller.abort();
});
try {
const response = await session.prompt("write a very long story.", {
signal: controller.signal,
});
console.log(response);
} catch (err) {
if (err.name === "AbortError") {
console.log("prompt was canceled.");
} else {
console.error("An unexpected error occurred:", err);
}
}
Siehe auch Verwendung der Prompt API > Vorgänge abbrechen und Instanzen zerstören.
Spezifikationen
| Spezifikation |
|---|
| Prompt API> # dom-languagemodel-prompt> |