Verfügbarkeit und Plattformverhalten
Die Interpretation der Statuswerte von getAvailability() und das plattformspezifische Laufzeitverhalten. Verwandte Anleitungen: Einrichtung, Android-Fallback-Modell, Chat, Bilder, Ereignisse.
Verfügbarkeit
getAvailability() gibt einen semantischen Wert status zurück:
| Status | Bedeutung |
|---|---|
available |
Das Textmodell ist zur Generierung bereit. |
device-not-eligible |
Das Gerät oder die Betriebssystemversion unterstützt das Textmodell auf dem Gerät nicht. iOS meldet dies genau. Androids FeatureStatus.UNAVAILABLE enthält keinen Grund und wird auf unavailable abgebildet. |
not-enabled |
Das Gerät unterstützt On-Device-KI, aber der Nutzer hat sie nicht aktiviert, beispielsweise bei deaktiviertem Apple Intelligence. Wird hauptsächlich unter iOS gemeldet. |
downloadable |
Das Modell kann heruntergeladen werden (Android). |
downloading |
Ein Modelldownload läuft (Android). |
not-ready |
Das Modell ist vorhanden, wird aber noch initialisiert. |
unavailable |
Das Modell ist aus einem anderen Grund nicht verfügbar. |
Abonnieren Sie availabilityChange oder den veralteten Alias systemAvailabilityChange, um bei registrierten Listenern Aktualisierungen zu erhalten. Unter Android fragt das Plugin den Zustand regelmäßig ab, solange Listener aktiv sind.
Das veraltete systemAvailability() und systemAvailabilityChange fassen detaillierte Zustände im ursprünglichen Vertrag mit vier Werten zusammen: available, unavailable, notready und downloadable. downloading und not-ready werden auf notready abgebildet; device-not-eligible, not-enabled und unavailable auf unavailable.
Plattformverhalten
iOS
- Das Text-LLM benötigt iOS 26 und Apple Intelligence. Unterhalb von iOS 26 wird die Verfügbarkeit als
device-not-eligiblegemeldet. Nur bestimmte iPhones ab iPhone 15 Pro und iPads unterstützen Apple Intelligence. Weitere Informationen. - Chats verwenden das native Foundation-Models-Transkript. Der Gesprächszustand liegt in
LanguageModelSession. Vor der Generierung wendet das Plugin außerdem ein konservatives Zeichenbudget gegen die nativecontextSizedes Modells an, einschließlich Anweisungen, aktuellem Prompt und Ausgabereserve. Wird eine Grenze überschritten, entfernt es die ältesten vollständigen Prompt-/Antwortschritte, erhält die Anweisungen und erstellt die Sitzung neu. warmup({ chatId, promptPrefix })wärmt einen bestimmten Chat vor, der mitcreateChat()erstellt wurde.cancelGeneration()bricht den laufendenTaskdes Chats ab. Das Promise vonstreamText()/generateText()wird mitLOCAL_LLM_GENERATION_CANCELLEDzurückgewiesen. Bereits übertextChunkgestreamter Text bleibt in Ihrer UI.- Einzelheiten zu Bildanalyse und Bildgenerierung finden Sie unter Bilder.
Android
- Der Gesprächsverlauf wird vom Plugin im Arbeitsspeicher strukturiert. Jeder Chat speichert Nutzer-/Assistentenschritte und kürzt anhand von
history.maxMessagesmit Standard 20 undhistory.maxCharactersmit Standard 12000. Gemini Nano verwendet anschließend ML KitcountTokens(), um in den Kontext zu passen. LiteRT-LM verwendet eine konservative Heuristik von einem Zeichen pro Token sowie Reserven für Prompt und Bilder, da Version 0.16.1 keine stabile Tokenzähl-API besitzt. Beide Wege entfernen die ältesten vollständigen Schritte. Systemanweisungen werden separat gespeichert und niemals gekürzt. Der Verlauf überdauert keinen Neustart der Anwendung. warmup()wärmt das Modell global vor und ignoriertchatId/promptPrefix.cancelGeneration()arbeitet nach bestem Bemühen. Es bricht die Coroutine des Plugins ab. ML Kit kann bereits Teilausgaben erzeugt haben, bevor der Abbruch abgeschlossen ist. Das Promise wird bei beobachtetem Abbruch mitLOCAL_LLM_GENERATION_CANCELLEDzurückgewiesen.- Nicht unterstützte Werte von
GenerationOptionswerden mitLOCAL_LLM_INVALID_OPTIONSzurückgewiesen, nicht still begrenzt.maxOutputTokensmuss innerhalb von1..min(device token limit, 4096)liegen. Fehlt es, beträgt der Plugin-Standard 256. - Native Modelloperationen laufen seriell. Der Plugin-Mutex schützt Gemini-Nano- und LiteRT-LM-Generierung, Fallback-Konfiguration, Vorwärmen, Download und Beenden. Gleichzeitige Generierungen in verschiedenen Chats werden daher in eine Warteschlange gestellt.
- Nicht alle Geräte ab API 29 unterstützen Gemini Nano. Das Gerät muss einen kompatiblen On-Device-KI-Stack besitzen. Weitere Informationen.
- Anwendungen können ausdrücklich einen LiteRT-LM-Fallback konfigurieren, wenn Gemini Nano nicht verfügbar ist. Nach Abschluss der Initialisierung meldet
getAvailability()available. Siehe Android-Fallback-Modell. - Die Backend-Auswahl für Bildanalyse ist unter Bilder dokumentiert.
- On-Device-Modelle können nicht verwendet werden, während sich die App im Hintergrund befindet. Inferenzanfragen aus dem Hintergrund schlagen fehl.
- AICore erzwingt Inferenzkontingente pro App. Zu viele Anfragen können im zugrunde liegenden SDK zu Auslastungs- oder Kontingentfehlern führen. Ziehen Sie exponentielles Backoff in Betracht.
Web (Chrome)
Die Textverfügbarkeit bildet die Chrome-Zustände available, downloadable, downloading und unavailable direkt ab. Fehlt die API, wird unavailable gemeldet. Verfügbarkeitsereignisse geben Änderungen wieder, die bei Plugin-Prüfungen sowie beim Erstellen oder Herunterladen von Sitzungen beobachtet werden; sie beruhen nicht auf regelmäßigen Hintergrundabfragen. Die Bildanalyse meldet derzeit unavailable. Informationen zur Einrichtung, zu unterstützten Methoden und zur Steuerung der Generierung finden Sie unter Web.