Per iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-llm`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/llm/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-llm` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:
bun add @capgo/capacitor-llmbunx cap syncImporta
Sezione intitolata “Import”import { CapgoLLM } from '@capgo/capacitor-llm';Avvio rapido
Sezione intitolata “Quick start”import { CapgoLLM } from '@capgo/capacitor-llm';
const { id: chatId } = await CapgoLLM.createChat();await CapgoLLM.sendMessage({ chatId, message: 'Summarize this error log.' });Ascolta gli textFromAi, aiFinished, e generationError sulla sessione di chat, come documentato nel README del plugin.
Esempio: readiness prima della UI
Sezione intitolata “Example: readiness before UI”const { readiness } = await CapgoLLM.getReadiness();if (readiness !== 'ready') { showModelDownloadScreen();}Esempio: download di un modello custom
Sezione: “Esempio: scarica un modello personalizzato”await CapgoLLM.downloadModel({ url: 'https://cdn.example.com/model.litertlm' });Errori comuni
Sezione intitolata “Errori comuni”- Web offline: MediaPipe GenAI carica da un CDN; metti in cache runtime e modello per demo offline.
- Gemini Nano su Android: non su ogni dispositivo, gestisci i modelli di fallback.
- Streaming: aggancia i listener in precedenza
sendMessageper non perdere i token.
Panoramica API
Sezione intitolata “Panoramica API”createChat
Sezione: “createChat”Crea una nuova sessione di chat
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.createChat();console.log(result);sendMessage
Sezione: “sendMessage”Invia un messaggio all'IA in una specifica sessione di chat
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.sendMessage({ chatId: 'chat-id-123', message: 'Hello from Capacitor',});getReadiness
Sezione: “getReadiness”Ottiene lo stato di prontezza dell'LLM
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.getReadiness();console.log(result);setModel
Sezione: “setModel”Configura il modello
- iOS: Usa “Apple Intelligence” come percorso per il modello di sistema, o indica il percorso del modello MediaPipe
- Android: Percorso del file del modello MediaPipe (nella directory assets o files)
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.setModel({ path: 'path/to/file', modelType: 'task',});downloadModel
Sezione denominata “downloadModel”Scarica un modello da un URL e lo salva nella posizione corretta
- iOS: Scarica nella directory documents dell'app
- Android: Scarica nella directory files dell'app
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.downloadModel({ url: 'https://example.com' });console.log(result);Riferimento ai tipi
Sezione: “Type Reference”ModelOptions
Sezione denominata “ModelOptions”Opzioni di configurazione del modello.
export interface ModelOptions { /** Model path or "Apple Intelligence" for iOS system model */ path: string; /** Model file type/extension (e.g., "task", "bin", "litertlm"). If not provided, will be extracted from path. */ modelType?: string; /** Maximum number of tokens the model handles */ maxTokens?: number; /** Number of tokens the model considers at each step */ topk?: number; /** Amount of randomness in generation (0.0-1.0) */ temperature?: number; /** Random seed for generation */ randomSeed?: number;}DownloadModelOptions
Sezione intitolata “DownloadModelOptions”Opzioni per il download di un modello.
export interface DownloadModelOptions { /** URL of the model file to download */ url: string; /** Optional: URL of companion file (e.g., .litertlm for Android) */ companionUrl?: string; /** Optional: Custom filename (defaults to filename from URL) */ filename?: string;}DownloadModelResult
Sezione intitolata “DownloadModelResult”Risultato del download del modello.
export interface DownloadModelResult { /** Path where the model was saved */ path: string; /** Path where the companion file was saved (if applicable) */ companionPath?: string;}TextFromAiEvent
Sezione intitolata “TextFromAiEvent”Dati dell'evento per il testo ricevuto dall'AI.
export interface TextFromAiEvent { /** The text content from AI - this is an incremental chunk, not the full text */ text: string; /** The chat session ID */ chatId: string; /** Whether this is a complete chunk (true) or partial streaming data (false) */ isChunk?: boolean;}AiFinishedEvent
Sezione intitolata “AiFinishedEvent”Dati dell'evento per il completamento dell'AI.
export interface AiFinishedEvent { /** The chat session ID that finished */ chatId: string;}DownloadProgressEvent
Sezione intitolata “DownloadProgressEvent”Dati dell'evento per il progresso del download.
export interface DownloadProgressEvent { /** Percentage of download completed (0-100) */ progress: number; /** Total bytes to download */ totalBytes?: number; /** Bytes downloaded so far */ downloadedBytes?: number;}ReadinessChangeEvent
Sezione intitolata “ReadinessChangeEvent”Dati dell'evento per i cambiamenti dello stato di readiness.
export interface ReadinessChangeEvent { /** The readiness status */ readiness: string;}Fonte di verità
Sezione intitolata “Fonte di verità”Questa pagina è generata dal src/definitions.ts. Riesegui la sync quando il API pubblico cambia upstream.
Continua da Getting Started
Sezione intitolata “Continua da Getting Started”Se stai usando Per iniziare per pianificare le operazioni della dashboard e di API, collegalo a Utilizzo di @capgo/capacitor-llm per la funzionalità nativa in Utilizzo di @capgo/capacitor-llm, Panoramica API per i dettagli di implementazione in Panoramica di API, Introduzione per i dettagli di implementazione in Introduzione, Chiavi API per i dettagli di implementazione in Chiavi API, e Dispositivi per i dettagli di implementazione in Dispositivi.