Aller au contenu
rdlabo.devdocs

API

Contrat public du plugin LLM sur l’appareil.

method getAvailability()

getAvailability() => Promise<GetAvailabilityResult>

Renvoie la disponibilité détaillée du modèle de texte. Le Web détecte la prise en charge de la Prompt API de Chrome ; les navigateurs incompatibles renvoient unavailable.

Renvoie : Promise<GetAvailabilityResult>

Depuis : 2.0.0


method getImageAnalysisAvailability()

getImageAnalysisAvailability() => Promise<GetImageAnalysisAvailabilityResult>

Renvoie la disponibilité de l’analyse d’images et le backend natif qui traiterait les images d’entrée.
Sur les builds iOS 27 compilés avec Xcode 27 / Swift 6.4, renvoie le status du modèle de texte, ainsi que backend: 'foundation-models' et maxImages: 4. Les builds réalisés avec un ancien Xcode signalent unavailable et ne peuvent pas inclure la prise en charge de la vision iOS 27. Android signale les API de prompt Gemini Nano ou un repli LiteRT-LM configuré. Le Web signale actuellement unavailable pour l’analyse d’images.

Renvoie : Promise<GetImageAnalysisAvailabilityResult>

Depuis : 2.1.0


method downloadModel()

downloadModel() => Promise<void>

Lance le téléchargement du modèle sur Android ou Chrome Web. Sur le Web, appelez cette méthode depuis un geste utilisateur ; Chrome gère le modèle.

Depuis : 2.0.0


method configureFallbackModel(...)

configureFallbackModel(options: ConfigureFallbackModelOptions) => Promise<void>

Initialise un modèle de repli LiteRT-LM explicite sur Android. Gemini Nano reste prioritaire lorsqu’il est disponible.
La configuration d’un modèle effectue des entrées/sorties sur des fichiers locaux et peut prendre un temps important. iOS et le Web rejettent cette API.

Paramètre Type
options ConfigureFallbackModelOptions

Depuis : 2.0.0


method warmup(...)

warmup(options?: WarmupOptions | undefined) => Promise<void>

Préchauffe les ressources du modèle. Le Web crée puis détruit une session textuelle temporaire ; promptPrefix est réservé à iOS.

Paramètre Type
options WarmupOptions

Depuis : 1.0.0


method createChat(...)

createChat(options?: CreateChatOptions | undefined) => Promise<CreateChatResult>

Crée un chat géré par le plugin jusqu’à sa suppression.

Paramètre Type
options CreateChatOptions

Renvoie : Promise<CreateChatResult>

Depuis : 2.0.0


method deleteChat(...)

deleteChat(options: DeleteChatOptions) => Promise<void>

Supprime un chat et annule sa génération.

Paramètre Type
options DeleteChatOptions

Depuis : 2.0.0


method generateText(...)

generateText(options: GenerateTextOptions) => Promise<GenerateTextResult>

Génère un texte complet.

Paramètre Type
options GenerateTextOptions

Renvoie : Promise<GenerateTextResult>

Depuis : 2.0.0


method streamText(...)

streamText(options: StreamTextOptions) => Promise<StreamTextResult>

Diffuse les fragments natifs en continu et renvoie le texte complet.

Paramètre Type
options GenerateTextOptions

Renvoie : Promise<GenerateTextResult>

Depuis : 2.0.0


method cancelGeneration(...)

cancelGeneration(options: CancelGenerationOptions) => Promise<void>

Annule une génération en cours.

Paramètre Type
options CancelGenerationOptions

Depuis : 2.0.0


method addListener('availabilityChange', ...)

addListener(eventName: 'availabilityChange', listenerFunc: AvailabilityChangeListener) => Promise<PluginListenerHandle>

Écoute les changements de disponibilité. Le Web émet les changements observés pendant les vérifications de disponibilité ainsi que la création et le téléchargement de sessions.

Paramètre Type
eventName 'availabilityChange'
listenerFunc AvailabilityChangeListener

Renvoie : Promise<PluginListenerHandle>

Depuis : 2.0.0


method addListener('systemAvailabilityChange', ...)

addListener(eventName: 'systemAvailabilityChange', listenerFunc: SystemAvailabilityChangeListener) => Promise<PluginListenerHandle>
Paramètre Type
eventName 'systemAvailabilityChange'
listenerFunc SystemAvailabilityChangeListener

Renvoie : Promise<PluginListenerHandle>

Depuis : 1.0.0


method addListener('downloadProgress', ...)

addListener(eventName: 'downloadProgress', listenerFunc: DownloadProgressListener) => Promise<PluginListenerHandle>

Écoute la progression du téléchargement sur Android ou Chrome Web.

Paramètre Type
eventName 'downloadProgress'
listenerFunc DownloadProgressListener

Renvoie : Promise<PluginListenerHandle>

Depuis : 2.0.0


method addListener('textChunk', ...)

addListener(eventName: 'textChunk', listenerFunc: TextChunkListener) => Promise<PluginListenerHandle>

Écoute les fragments de texte natifs.

Paramètre Type
eventName 'textChunk'
listenerFunc TextChunkListener

Renvoie : Promise<PluginListenerHandle>

Depuis : 2.0.0


method addListener('generationStateChange', ...)

addListener(eventName: 'generationStateChange', listenerFunc: GenerationStateChangeListener) => Promise<PluginListenerHandle>

Écoute le démarrage, la fin, l’annulation et l’échec de la génération.

Paramètre Type
eventName 'generationStateChange'
listenerFunc GenerationStateChangeListener

Renvoie : Promise<PluginListenerHandle>

Depuis : 2.1.0


method removeAllListeners()

removeAllListeners() => Promise<void>

Supprime tous les écouteurs du plugin.

Depuis : 1.0.0


method generateImage(...)

generateImage(options: GenerateImageOptions) => Promise<GenerateImageResponse>

Génère des images PNG sur iOS.

Paramètre Type
options GenerateImageOptions

Renvoie : Promise<GenerateImageResponse>

Depuis : 1.0.0


method systemAvailability()

systemAvailability() => Promise<SystemAvailabilityResponse>

Renvoie : Promise<SystemAvailabilityResponse>

Depuis : 1.0.0


method download()

download() => Promise<void>

Depuis : 1.0.0


method prompt(...)

prompt(options: PromptOptions) => Promise<PromptResponse>
Paramètre Type
options PromptOptions

Renvoie : Promise<PromptResponse>

Depuis : 1.0.0


method endSession(...)

endSession(options: EndSessionOptions) => Promise<void>

Termine une session de l’ancienne API. Les identifiants de sessions déjà terminées ou inconnues aboutissent sans effet.

Paramètre Type
options EndSessionOptions

Depuis : 1.0.0


Interfaces

interface GetAvailabilityResult

Résultat renvoyé par les vérifications de disponibilité.

Propriété Type Description Depuis
status Availability Disponibilité actuelle du modèle de texte. 2.0.0

interface GetImageAnalysisAvailabilityResult

Résultat renvoyé par les vérifications de disponibilité de l’analyse d’images.

Propriété Type Description Depuis
status Availability Disponibilité actuelle de l’analyse d’images. 2.1.0
backend ImageAnalysisBackend Backend natif qui traiterait l’analyse d’images si elle était disponible. 2.1.0
maxImages number Nombre maximal d’images accepté dans une génération par le backend actif. 2.1.0

interface ConfigureFallbackModelOptions

Configure un repli facultatif vers LiteRT-LM sur Android lorsque Gemini Nano n’est pas disponible.
Le modèle doit déjà exister comme ressource de l’application ou comme fichier lisible géré par celle-ci. iOS et le Web rejettent cette API.

Propriété Type Description Depuis
path string Chemin du modèle .litertlm. Utilisez /android_asset/... pour les ressources intégrées ou un chemin absolu de fichier géré par l’application. 2.0.0
maxTokens number Capacité totale du contexte transmise à LiteRT-LM. Valeur par défaut : 4096. 2.0.0
maxImages number Nombre maximal d’images accepté par génération pour un modèle doté de capacités de vision. Valeur par défaut : 1. 2.0.0
supportsImages boolean Initialise le pipeline de vision LiteRT-LM. Valeur par défaut : true ; utilisez false uniquement pour un modèle exclusivement textuel. 2.0.0

interface WarmupOptions

Options de préchauffage. Android effectue un préchauffage global du modèle ; iOS peut préchauffer un chat.
Le Web crée puis libère une session temporaire, éventuellement avec le contexte d’un chat.

Propriété Type Description Depuis
chatId string Identifiant explicite du chat à préchauffer sur iOS ou à utiliser comme contexte du préchauffage Web. 2.0.0
sessionId string 1.0.0
promptPrefix string Préfixe de prompt facultatif utilisé par Foundation Models. 1.0.0

interface CreateChatResult

Résultat contenant l’identifiant du chat géré par le plugin.

Propriété Type Description Depuis
id string Identifiant requis pour les appels de génération et de suppression. 2.0.0

interface CreateChatOptions

Options de création d’un chat géré par le plugin.

Propriété Type Description Depuis
instructions string Instructions système persistantes pour ce chat. 2.0.0
history ChatHistoryOptions Limites d’historique appliquées sur iOS, Android et le Web. 2.0.0

interface ChatHistoryOptions

Limites de l’historique du chat. Toutes les implémentations conservent les instructions et suppriment les échanges complets les plus anciens.

Propriété Type Description Depuis
maxMessages number Nombre maximal de messages conservés. Valeur par défaut : 20. 2.0.0
maxCharacters number Nombre maximal de caractères conservés dans les messages. Valeur par défaut : 12000. 2.0.0

interface DeleteChatOptions

Options de suppression d’un chat.

Propriété Type Description Depuis
id string Identifiant de chat renvoyé par createChat(). 2.0.0

interface GenerateTextResult

Résultat d’une génération de texte.

Propriété Type Description Depuis
text string Texte généré complet. 2.0.0
generationId string Identifiant permettant d’associer les diagnostics à une génération. 2.0.0

interface GenerateTextOptions

Options d’une génération sans diffusion en continu.

Propriété Type Description Depuis
chatId string Identifiant de chat renvoyé par createChat(). 2.0.0
prompt string Prompt de l’utilisateur. 2.0.0
images ImageInput[] Images fournies à un backend doté de capacités de vision. Sur iOS 27 et versions ultérieures (builds compilés avec Xcode 27 / Swift 6.4), Foundation Models Attachment accepte jusqu’à 4 images de 32 MiB maximum chacune, via des chemins absolus lisibles, des URL file://, du Base64 brut ou des URL de données Base64. Après une génération réussie, les pièces jointes sont supprimées de l’historique conservé, tandis que le prompt textuel et la réponse sont maintenus. Android utilise les API de prompt Gemini Nano ou un repli LiteRT-LM configuré avec des entrées absolues/file:///content:///Base64 et les limites de pixels cumulés de ML Kit. Le Web et les backends uniquement textuels rejettent les images d’entrée avec LOCAL_LLM_UNSUPPORTED. 2.1.0
imagePaths string[] Chemins d’images locales fournis à un modèle de repli LiteRT-LM Android doté de capacités de vision. Les chemins absolus, les URL file:// et les URI content:// lisibles sont acceptés. Ce parcours de compatibilité conserve le routage LiteRT-LM de la version 2.0, même lorsque ML Kit est disponible. 2.0.0
options GenerationOptions Paramètres facultatifs de génération. 2.0.0

interface ImageUriInput

Image d’entrée sous forme d’URI locale.

Propriété Type Description Depuis
uri string URI de l’image. iOS accepte les chemins locaux absolus lisibles et les URL file://. Android accepte les chemins absolus, les URL file:// et les URI content://. 2.1.0
base64 Les entrées base64 et URI s’excluent mutuellement. 2.1.0

interface Base64ImageInput

Image d’entrée encodée en base64.

Propriété Type Description Depuis
base64 string Octets d’image en Base64 brut ou URL data:image/...;base64,.... L’image décodée ne doit pas dépasser 32 MiB. 2.1.0
uri Les entrées base64 et URI s’excluent mutuellement. 2.1.0

interface GenerationOptions

Paramètres multiplateformes de génération de texte. Les valeurs non prises en charge sont rejetées, et non ramenées dans les limites autorisées. Sur Chrome Web, ces paramètres doivent être omis.

Propriété Type Description Depuis
temperature number Température d’échantillonnage. 2.0.0
topK number Échantillonne parmi les k tokens les plus probables. 2.0.0
maxOutputTokens number Nombre maximal de tokens générés. 2.0.0

interface CancelGenerationOptions

Options d’annulation d’une génération en cours.

Propriété Type Description Depuis
chatId string Chat auquel appartient la génération. 2.0.0
generationId string Identifiant facultatif de génération ; une discordance est traitée comme un résultat introuvable. 2.0.0

interface PluginListenerHandle

Propriété Type
remove () => Promise<void>

interface SystemAvailabilityResponse

Propriété Type Description Depuis
status LLMAvailability Valeur de disponibilité de l’ancienne API. Les états détaillés sont ramenés au contrat d’origine à quatre valeurs. 1.0.0

interface DownloadProgressEvent

Progression du téléchargement du modèle. Les événements intermédiaires Android omettent progress, car ML Kit ne fournit pas le nombre total d’octets.

Propriété Type Description Depuis
progress number Progression normalisée connue : 0 au début et 1 à la fin. 2.0.0
downloadedBytes number Nombre d’octets téléchargés jusqu’à présent, lorsqu’il est fourni par ML Kit. 2.0.0
totalBytes number Nombre total d’octets, lorsqu’un SDK de plateforme le fournit. Actuellement omis sur Android. 2.0.0

interface TextChunkEvent

Texte incrémental émis par streamText().

Propriété Type Description Depuis
chatId string Chat auquel appartient la génération. 2.0.0
generationId string Identifiant de cette génération. 2.0.0
text string Texte nouvellement généré uniquement, sans l’instantané cumulé. 2.0.0

interface GenerationStateChangeEvent

Événement de cycle de vie émis pour generateText() et streamText().

Propriété Type Description Depuis
chatId string Chat auquel appartient la génération. 2.1.0
generationId string Identifiant natif de génération, disponible dans l’événement started. 2.1.0
state GenerationState État actuel du cycle de vie. 2.1.0
errorCode LocalLLMErrorCode Code d’erreur stable pour les états cancelled et failed. 2.1.0

interface GenerateImageResponse

Résultat de la génération d’images.

Propriété Type Description Depuis
pngBase64Images string[] Images PNG en base64 brut, sans préfixe d’URI de données. 1.0.0

interface GenerateImageOptions

Options de génération d’images. La génération d’images est disponible uniquement à partir d’iOS 18.4.

Propriété Type Description Depuis
prompt string Description de l’image. 1.0.0
promptImages string[] Images de référence facultatives en base64. 1.0.0
count number Nombre de variantes. Valeur par défaut : 1. 1.0.0

interface PromptResponse

Réponse au prompt de l’ancienne API.

Propriété Type Description Depuis
text string Texte généré complet. 1.0.0

interface PromptOptions

Options de prompt de l’ancienne API.

Propriété Type Description Depuis
sessionId string Identifiant facultatif de session de l’ancienne API. 1.0.0
instructions string Instructions utilisées à la création initiale de la session de l’ancienne API. 1.0.0
options LLMOptions Paramètres de génération de l’ancienne API. 1.0.0
prompt string Prompt de l’utilisateur. 1.0.0

interface LLMOptions

Propriété Type Description Depuis
temperature number Température d’échantillonnage. 1.0.0
maximumOutputTokens number Nombre maximal de tokens générés. 1.0.0

interface EndSessionOptions

Options de suppression d’une session de l’ancienne API.

Propriété Type Description Depuis
sessionId string Identifiant de session de l’ancienne API. 1.0.0

Alias de types

type alias Availability

Disponibilité sémantique du modèle textuel sur l’appareil.

'available' | 'device-not-eligible' | 'not-enabled' | 'downloadable' | 'downloading' | 'not-ready' | 'unavailable'

type alias ImageAnalysisBackend

Backend natif sélectionné pour l’analyse d’images sur l’appareil.

'foundation-models' | 'ml-kit-prompt' | 'litert-lm'

type alias ImageInput

Référence d’image pour la génération de texte avec capacités de vision.

ImageUriInput | Base64ImageInput

type alias StreamTextOptions

Options de génération native en streaming.

GenerateTextOptions

type alias StreamTextResult

Résultat final d’une génération native en streaming.

GenerateTextResult

type alias AvailabilityChangeListener

Écouteur des changements de disponibilité.

(event: GetAvailabilityResult): void

type alias SystemAvailabilityChangeListener

(event: SystemAvailabilityResponse): void

type alias LLMAvailability

'available' | 'unavailable' | 'notready' | 'downloadable'

type alias DownloadProgressListener

Écouteur de la progression du téléchargement du modèle.

(event: DownloadProgressEvent): void

type alias TextChunkListener

Écouteur des fragments de génération native.

(event: TextChunkEvent): void

type alias GenerationStateChangeListener

Écouteur des changements de cycle de vie de la génération native.

(event: GenerationStateChangeEvent): void

type alias GenerationState

État du cycle de vie de la génération native.

'started' | 'completed' | 'cancelled' | 'failed'

type alias LocalLLMErrorCode

Codes d’erreur stables de Local LLM.

'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'