はじめに
デバイス上で短い応答テキストを生成する Capacitor プラグインです。API キーは不要で、プロンプトと応答はデバイス外へ送信されません。iOS は Apple Intelligence(Foundation Models)、Android は Gemini Nano、対応デスクトップ Chrome は組み込み Prompt API を使います。Android の downloadModel() によるモデル取得にはネットワークを使う場合があります。
iOS/Android のオンデバイス LLM には対応ハードウェアが必要です。Android エミュレーターは非対応です。iOS シミュレーターはホスト Mac が Apple Intelligence に対応し、有効にしている場合に利用できます。
インストール
npm install @rdlabo/capacitor-local-llm
npx cap sync
Capacitor 8 以降が必要です。対応デスクトップ Chrome では組み込み Prompt API によるテキスト生成も利用できます。要件と制限は Web(Chrome) を参照してください。
プラットフォーム概要
| プラットフォーム | 最低OS | 注意 |
|---|---|---|
| iOS | 18.4 | 画像生成は18.4以降、テキストLLMは26以降。画像解析はXcode 27 / Swift 6.4でビルドした場合にiOS 27以降のFoundation Models Attachment を使います。 |
| Android | API 29(Android 10) | ML Kit経由のGemini Nanoには対応実機(Pixel 9以降など)が必要です。 |
| Web | 対応デスクトップChrome | HTTPSまたはlocalhostのセキュアコンテキスト。Prompt APIによるテキスト生成。詳細はWeb(Chrome)。 |
SPM の deployment target、minSdkVersion、モデルダウンロードは セットアップ を参照してください。
クイックスタート
インストールと セットアップ(Chrome では Web(Chrome))のあと、利用可否を確認し、チャットを作成して生成します。available 以外(例: downloadable)のときは、ここで throw して終わるのではなく セットアップ または Chrome のダウンロード手順へ進んでから再試行してください。
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 });
}
成功の目安は、応答文字列が表示(ログ)され、deleteChat まで完了することです。文言はモデル依存です。ストリーミング・キャンセル・ウォームアップは チャット、画像入力と生成は 画像 を参照してください。
ドキュメント
- セットアップ:プラットフォーム要件、SPM、Android SDK、モデル取得。
- Web(Chrome):デスクトップChromeのPrompt API、要件、制限。
- Androidフォールバックモデル:Gemini Nano非対応時のLiteRT-LM。
- 利用可否:状態値とプラットフォームの動作。
- チャット:寿命、ストリーミング、キャンセル、ウォームアップ。
- 画像:iOS/Androidの画像解析とiOSの画像生成。
- イベント:利用可否、ダウンロード、生成チャンク、生成ライフサイクル。
- 移行:v1非推奨APIと本家からの移行。
- エラー処理:安定した
LocalLLMErrorCode。
メソッドのシグネチャは API にあります。リリース間の API Since は 移行 と API を参照してください。
由来
このプロジェクトは Ionic の @capacitor/local-llm バージョン 1.0.0、コミット 5bceb55 を元にした独立管理のフォークです。Ionic や Capacitor の公式パッケージではなく、Ionic との提携・サポート関係はありません。