本文へ移動
rdlabo.devdocs

はじめに

デバイス上で短い応答テキストを生成する 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 との提携・サポート関係はありません。