API
getAvailability()getImageAnalysisAvailability()downloadModel()configureFallbackModel(...)warmup(...)createChat(...)deleteChat(...)generateText(...)streamText(...)cancelGeneration(...)addListener('availabilityChange', ...)addListener('systemAvailabilityChange', ...)addListener('downloadProgress', ...)addListener('textChunk', ...)addListener('generationStateChange', ...)removeAllListeners()generateImage(...)systemAvailability()download()prompt(...)endSession(...)- Interfaces
- Typaliase
Öffentlicher Vertrag des On-Device-LLM-Plugins.
method getAvailability()
getAvailability() => Promise<GetAvailabilityResult>
Liefert die detaillierte Verfügbarkeit des Textmodells. Die Web-Implementierung prüft die Unterstützung der Chrome Prompt API; nicht unterstützte Browser geben unavailable zurück.
Rückgabe: Promise<GetAvailabilityResult>
Seit: 2.0.0
method getImageAnalysisAvailability()
getImageAnalysisAvailability() => Promise<GetImageAnalysisAvailabilityResult>
Liefert die Verfügbarkeit der Bildanalyse und das native Backend, das Bildeingaben verarbeiten würde.
Mit Xcode 27 / Swift 6.4 kompilierte iOS-27-Builds geben den Textmodell-status sowie
backend: 'foundation-models' und maxImages: 4 zurück. Mit älteren Xcode-Versionen erstellte Builds melden
unavailable und können keine iOS-27-Bildunterstützung enthalten. Android meldet Gemini-Nano-Prompt-
APIs oder ein konfiguriertes LiteRT-LM-Fallback. Die Web-Implementierung meldet für Bildanalyse derzeit unavailable.
Rückgabe: Promise<GetImageAnalysisAvailabilityResult>
Seit: 2.1.0
method downloadModel()
downloadModel() => Promise<void>
Startet einen Modelldownload unter Android oder Chrome im Web. Im Web durch eine Nutzeraktion aufrufen; Chrome verwaltet das Modell.
Seit: 2.0.0
method configureFallbackModel(...)
configureFallbackModel(options: ConfigureFallbackModelOptions) => Promise<void>
Initialisiert ein ausdrücklich konfiguriertes Android-LiteRT-LM-Fallback-Modell. Gemini Nano bleibt bevorzugt, sofern verfügbar.
Die Modellkonfiguration führt lokale Dateioperationen aus und kann längere Zeit dauern. iOS und Web lehnen diese API ab.
| Parameter | Typ |
|---|---|
options |
ConfigureFallbackModelOptions |
Seit: 2.0.0
method warmup(...)
warmup(options?: WarmupOptions | undefined) => Promise<void>
Wärmt Modellressourcen vor. Die Web-Implementierung erstellt und beendet eine temporäre Textsitzung; promptPrefix gilt nur für iOS.
| Parameter | Typ |
|---|---|
options |
WarmupOptions |
Seit: 1.0.0
method createChat(...)
createChat(options?: CreateChatOptions | undefined) => Promise<CreateChatResult>
Erstellt einen Chat, der bis zu seiner Löschung vom Plugin verwaltet wird.
| Parameter | Typ |
|---|---|
options |
CreateChatOptions |
Rückgabe: Promise<CreateChatResult>
Seit: 2.0.0
method deleteChat(...)
deleteChat(options: DeleteChatOptions) => Promise<void>
Löscht einen Chat und bricht dessen Generierung ab.
| Parameter | Typ |
|---|---|
options |
DeleteChatOptions |
Seit: 2.0.0
method generateText(...)
generateText(options: GenerateTextOptions) => Promise<GenerateTextResult>
Generiert den vollständigen Text.
| Parameter | Typ |
|---|---|
options |
GenerateTextOptions |
Rückgabe: Promise<GenerateTextResult>
Seit: 2.0.0
method streamText(...)
streamText(options: StreamTextOptions) => Promise<StreamTextResult>
Streamt native Textstücke und gibt den vollständigen Text zurück.
| Parameter | Typ |
|---|---|
options |
GenerateTextOptions |
Rückgabe: Promise<GenerateTextResult>
Seit: 2.0.0
method cancelGeneration(...)
cancelGeneration(options: CancelGenerationOptions) => Promise<void>
Bricht eine laufende Generierung ab.
| Parameter | Typ |
|---|---|
options |
CancelGenerationOptions |
Seit: 2.0.0
method addListener('availabilityChange', ...)
addListener(eventName: 'availabilityChange', listenerFunc: AvailabilityChangeListener) => Promise<PluginListenerHandle>
Registriert einen Listener für Verfügbarkeitsänderungen. Die Web-Implementierung meldet Änderungen, die bei Verfügbarkeitsprüfungen sowie beim Erstellen oder Herunterladen einer Sitzung erkannt werden.
| Parameter | Typ |
|---|---|
eventName |
'availabilityChange' |
listenerFunc |
AvailabilityChangeListener |
Rückgabe: Promise<PluginListenerHandle>
Seit: 2.0.0
method addListener('systemAvailabilityChange', ...)
addListener(eventName: 'systemAvailabilityChange', listenerFunc: SystemAvailabilityChangeListener) => Promise<PluginListenerHandle>
| Parameter | Typ |
|---|---|
eventName |
'systemAvailabilityChange' |
listenerFunc |
SystemAvailabilityChangeListener |
Rückgabe: Promise<PluginListenerHandle>
Seit: 1.0.0
method addListener('downloadProgress', ...)
addListener(eventName: 'downloadProgress', listenerFunc: DownloadProgressListener) => Promise<PluginListenerHandle>
Registriert einen Listener für den Downloadfortschritt unter Android oder Chrome im Web.
| Parameter | Typ |
|---|---|
eventName |
'downloadProgress' |
listenerFunc |
DownloadProgressListener |
Rückgabe: Promise<PluginListenerHandle>
Seit: 2.0.0
method addListener('textChunk', ...)
addListener(eventName: 'textChunk', listenerFunc: TextChunkListener) => Promise<PluginListenerHandle>
Registriert einen Listener für native Textstücke.
| Parameter | Typ |
|---|---|
eventName |
'textChunk' |
listenerFunc |
TextChunkListener |
Rückgabe: Promise<PluginListenerHandle>
Seit: 2.0.0
method addListener('generationStateChange', ...)
addListener(eventName: 'generationStateChange', listenerFunc: GenerationStateChangeListener) => Promise<PluginListenerHandle>
Registriert einen Listener für Start, Abschluss, Abbruch und Fehlschlag einer Generierung.
| Parameter | Typ |
|---|---|
eventName |
'generationStateChange' |
listenerFunc |
GenerationStateChangeListener |
Rückgabe: Promise<PluginListenerHandle>
Seit: 2.1.0
method removeAllListeners()
removeAllListeners() => Promise<void>
Entfernt alle Plugin-Listener.
Seit: 1.0.0
method generateImage(...)
generateImage(options: GenerateImageOptions) => Promise<GenerateImageResponse>
Generiert PNG-Bilder unter iOS.
| Parameter | Typ |
|---|---|
options |
GenerateImageOptions |
Rückgabe: Promise<GenerateImageResponse>
Seit: 1.0.0
method systemAvailability()
systemAvailability() => Promise<SystemAvailabilityResponse>
Rückgabe: Promise<SystemAvailabilityResponse>
Seit: 1.0.0
method download()
download() => Promise<void>
Seit: 1.0.0
method prompt(...)
prompt(options: PromptOptions) => Promise<PromptResponse>
| Parameter | Typ |
|---|---|
options |
PromptOptions |
Rückgabe: Promise<PromptResponse>
Seit: 1.0.0
method endSession(...)
endSession(options: EndSessionOptions) => Promise<void>
Beendet eine ältere Sitzung. Bereits beendete oder unbekannte Sitzungskennungen werden erfolgreich und ohne Wirkung verarbeitet.
| Parameter | Typ |
|---|---|
options |
EndSessionOptions |
Seit: 1.0.0
Interfaces
interface GetAvailabilityResult
Von Verfügbarkeitsprüfungen zurückgegebenes Ergebnis.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
status |
Availability |
Aktuelle Verfügbarkeit des Textmodells. | 2.0.0 |
interface GetImageAnalysisAvailabilityResult
Von Verfügbarkeitsprüfungen für Bildanalyse zurückgegebenes Ergebnis.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
status |
Availability |
Aktuelle Verfügbarkeit der Bildanalyse. | 2.1.0 |
backend |
ImageAnalysisBackend |
Natives Backend, das die Bildanalyse bei Verfügbarkeit ausführen würde. | 2.1.0 |
maxImages |
number |
Maximale Anzahl Bilder pro Generierung für das aktive Backend. | 2.1.0 |
interface ConfigureFallbackModelOptions
Konfiguriert ein ausdrücklich aktiviertes Android-LiteRT-LM-Fallback, das verwendet wird, wenn Gemini Nano nicht verfügbar ist.
Das Modell muss bereits als App-Asset oder als lesbare, von der App verwaltete Datei vorliegen. iOS und Web lehnen diese API ab.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
path |
string |
Pfad zum .litertlm-Modell. Für mitgelieferte Assets /android_asset/... verwenden, andernfalls einen absoluten, von der App verwalteten Dateipfad. |
2.0.0 |
maxTokens |
number |
An LiteRT-LM übergebene kombinierte Kontextkapazität. Standardwert: 4096. | 2.0.0 |
maxImages |
number |
Maximale Anzahl Bilder pro Generierung für ein bildfähiges Modell. Standardwert: 1. | 2.0.0 |
supportsImages |
boolean |
Initialisiert die Bildverarbeitungspipeline von LiteRT-LM. Standardwert: true; nur für ein reines Textmodell auf false setzen. |
2.0.0 |
interface WarmupOptions
Optionen für das Vorwärmen. Android wärmt das Modell global vor; iOS kann einen Chat vorwärmen.
Die Web-Implementierung erstellt und beendet eine temporäre Sitzung, optional mit dem Kontext eines Chats.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
chatId |
string |
Explizite Chatkennung für das Vorwärmen unter iOS oder als Kontext für das Vorwärmen im Web. | 2.0.0 |
sessionId |
string |
1.0.0 | |
promptPrefix |
string |
Optionales Prompt-Präfix für Foundation Models. | 1.0.0 |
interface CreateChatResult
Ergebnis mit der Kennung des vom Plugin verwalteten Chats.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
id |
string |
Für Generierungs- und Löschaufrufe erforderliche Kennung. | 2.0.0 |
interface CreateChatOptions
Optionen zum Erstellen eines vom Plugin verwalteten Chats.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
instructions |
string |
Dauerhafte Systemanweisungen für diesen Chat. | 2.0.0 |
history |
ChatHistoryOptions |
Grenzen des Chatverlaufs auf iOS, Android und im Web. | 2.0.0 |
interface ChatHistoryOptions
Grenzen des Chatverlaufs. Alle Implementierungen behalten die Anweisungen bei und verwerfen jeweils die ältesten vollständigen Gesprächsrunden.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
maxMessages |
number |
Maximale Anzahl gespeicherter Nachrichten. Standardwert: 20. | 2.0.0 |
maxCharacters |
number |
Maximale Anzahl gespeicherter Nachrichtenzeichen. Standardwert: 12000. | 2.0.0 |
interface DeleteChatOptions
Optionen zum Löschen eines Chats.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
id |
string |
Von createChat() zurückgegebene Chatkennung. |
2.0.0 |
interface GenerateTextResult
Ergebnis einer Textgenerierung.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
text |
string |
Vollständiger generierter Text. | 2.0.0 |
generationId |
string |
Kennung, mit der Diagnosedaten einer Generierung zugeordnet werden können. | 2.0.0 |
interface GenerateTextOptions
Optionen für eine Generierung ohne Streaming.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
chatId |
string |
Von createChat() zurückgegebene Chatkennung. |
2.0.0 |
prompt |
string |
Nutzerprompt. | 2.0.0 |
images |
ImageInput[] |
Bilder, die einem bildfähigen Backend übergeben werden. Unter iOS 27 oder neuer (mit Xcode 27 / Swift 6.4 kompilierte Builds) akzeptiert Foundation Models Attachment bis zu 4 Bilder mit jeweils höchstens 32 MiB über lesbare absolute Pfade, file://-URLs, rohes Base64 oder Base64-Daten-URLs. Nach einer erfolgreichen Generierung werden Anhänge aus dem gespeicherten Chatverlauf entfernt, während der Textprompt und die Antwort erhalten bleiben. Android verwendet Gemini-Nano-Prompt-APIs oder ein konfiguriertes LiteRT-LM-Fallback mit absoluten Pfaden, file://-, content://- oder Base64-Eingaben und den Gesamtpixelgrenzen von ML Kit. Web- und reine Textbackends lehnen Bildeingaben mit LOCAL_LLM_UNSUPPORTED ab. |
2.1.0 |
imagePaths |
string[] |
Lokale Bildpfade für ein bildfähiges Android-LiteRT-LM-Fallback-Modell. Absolute Pfade, file://-URLs und lesbare content://-URIs werden akzeptiert. Dieser Kompatibilitätspfad behält das LiteRT-LM-Routing von v2.0 bei, auch wenn ML Kit verfügbar ist. |
2.0.0 |
options |
GenerationOptions |
Optionale Generierungseinstellungen. | 2.0.0 |
interface ImageUriInput
Lokale URI als Bildeingabe.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
uri |
string |
Bild-URI. iOS akzeptiert lesbare absolute lokale Pfade und file://-URLs. Android akzeptiert absolute Pfade, file://-URLs und content://-URIs. |
2.1.0 |
base64 |
Base64- und URI-Eingaben schließen sich gegenseitig aus. | 2.1.0 |
interface Base64ImageInput
Base64-kodiertes Bild als Eingabe.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
base64 |
string |
Rohe Base64-Bildbytes oder eine data:image/...;base64,...-URL. Das dekodierte Bild darf 32 MiB nicht überschreiten. |
2.1.0 |
uri |
Base64- und URI-Eingaben schließen sich gegenseitig aus. | 2.1.0 |
interface GenerationOptions
Plattformübergreifende Steuerung der Textgenerierung. Nicht unterstützte Werte werden abgelehnt und nicht auf Grenzwerte begrenzt. In der Chrome-Web-Implementierung müssen diese Einstellungen weggelassen werden.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
temperature |
number |
Sampling-Temperatur. | 2.0.0 |
topK |
number |
Wählt aus den k wahrscheinlichsten Tokens aus. | 2.0.0 |
maxOutputTokens |
number |
Maximale Anzahl generierter Tokens. | 2.0.0 |
interface CancelGenerationOptions
Optionen zum Abbrechen einer laufenden Generierung.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
chatId |
string |
Chat, dem die Generierung zugeordnet ist. | 2.0.0 |
generationId |
string |
Optionale Generierungskennung; eine Abweichung wird wie ein nicht gefundenes Objekt behandelt. | 2.0.0 |
interface PluginListenerHandle
| Eigenschaft | Typ |
|---|---|
remove |
() => Promise<void> |
interface SystemAvailabilityResponse
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
status |
LLMAvailability |
Älterer Verfügbarkeitswert. Detaillierte Zustände werden auf den ursprünglichen Vertrag mit vier Werten abgebildet. | 1.0.0 |
interface DownloadProgressEvent
Fortschritt des Modelldownloads. Android-Zwischenereignisse enthalten kein progress, da ML Kit keine Gesamtzahl der Bytes liefert.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
progress |
number |
Bekannter normierter Fortschritt: 0 zu Beginn und 1 bei Abschluss. | 2.0.0 |
downloadedBytes |
number |
Bisher heruntergeladene Bytes, sofern ML Kit diese Angabe bereitstellt. | 2.0.0 |
totalBytes |
number |
Gesamtzahl der Bytes, sofern ein Plattform-SDK sie bereitstellt. Derzeit unter Android nicht enthalten. | 2.0.0 |
interface TextChunkEvent
Von streamText() ausgegebene inkrementelle Textstücke.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
chatId |
string |
Chat, dem die Generierung zugeordnet ist. | 2.0.0 |
generationId |
string |
Kennung dieser Generierung. | 2.0.0 |
text |
string |
Nur neu generierter Text, nicht die angesammelte Momentaufnahme. | 2.0.0 |
interface GenerationStateChangeEvent
Lebenszyklusereignis für generateText() und streamText().
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
chatId |
string |
Chat, dem die Generierung zugeordnet ist. | 2.1.0 |
generationId |
string |
Native Generierungskennung, verfügbar ab dem Ereignis started. |
2.1.0 |
state |
GenerationState |
Aktueller Lebenszykluszustand. | 2.1.0 |
errorCode |
LocalLLMErrorCode |
Stabiler Fehlercode für die Zustände cancelled und failed. |
2.1.0 |
interface GenerateImageResponse
Ergebnis der Bildgenerierung.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
pngBase64Images |
string[] |
Rohe Base64-kodierte PNG-Bilder ohne Daten-URI-Präfix. | 1.0.0 |
interface GenerateImageOptions
Optionen für die Bildgenerierung. Bildgenerierung ist nur ab iOS 18.4 verfügbar.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
prompt |
string |
Bildbeschreibung. | 1.0.0 |
promptImages |
string[] |
Optionale Base64-Referenzbilder. | 1.0.0 |
count |
number |
Anzahl der Varianten. Standardwert: 1. | 1.0.0 |
interface PromptResponse
Ältere Prompt-Antwort.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
text |
string |
Vollständiger generierter Text. | 1.0.0 |
interface PromptOptions
Ältere Prompt-Optionen.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
sessionId |
string |
Optionale Kennung einer älteren Sitzung. | 1.0.0 |
instructions |
string |
Bei der erstmaligen Erstellung der älteren Sitzung verwendete Anweisungen. | 1.0.0 |
options |
LLMOptions |
Ältere Einstellungen für die Generierung. | 1.0.0 |
prompt |
string |
Nutzerprompt. | 1.0.0 |
interface LLMOptions
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
temperature |
number |
Sampling-Temperatur. | 1.0.0 |
maximumOutputTokens |
number |
Maximale Anzahl generierter Tokens. | 1.0.0 |
interface EndSessionOptions
Optionen zum Löschen einer älteren Sitzung.
| Eigenschaft | Typ | Beschreibung | Seit |
|---|---|---|---|
sessionId |
string |
Kennung der älteren Sitzung. | 1.0.0 |
Typaliase
type alias Availability
Die semantische Verfügbarkeit des Textmodells auf dem Gerät.
'available' | 'device-not-eligible' | 'not-enabled' | 'downloadable' | 'downloading' | 'not-ready' | 'unavailable'
type alias ImageAnalysisBackend
Für die Bildanalyse auf dem Gerät ausgewähltes natives Backend.
'foundation-models' | 'ml-kit-prompt' | 'litert-lm'
type alias ImageInput
Bildreferenz für Textgenerierung mit Bildverarbeitung.
type alias StreamTextOptions
Optionen für native Streaming-Generierung.
type alias StreamTextResult
Abschließendes Ergebnis einer nativen Streaming-Generierung.
type alias AvailabilityChangeListener
Listener für Verfügbarkeitsänderungen.
(event: GetAvailabilityResult): void
type alias SystemAvailabilityChangeListener
(event: SystemAvailabilityResponse): void
type alias LLMAvailability
'available' | 'unavailable' | 'notready' | 'downloadable'
type alias DownloadProgressListener
Listener für den Fortschritt des Modelldownloads.
(event: DownloadProgressEvent): void
type alias TextChunkListener
Listener für native Generierungsabschnitte.
(event: TextChunkEvent): void
type alias GenerationStateChangeListener
Listener für Änderungen des nativen Generierungslebenszyklus.
(event: GenerationStateChangeEvent): void
type alias GenerationState
Zustand des nativen Generierungslebenszyklus.
'started' | 'completed' | 'cancelled' | 'failed'
type alias LocalLLMErrorCode
Stabile Local-LLM-Fehlercodes.
'LOCAL_LLM_NOT_AVAILABLE' | 'LOCAL_LLM_DEVICE_NOT_ELIGIBLE' | 'LOCAL_LLM_NOT_ENABLED' | 'LOCAL_LLM_MODEL_NOT_READY' | 'LOCAL_LLM_MODEL_DOWNLOAD_REQUIRED' | 'LOCAL_LLM_CONTEXT_WINDOW_EXCEEDED' | 'LOCAL_LLM_CHAT_NOT_FOUND' | 'LOCAL_LLM_CHAT_BUSY' | 'LOCAL_LLM_GENERATION_NOT_FOUND' | 'LOCAL_LLM_GENERATION_CANCELLED' | 'LOCAL_LLM_INVALID_OPTIONS' | 'LOCAL_LLM_UNSUPPORTED' | 'LOCAL_LLM_IMAGE_NOT_READABLE' | 'LOCAL_LLM_IMAGE_TOO_LARGE' | 'LOCAL_LLM_GENERATION_FAILED' | 'LOCAL_LLM_IMAGE_GENERATION_FAILED' | 'LOCAL_LLM_UNKNOWN_ERROR'