Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este 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.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-llm` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando los siguientes comandos y sigue las instrucciones específicas para cada plataforma a continuación:
bun add @capgo/capacitor-llmbunx cap syncImportar
Sección titulada “Importar”import { CapgoLLM } from '@capgo/capacitor-llm';Inicio rápido
Sección titulada “Inicio rápido”import { CapgoLLM } from '@capgo/capacitor-llm';
const { id: chatId } = await CapgoLLM.createChat();await CapgoLLM.sendMessage({ chatId, message: 'Summarize this error log.' });Escuchar a textFromAi, aiFinished, y generationError en la sesión de chat, tal como se indica en el README del plugin.
Ejemplo: readiness antes de la UI
Sección titulada “Ejemplo: readiness antes de la UI”const { readiness } = await CapgoLLM.getReadiness();if (readiness !== 'ready') { showModelDownloadScreen();}Ejemplo: descargar un modelo personalizado
Sección titulada “Ejemplo: descargar un modelo personalizado”await CapgoLLM.downloadModel({ url: 'https://cdn.example.com/model.litertlm' });Errores comunes
Sección titulada “Errores comunes”- Web sin conexión: MediaPipe GenAI se carga desde un CDN; cachea el runtime y el modelo para demos offline.
- Gemini Nano en Android: no está en todos los dispositivos, gestiona modelos de fallback.
- Streaming: adjunta los listeners antes
sendMessagepara no perderte ningún token.
Resumen de API
Sección titulada “Descripción general de API”createChat
Sección titulada “createChat”Crea una nueva sesión de chat
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.createChat();console.log(result);sendMessage
Sección titulada “sendMessage”Envía un mensaje a la IA en una sesión de chat específica
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.sendMessage({ chatId: 'chat-id-123', message: 'Hello from Capacitor',});getReadiness
Sección titulada “getReadiness”Obtiene el estado de preparación del LLM
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.getReadiness();console.log(result);setModel
Sección titulada “setModel”Sets the model configuration
- iOS: Usa “Apple Intelligence” como ruta para el modelo del sistema o indica la ruta del modelo MediaPipe
- Android: Ruta de un archivo de modelo MediaPipe (en assets o en el directorio files)
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.setModel({ path: 'path/to/file', modelType: 'task',});downloadModel
Sección titulada “downloadModel”Descarga un modelo desde una URL y lo guarda en la ubicación correspondiente
- iOS: Se descarga en el directorio documents de la app
- Android: Se descarga en el directorio files de la app
import { CapgoLLM } from '@capgo/capacitor-llm';
const result = await CapgoLLM.downloadModel({ url: 'https://example.com' });console.log(result);Referencia de tipos
Sección titulada “Referencia de tipos”ModelOptions
Sección titulada “ModelOptions”Opciones de configuración del modelo.
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
Sección titulada “DownloadModelOptions”Opciones para descargar un modelo.
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
Sección titulada “DownloadModelResult”Resultado de la descarga del modelo.
export interface DownloadModelResult { /** Path where the model was saved */ path: string; /** Path where the companion file was saved (if applicable) */ companionPath?: string;}TextFromAiEvent
Sección titulada “TextFromAiEvent”Datos del evento de texto recibido de la IA.
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
Sección titulada “AiFinishedEvent”Datos del evento de finalización de la IA.
export interface AiFinishedEvent { /** The chat session ID that finished */ chatId: string;}DownloadProgressEvent
Sección titulada “DownloadProgressEvent”Datos del evento de progreso de descarga.
export interface DownloadProgressEvent { /** Percentage of download completed (0-100) */ progress: number; /** Total bytes to download */ totalBytes?: number; /** Bytes downloaded so far */ downloadedBytes?: number;}ReadinessChangeEvent
Sección titulada “ReadinessChangeEvent”Datos del evento de cambios en el estado de readiness.
export interface ReadinessChangeEvent { /** The readiness status */ readiness: string;}Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del src/definitions.ts. Vuelve a ejecutar el sync cuando el API público cambie en el upstream.
Continúa desde Primeros pasos
Sección titulada “Continúa desde Primeros pasos”Si estás usando Primeros pasos para planificar el dashboard y las operaciones de API, conéctalo con Uso de @capgo/capacitor-llm para la capacidad nativa en Uso de @capgo/capacitor-llm, Resumen de API para el detalle de implementación en Resumen de API Overview, Introducción para el detalle de implementación en Introducción, Claves de API para el detalle de implementación en Claves de API, y Dispositivos para el detalle de implementación en Dispositivos.