Signatur
Beschreibung
LanguageModel.availability() ist eine statische Methode der Prompt API. Sie gehört zu den eingebauten KI-Funktionen des Browsers („Built-in AI“). Die Methode gibt ein Promise zurück. Es wird mit einer Zeichenkette erfüllt, die anzeigt, ob das lokale Sprachmodell für eine bestimmte Konfiguration bereitsteht. Dazu gehören zum Beispiel die Ein- und Ausgabearten (Text, Bild, Audio) und die Sprachen.
Rufen Sie die Methode vor LanguageModel.create() auf. So können Sie entscheiden, ob Sie die KI-Funktion anbieten, erst einen Download-Hinweis zeigen oder auf eine Lösung ohne KI bzw. auf dem Server ausweichen. Der Aufruf selbst lädt kein Modell herunter und erzeugt keine Sitzung.
Mögliche Rückgabewerte:
"unavailable": Das Gerät oder der Browser unterstützt die angeforderte Konfiguration nicht."downloadable": Die Konfiguration wird unterstützt, aber das Modell (oder ein Teil davon) muss erst heruntergeladen werden."downloading": Ein Download läuft gerade."available": Das Modell ist sofort einsatzbereit.
Übergeben Sie hier dieselben Optionen, die Sie später an create() übergeben wollen. Die Antwort hängt von diesen Optionen ab. Mit Englisch als Text kann das Modell zum Beispiel "available" melden, mit Audio-Eingabe dagegen "unavailable".
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $options | Object | {} | Die Konfiguration, die geprüft werden soll. Sie hat dieselbe Form wie die Optionen von LanguageModel.create(). |
| $options.expectedInputs | Array<{type: "text"|"image"|"audio", languages?: string[]}> | Die erwarteten Eingabearten und optional deren Sprachen als BCP-47-Codes, z. B. [{ type: "text", languages: ["de", "en"] }]. |
|
| $options.expectedOutputs | Array<{type: "text", languages?: string[]}> | Die erwarteten Ausgabearten und -sprachen, z. B. [{ type: "text", languages: ["de"] }]. |
|
| $options.tools | Array<Object> | Optionale Werkzeug-Definitionen für Tool-Calling. Die Unterstützung hängt von der Implementierung ab. | |
| $options.topK | number | Sampling-Parameter. Mancherorts nur in Erweiterungen erlaubt. Muss zusammen mit temperature angegeben werden. |
|
| $options.temperature | number | Sampling-Temperatur. Muss zusammen mit topK angegeben werden. Die gültigen Grenzen liefert LanguageModel.params(). |
Rückgabewert
Promise, das mit dem Verfügbarkeitsstatus als Zeichenkette erfüllt wird. Bei ungültigen Optionen, z. B. einem ungültigen Sprachcode, wird es abgelehnt (TypeError oder RangeError).Beispiele
Einfache Verfügbarkeitsprüfung mit Funktionserkennung
const checkPromptApi = async () => {
if (!('LanguageModel' in self)) {
return 'Prompt API wird nicht unterstützt';
}
const status = await LanguageModel.availability();
return `Status: ${status}`;
};
checkPromptApi().then(console.log);
Deutsche Ein- und Ausgabe prüfen und Oberfläche anpassen
const options = {
expectedInputs: [{ type: 'text', languages: ['de'] }],
expectedOutputs: [{ type: 'text', languages: ['de'] }]
};
const button = document.querySelector('#ai-summary');
const status = await LanguageModel.availability(options);
switch (status) {
case 'available':
button.textContent = 'Zusammenfassen';
break;
case 'downloadable':
case 'downloading':
button.textContent = 'KI-Modell laden & zusammenfassen';
break;
default:
button.hidden = true; // Ausweichen auf Server-Lösung
}
console.log(status);
Download nach Nutzeraktion starten und Fortschritt anzeigen
const options = {
expectedInputs: [{ type: 'text', languages: ['de'] }],
expectedOutputs: [{ type: 'text', languages: ['de'] }]
};
document.querySelector('#start').addEventListener('click', async () => {
const status = await LanguageModel.availability(options);
if (status === 'unavailable') {
console.warn('Kein lokales Modell möglich');
return;
}
// create() braucht bei einem Download eine Nutzeraktivierung
const session = await LanguageModel.create({
...options,
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Download: ${Math.round(e.loaded * 100)} %`);
});
}
});
const answer = await session.prompt('Nenne drei Vorteile von lokaler KI.');
console.log(answer);
});
Multimodale Eingabe (Bild) prüfen
const imageStatus = await LanguageModel.availability({
expectedInputs: [{ type: 'text' }, { type: 'image' }]
});
console.log(imageStatus === 'unavailable'
? 'Bildanalyse nicht möglich'
: `Bildanalyse: ${imageStatus}`);
// Wichtig · Fallstricke
- Experimentell: Die Prompt API ist noch kein Standard. In Chrome ist sie für Erweiterungen ab Version 138 verfügbar, im Web nur über einen Origin Trial oder Flags. Firefox und Safari unterstützen sie derzeit nicht. Prüfen Sie immer zuerst mit
'LanguageModel' in self. - Hardware-Anforderungen: Auch in unterstützten Browsern kann
"unavailable"zurückkommen. Mögliche Gründe sind zu wenig Speicherplatz, RAM oder GPU-Leistung, ein nicht unterstütztes Betriebssystem oder Mobilgeräte. - Status ist eine Momentaufnahme:
"downloadable"kann jederzeit zu"downloading"oder"available"wechseln. Speichern Sie den Wert nicht dauerhaft, sondern prüfen Sie ihn vor jeder Sitzung neu. - Nutzeraktivierung:
availability()braucht keine Nutzeraktion. Wenncreate()bei"downloadable"einen Download auslöst, ist aber eine vorübergehende Nutzeraktivierung nötig, z. B. ein Klick. - Gleiche Optionen verwenden: Das Ergebnis gilt nur für die übergebene Konfiguration. Weichen die Optionen bei
create()ab, kann das Verhalten anders sein. - Fingerprinting/Datenschutz: Der Status kann etwas über das Gerät verraten. Browser können die Antworten deshalb vereinheitlichen oder die API durch eine Permissions Policy (
language-model) in iframes sperren. topKundtemperaturemüssen immer gemeinsam angegeben werden. Im Web-Kontext sind sie teilweise nicht erlaubt.