Zum Inhalt springen
rdlabo.devdocs

Erste Schritte

Erzeugen Sie kurze Textantworten direkt auf dem Gerät in einer Capacitor-Anwendung, ohne API-Schlüssel. Prompts und Antworten bleiben auf dem Gerät. iOS verwendet Apple Intelligence (Foundation Models), Android Gemini Nano und unterstütztes Desktop-Chrome die integrierte Prompt API. Unter Android kann der Download des Gemini-Nano-Modells über downloadModel() das Netzwerk verwenden.

Hinweis: On-Device-LLMs benötigen physische Hardware. Android-Emulatoren werden nicht unterstützt. iOS-Simulatoren werden unterstützt, sofern der Host-Mac Apple Intelligence unterstützt und aktiviert hat.

Installation

npm install @rdlabo/capacitor-local-llm
npx cap sync

Benötigt Capacitor ab 8. Textgenerierung funktioniert außerdem in unterstützten Desktop-Chrome-Browsern über die integrierte Prompt API. Anforderungen und Einschränkungen finden Sie unter Web-Einrichtung.

Plattformübersicht

Plattform Mindestversion des Betriebssystems Hinweise
iOS 18.4 Bildgenerierung benötigt iOS ab 18.4. Das Text-LLM benötigt iOS ab 26. Bildanalyse verwendet Attachment von Foundation Models unter iOS ab 27, wenn mit Xcode 27 / Swift 6.4 kompiliert wird.
Android API 29 (Android 10) Gemini Nano über ML Kit benötigt ein kompatibles physisches Gerät, beispielsweise Pixel ab 9.

Die native Projekteinrichtung mit SPM-Deployment-Target, minSdkVersion und Modelldownload finden Sie unter Einrichtung.

Schnellstart

Prüfen Sie nach Installation und Einrichtung beziehungsweise Web-Einrichtung in Chrome die Verfügbarkeit, erstellen Sie einen Chat und generieren Sie Text. Wenn der Status nicht available ist, beispielsweise downloadable, folgen Sie vor einem erneuten Versuch der Einrichtung oder dem Chrome-Downloadablauf unter Web. Ein hier ausgelöster Fehler bedeutet nicht, dass der Schnellstart abgeschlossen ist.

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 });
}

Erfolg bedeutet, dass eine Antwortzeichenfolge protokolliert und deleteChat abgeschlossen wird. Die genaue Formulierung hängt vom Modell ab. Streaming, Abbruch und Vorwärmen: Chat. Bildeingabe und -generierung: Bilder.

Dokumentation

  • Einrichtung — Plattformanforderungen, iOS-SPM-Target, Android-minSdkVersion und Gemini-Nano-Download.
  • Android-Fallback-Modell — LiteRT-LM, wenn Gemini Nano nicht verfügbar ist.
  • Verfügbarkeit — Statuswerte und Plattformverhalten.
  • Chat — Chat-Lebenszyklus, Streaming, Abbruch und Vorwärmen.
  • Bilder — Bildanalyse unter iOS / Android und Bildgenerierung unter iOS.
  • Ereignisse — Verfügbarkeit, Download, Textabschnitte und Generierungslebenszyklus.
  • Migration — veraltete v1-APIs und Migration vom Upstream.
  • Fehlerbehandlung — stabile Werte von LocalLLMErrorCode.

Methodensignaturen stehen im folgenden API-Abschnitt. Hinweise zu API-Since beim Wechsel zwischen Veröffentlichungen finden Sie unter Migration und im API-Abschnitt.

Herkunft

Dieses Projekt ist ein unabhängig gepflegter Fork von Ionics @capacitor/local-llm, basierend auf der Upstream-Version 1.0.0 bei Commit 5bceb55. Es ist kein offizielles Ionic- oder Capacitor-Paket, steht in keiner Verbindung zu Ionic und wird nicht von Ionic unterstützt.