Zum Inhalt springen
rdlabo.devdocs

API

Ö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.

ImageUriInput | Base64ImageInput

type alias StreamTextOptions

Optionen für native Streaming-Generierung.

GenerateTextOptions

type alias StreamTextResult

Abschließendes Ergebnis einer nativen Streaming-Generierung.

GenerateTextResult

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'