Premiers pas
Générez de courtes réponses textuelles sur l’appareil dans une application Capacitor, sans clé API ; les prompts et les réponses restent sur l’appareil. iOS utilise Apple Intelligence (Foundation Models), Android utilise Gemini Nano et les versions compatibles de Chrome sur ordinateur utilisent la Prompt API intégrée. Sur Android, le téléchargement du modèle Gemini Nano via downloadModel() peut utiliser le réseau.
Remarque : les LLM sur l’appareil nécessitent du matériel physique. Les émulateurs Android ne sont pas pris en charge. Les simulateurs iOS le sont si le Mac hôte prend en charge Apple Intelligence et que cette fonction est activée.
Installer
npm install @rdlabo/capacitor-local-llm
npx cap sync
Nécessite Capacitor 8 ou une version ultérieure. La génération de texte fonctionne aussi dans les navigateurs Chrome compatibles sur ordinateur via la Prompt API intégrée. Consultez Configuration Web pour les prérequis et les limites.
Résumé des plateformes
| Plateforme | Version minimale du système | Remarques |
|---|---|---|
| iOS | 18.4 | La génération d’images nécessite iOS 18.4+. Le LLM textuel nécessite iOS 26+. L’analyse d’images utilise Attachment de Foundation Models sur iOS 27+ lorsque le plugin est compilé avec Xcode 27 / Swift 6.4. |
| Android | API 29 (Android 10) | Gemini Nano via ML Kit nécessite un appareil physique compatible (par exemple Pixel 9+). |
La configuration des projets natifs (cible de déploiement SPM, minSdkVersion et téléchargement du modèle) figure dans Configuration.
Démarrage rapide
Après Installation et Configuration (ou Configuration Web dans Chrome), vérifiez la disponibilité, créez une conversation et générez du texte. Si l’état n’est pas available (par exemple downloadable), suivez Configuration ou le parcours de téléchargement Chrome dans Web avant de réessayer — une erreur levée à ce stade ne signifie pas que le démarrage rapide est terminé.
import { LocalLLM } from '@rdlabo/capacitor-local-llm';
const { status } = await LocalLLM.getAvailability();
if (status !== 'available') {
throw new Error(`Model not ready: ${status}`);
}
const { id: chatId } = await LocalLLM.createChat({
instructions: 'You are a helpful assistant.',
});
try {
const { text } = await LocalLLM.generateText({
chatId,
prompt: 'What is the capital of France?',
});
console.log(text);
} finally {
await LocalLLM.deleteChat({ id: chatId });
}
La réussite se traduit par une réponse textuelle consignée dans les journaux et la fin de deleteChat. La formulation exacte dépend du modèle. Streaming, annulation et préchauffage : Conversations. Entrée et génération d’images : Images.
Documentation
- Configuration — prérequis des plateformes, cible SPM iOS,
minSdkVersionAndroid et téléchargement de Gemini Nano. - Modèle de repli Android — LiteRT-LM lorsque Gemini Nano est indisponible.
- Disponibilité — valeurs d’état et comportement des plateformes.
- Conversations — cycle de vie, streaming, annulation et préchauffage.
- Images — analyse d’images (iOS / Android) et génération d’images (iOS).
- Événements — disponibilité, téléchargement, fragments de texte et cycle de vie des générations.
- Migration — API v1 obsolètes et migration depuis le projet amont.
- Gestion des erreurs — valeurs stables de
LocalLLMErrorCode.
Les signatures des méthodes figurent dans la section API ci-dessous. Pour les indications API Since lors d’une mise à niveau entre versions, consultez Migration et la section API.
Origine
Ce projet est un fork maintenu indépendamment de @capacitor/local-llm d’Ionic, fondé sur la version amont 1.0.0 au commit 5bceb55. Ce n’est pas un package officiel Ionic ou Capacitor ; il n’est ni affilié à Ionic ni pris en charge par Ionic.