@capgo/capacitor-llm

中文文档
8.2.0发布于 2026/11/04MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4.9万

添加 Capacitor 本地运行的 LLM 支持

中文使用文档
文档目录24 节
  1. *免费开始*
  2. 主要特点
  3. 文档
  4. 兼容性
  5. 安装
  6. 模型设置
  7. iOS系统
  8. 机器人
  9. 网页
  10. 使用量
  11. 页:1
  12. 创建Chat ()
  13. 发送消息(...)
  14. 准备状态( )
  15. 设置模式(...)
  16. 下载模式(...)
  17. 添加聆听器( 从 Ai' 添加文本,...)
  18. 添加倾听器( “ 已完成 ” ,...)
  19. 添加倾听器( “ 生成错误 ” ,...)
  20. 添加倾听器( “ 下载进度 ” ,...)
  21. 添加倾听器( “ 准备变化 ” ,...)
  22. 获取 PluginVersion ()
  23. 接口
  24. 示例应用

@ capgo/ 电容- llm

从 Capacitor app 上运行设备上的大型语言模型: iOS上的Apple Intelligence,Android上的双子纳诺或LiteRT-LM,浏览器中的Gemma网络模型. 私人和免费的每个请求.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-llm 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: "把@capgo/capacor-llm 添加到我的Capacitor app上并把它接上" 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-llm for Capacitor apps

主要特点

  • 聊天会数字 : createChat() 财务报告和审定财务报表 sendMessage(),带有流线 textFromAi, (中文(简体) ), aiFinished 财务报告和审定财务报表 generationError 事件.
  • 型号选择数字 : setModel() 选择苹果智能、双子纳米或自定义 .litertlm 型号.
  • 模型下载数字 : downloadModel() 用 downloadProgress 事件.
  • 准备情况数字 : getReadiness() 编辑 readinessChange 事件显示模型何时可以回答.
  • 平台: iOS,Android和Web. 互联网档案馆的存檔,存档日期2013-12-02. Web 使用 Gemma 模型通过 @mediapipe/tasks-genai。它从 CDN 中装入运行时间,并且需要模型文件,所以只有在两者都可以在本地使用时才能下线.

Capacitor的On-device LLM支持.

现行平台战略:

  • iOS:默认情况下的苹果智能,加上LiteRT-LM .litertlm swiftPM 集成中的自定义模型 .litertlm 或者说 modelType: 'litertlm' 被通过
  • Android: 双子座纳米系统模型在已可用的辅助设备上, LiteRT-LM for .litertlm 捆绑和相容回落的相容性 .task 模型
  • Web: Gemma 4 网络模型通过 @mediapipe/tasks-genai

文档

最完整的插件文件可用于 capgo.app/docs/插件/illm。 。 。 .

兼容性

插件版本电容兼容性维护
v八.。 。 。 .v八.。 。 。 .✅
v.。 。 。 .v.。 。 。 .应要求
v6 (英语).。 。 。 .v6 (英语).。 。 。 .❌
页:1.。 。 。 .页:1.。 。 。 .❌

说明: 插件主版本遵循Capacitor主版本. 使用匹配您的电容安装的版本 .

安装

npm install @capgo/capacitor-llm
npx cap sync

如果您使用网络执行, 也安装 MediaPipe 对等依赖 :

npm install @mediapipe/tasks-genai

模型设置

iOS系统

建议路径 :

  • 使用苹果智能设备 path: 'Apple Intelligence'
  • 需要 iOS 26.0+

自定义 iOS liteRT- LM 路径 :

  • 仅当插件通过 Swift 套件管理器整合到 iOS 应用程序时才可用
  • 使用正式的 LitERT-LM Swift API 和预建的 iOS x框架 .litertlm 模型
  • 仅当路径结束于 .litertlm 或者说 modelType: 'litertlm' 被通过
  • CocoaPods 建立苹果智能和遗留的MediaPipe .task 兼容路径
  • 其它自定义的 iOS 模型类型为后向兼容保留了遗留的 MediaPipe 兼容路径

示例

import { CapgoLLM } from '@capgo/capacitor-llm';

await CapgoLLM.setModel({ path: 'Apple Intelligence' });
const chat = await CapgoLLM.createChat();

机器人

建议路径 :

  • 使用双子纳米 path: 'Gemini Nano' 当Android设备已经通过 AICore 可用时
  • 使用 LitERT- LM 软件 .litertlm 捆绑
  • Gemma 4 E2B 和 E4B 是很好的默认实例
  • 模式向公众提供 litert-community 拥抱面部重置

双子纳米系统模型示例:

await CapgoLLM.setModel({ path: 'Gemini Nano' });
const chat = await CapgoLLM.createChat();

可选: ML Kit GenAI Agent API (Gemini Nano代理工作流程)

Google的ML Kit GenAI Agent API (英语:com.google.mlkit:genai-agent:1.0.0-alpha1) 添加 AgentRunner 在双子座纳诺上方(包括支持设备上的双子座纳诺v4)管理多回合会话. 没错 选入 因此,不使用它的程序不会拉起依赖性.

文档 :

启用本地依赖 (选一):

  1. capacitor.config.ts (运行) capacitor:sync:before 钩:
plugins: {
  CapgoLLM: {
    android: {
      genaiAgent: {
        include: true,
        dependencyType: 'implementation',
      },
    },
  },
},
  1. 应用 android/gradle.properties 或者说 variables.gradle数字 :
capacitorLLM.genaiAgent.include=true

使用代理后端 (违约仍然是直接的) genai-prompt 访问 :

await CapgoLLM.setModel({
  path: 'Gemini Nano',
  androidGeminiBackend: 'agent',
});

所需经费: Android API 26+,Android 14 (API 34)+ 与 AICore 进行代理预览,启用时可特林 2.3+在插件中. 参见Google的双子纳米模型版本设备支持列表.

倒计时 : 若为 genai-agent 未包括, androidGeminiBackend: 'agent' 失败的模型加载带有明显的错误 。 使用 androidGeminiBackend: 'prompt' (默认)或省略已存在的 Point API 路径的字段.

仅编译 : 设定 dependencyType: 'compileOnly' 在配置中, 当您的应用程序添加时 implementation 'com.google.mlkit:genai-agent:1.0.0-alpha1' 自己来.

用下载的 Gemma 4 模式快速启动 :

import { CapgoLLM } from '@capgo/capacitor-llm';

const result = await CapgoLLM.downloadModel({
  url: 'https://huggingface.co/litert-community/gemma-4-E2B-it-litert-lm/resolve/main/gemma-4-E2B-it.litertlm?download=true',
  filename: 'gemma-4-E2B-it.litertlm',
});

await CapgoLLM.setModel({
  path: result.path,
  modelType: 'litertlm',
  maxTokens: 4096,
  topk: 40,
  temperature: 0.8,
});

const chat = await CapgoLLM.createChat();

捆绑资产示例 :

await CapgoLLM.setModel({
  path: '/android_asset/gemma-4-E2B-it.litertlm',
  modelType: 'litertlm',
  maxTokens: 4096,
});

遗产兼容性 :

  • 现有 Android .task 模型仍然通过兼容路径加载
  • 新的一体化应更可取 .litertlm

网页

网络执行使用 @mediapipe/tasks-genai 与网络准备的模型文物.

Gemma 4 网络模型在移动 LitERT- LM 捆绑并使用旁边发布 *-web.task。 。 。 .

示例

await CapgoLLM.setModel({
  path: 'https://huggingface.co/litert-community/gemma-4-E2B-it-litert-lm/resolve/main/gemma-4-E2B-it-web.task?download=true',
  modelType: 'task',
  maxTokens: 4096,
});

使用量

import { CapgoLLM } from '@capgo/capacitor-llm';

const { readiness } = await CapgoLLM.getReadiness();
console.log('LLM readiness:', readiness);

const { id } = await CapgoLLM.createChat();

await CapgoLLM.addListener('textFromAi', (event) => {
  console.log('chunk', event.text);
});

await CapgoLLM.addListener('aiFinished', ({ chatId }) => {
  console.log('finished', chatId);
});

await CapgoLLM.sendMessage({
  chatId: id,
  message: 'Explain why local inference is useful on mobile.',
});

页:1

  • Android现在更喜欢LiteRT-LM和Gemma 4风格 .litertlm 捆绑.
  • iOS LiteRT-LM自定义模型支持现在使用官方的LiteRT-LM Swift API和预建的iOS 二进制,只在本插件的 SwiftPM 集成中提供,并且只选择用于明文 .litertlm 模特们.
  • CocoaPods 建立在 iOS 上应该使用 Apple Intelligence 或 遗留的 MediaPipe .task 兼容路径 .
  • 网络使用 Gemma 4 *-web.task 文物通过 @mediapipe/tasks-genai。 。 。 .
  • Apple Intelligence仍然是iOS中首选的缺省.

与设备语言模型交互的 LLM 插件接口

创建Chat ()

createChat() => Promise<{ id: string; instructions?: string; }>

创建新聊天会话

回返情况: Promise<{ id: string; instructions?: string; }>


发送消息(...)

sendMessage(options: { chatId: string; message: string; }) => Promise<void>

在特定聊天会话中向AI发送消息

参数类型说明
options{ chatId: string; message: string; }- 要发送的聊天id和消息

准备状态( )

getReadiness() => Promise<{ readiness: string; }>

获得 LLM 的准备状态

回返情况: Promise<{ readiness: string; }>


设置模式(...)

setModel(options: ModelOptions) => Promise<void>

设置模型配置

  • iOS:使用"Apple Intelligence"作为系统模型的路径. 自定义 LitERT- LM .litertlm 模型仅在此插件通过 Swift 套件管理器集成时在 iOS 上支持, 并且仅在选中时使用 modelType: 'litertlm' 或路径结束于 .litertlm。 。 。 .
  • Android:在已经可用的辅助设备上为AICore系统模型使用"Gemini Nano". 设定 androidGeminiBackend: 'agent' 用于使用 ML Kit GenAI 代理 API(com.google.mlkit:genai-agent),用于管理下的多回合双子座纳诺会(选入本土依赖). 偏好 LitERT-LM 软件 .litertlm 自定义模型的捆绑; 遗留的 MediaPipe .task 模式仍然被支持
  • Web: 为 @mediapipe/tasks-genai 诸如Gemma 4 等 *-web.task
参数类型说明
optionsModelOptions- 模型配置

下载模式(...)

downloadModel(options: DownloadModelOptions) => Promise<DownloadModelResult>

从 URL 下载模型并将其保存到合适的位置

  • iOS: 下载到应用程序文档目录
  • Android: 下载到应用程序的文件目录
参数类型说明
optionsDownloadModelOptions- 下载配置

回返情况: Promise<DownloadModelResult>


添加聆听器( 从 Ai' 添加文本,...)

addListener(eventName: 'textFromAi', listenerFunc: (event: TextFromAiEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为从 AI 收到的文本添加一个听众

参数类型说明
eventName'textFromAi'- 事件名称“ 来自Ai的文本”
listenerFunc(event: TextFromAiEvent) => void- 文本事件召回函数

回返情况: Promise<{ remove: () => Promise<void>; }>


添加倾听器( “ 已完成 ” ,...)

addListener(eventName: 'aiFinished', listenerFunc: (event: AiFinishedEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为 AI 补全事件添加一个听众

参数类型说明
eventName'aiFinished'- 事件名称"完成"
listenerFunc(event: AiFinishedEvent) => void- 完成事件的召回功能

回返情况: Promise<{ remove: () => Promise<void>; }>


添加倾听器( “ 生成错误 ” ,...)

addListener(eventName: 'generationError', listenerFunc: (event: GenerationErrorEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为流出后发生的生成失败添加一个监听器

参数类型说明
eventName'generationError'- 事件名称 '生成错误'
listenerFunc(event: GenerationErrorEvent) => void- 生成错误的召回功能

回返情况: Promise<{ remove: () => Promise<void>; }>


添加倾听器( “ 下载进度 ” ,...)

addListener(eventName: 'downloadProgress', listenerFunc: (event: DownloadProgressEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为模型下载进度事件添加一个收听器

参数类型说明
eventName'downloadProgress'- 事件名称“ 下载进度 ”
listenerFunc(event: DownloadProgressEvent) => void- 进度活动的召回功能

回返情况: Promise<{ remove: () => Promise<void>; }>


添加倾听器( “ 准备变化 ” ,...)

addListener(eventName: 'readinessChange', listenerFunc: (event: ReadinessChangeEvent) => void) => Promise<{ remove: () => Promise<void>; }>

为准备状态变化添加一个倾听器

参数类型说明
eventName'readinessChange'- 事件名称 "准备" 变化
listenerFunc(event: ReadinessChangeEvent) => void- 准备活动的召回功能

回返情况: Promise<{ remove: () => Promise<void>; }>


获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地 Capacitor 插件版本 .

回返情况: Promise<{ version: string; }>

自: 1.0.0 (单位:千美元)


接口

模式选项

模型配置选项 仅 path 需要时间。 所有其他属性都是可选的覆盖.

Prop类型说明自兹
pathstring模型路径,为iOS上的苹果系统模型"Apple Intelligence",或Android AICore系统模型上已经可用的"Gemini Nano". 在iOS上, 自定义 .litertlm 模型要求插件通过Swift套件管理器集成. Gemma 4 个实例 .litertlm 移动式和 *-web.task 在网络上.
modelTypestring可选的 模型文件类型/扩展(例如) task, (中文(简体) ), bin, (中文(简体) ), litertlm, (中文(简体) ), gemini-nano,或 gemini-nano-agent) (中文(简体) ). 如果不提供,则取出路径. 在 iOS 上, LiteRT- LM 仅在此决定时被选中 litertlm;所有其他自定义类型都保留了遗留的MediaPipe兼容路径.
maxTokensnumber模型控件的最大符号数
topknumber模型在每个步骤考虑的符号数
temperaturenumber随机生成量(0.0-1.0)
randomSeednumber可选的 随机种子为一代.
backend'gpu' | 'cpu'可选的 iOS(SwiftPM)和Android的LiteRT-LM引擎后端. 使用 cpu 为稳定的长辈。 在省略后,iOS更喜欢CPU后倒回GPU;Android使用CPU.8.2.0 (中文(简体) )
androidGeminiBackend'prompt' | 'agent'可选的 仅限双子座纳米融合. 默认为 prompt (ML Kit语 genai-prompt 直接模式访问)。 使用 agent 为 ML Kit GenAI 代理 API (com.google.mlkit:genai-agent与 AgentRunner 管理的会议。 要求选择进入格拉德的本土依赖(见README). 在iOS和网络上被忽略.8.2.0 (中文(简体) )

下载模式结果

模型下载结果

Prop类型说明
pathstring保存模型的路径
companionPathstring保存同伴文件的路径( 如果适用)

下载模式选项

下载模型的选项 仅 url 需要时间. companionUrl 财务报告和审定财务报表 filename 是可选的.

Prop类型说明
urlstring要下载的模型文件的 URL
companionUrlstring可选: 遗留模式格式的同伴文件的 URL
filenamestring可选: 自定义文件名( URL 的默认文件名)

来自AiEvent 的文本

从大赦国际收到的文本事件数据

Prop类型说明
textstringAI的文本内容 - 这是一个递增块,而不是全文
chatIdstring聊天会话编号
isChunkboolean无论是完整的块( 真) 还是部分流出数据( 假)

已完成的晚会

AI完成的事件数据

Prop类型说明
chatIdstring完成的聊天会话 ID

生成错误事件

生成失败事件数据 chatId 是可选的,在失败没有与特定聊天捆绑时可能会被省略.

Prop类型说明
chatIdstring可选的 如果可用的话, 则失败的聊天会话 ID .
errorstring描述失败的错误消息

下载进度事件

下载进度事件数据

Prop类型说明
progressnumber完成下载的百分比(0-100)
totalBytesnumber要下载的字节总数
downloadedBytesnumber迄今下载的字节数

变化中的活动

准备状态变化的事件数据

Prop类型说明
readinessstring准备状态

示例应用

退款包括一个 example-app/ 证明:

  • IOS上的苹果智能
  • Gemma 4 LiteRT-LM 在Android上的模型下载

见 实例应用/README.md 用于本地设置指令.

版本与发布记录

@capgo/capacitor-llm 共发布 48 个版本,首次发布于 2025/08/16;过去 12 个月发布了 37 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.0latest2026/11/044 天前
8.1.112026/10/1525 天前
8.1.102026/10/1327 天前
8.1.92026/10/091 个月前
8.1.82026/10/081 个月前
8.1.72026/10/081 个月前

关于 @capgo/capacitor-llm 的常见问题

@capgo/capacitor-llm 是什么?

添加 Capacitor 本地运行的 LLM 支持

如何安装 @capgo/capacitor-llm?

在项目目录运行 npm install @capgo/capacitor-llm,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)、@mediapipe/tasks-genai(^0.10.24)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-llm 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-llm 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-llm 可以商用吗?

@capgo/capacitor-llm 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-llm 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-llm 在 2026/10/09 – 2026/11/07 这 30 天内被下载 49,029 次,日均约 1,634 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-llm 还在维护吗?

最新版本 8.2.0 发布于 2026/11/04(4 天前);至今共发布 48 个版本,其中过去 12 个月发布了 37 个;首次发布于 2025/08/16。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。