x-mnnkit-s 端侧大模型
端侧 LLM 文本生成。模型用 ZIP 导入后加载,支持 generate / chat 流式输出。适合本地助手、归纳问答。
ZIP 内只能有一个 x-mnnkit-manifest.json(或 manifest.json),并声明 config.json、llm_config.json、llm.mnn、llm.mnn.weight、tokenizer.txt。
兼容性
| Harmony | IOS | Android | WEB | 小程序 |
|---|---|---|---|---|
| 部分支持 | 支持 | 支持 | 不支持 | 不支持 |
调用
ts
import { prepareModel, loadModel, chat, generate } from "@/uni_modules/x-mnnkit-s"
prepareModel({
source: {
kind: "remote",
archivePath: zipPath,
modelId: "qwen-customer-service",
version: "1.1.0"
},
success: (result) => {
loadModel({
modelPath: result.descriptor.path,
temperature: 0.7,
topP: 0.8,
success: () => {
generate({
prompt: "你好,请介绍一下自己",
maxNewTokens: 256,
onToken: (text) => {
console.log(text)
},
success: (res) => {
console.log(res.text)
}
})
}
})
}
})多轮:
ts
const history = [
{ role: "system", content: "你是简洁的本地助手。" },
{ role: "user", content: "介绍一下自己" }
] as XMNNChatMessageItem[]
chat({
messages: history,
maxNewTokens: 256,
onToken: (text) => {
console.log(text)
},
success: (res) => {
history.push({ role: "assistant", content: res.text })
}
})source.kind:remote 用已下载 ZIP 的 archivePath;local 用已解压目录 path。
方法
| 名称 | 需要 | 说明 |
|---|---|---|
| prepareModel | source(kind / archivePath 或 path / modelId / version),可选 onEvent | 导入 ZIP 或已解压目录,返回 requestId |
| cancelModelPreparation | requestId | 取消正在导入的模型 |
| getModelState | modelId、version | 查询某个模型是否已导入 |
| listModels | 无 | 列出已导入模型 |
| removeModel | modelId、version | 删除已导入模型 |
| loadModel | modelPath 或 bundledModelName,可选采样参数 | 加载到内存,之后才能 generate / chat |
| generate | prompt,可选 maxNewTokens、onToken | 单轮生成,onToken 收流式增量 |
| chat | messages[](role + content),可选 maxNewTokens、onToken | 多轮对话,历史由调用方自己维护 |
| stop | 无 | 打断当前生成 |
| unload | 无 | 卸载已加载模型 |
参数
loadModel
| 字段 | 说明 | 默认 |
|---|---|---|
| modelPath | 模型目录 | - |
| bundledModelName | 内置模型名 | - |
| useMetal | iOS Metal,失败回退 CPU | false |
| temperature | 采样温度 | 0.7 |
| topP | 核采样 | 0.8 |
| topK | 候选数 | 20 |
| repetitionPenalty | 重复惩罚 | 1.05 |
generate:prompt、maxNewTokens、onToken。chat:messages(role 为 system / user / assistant / tool / json)、maxNewTokens、onToken。
平台差异
- 完整能力在 iOS / Android。鸿蒙无内置模型,ZIP 安装受限。
- 无 Web / 微信。
版本
版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。
更新日志
1.0.0(2026-07-31)
- 支持安卓和IOS下的MNN格式的大模型,作者提供提前编译好的Qwen3.6 0.6b模型供下载测试。
- 新增 iOS UTS API 骨架。
- 新增模型加载、流式生成、停止、卸载及运行时信息接口。
- 拒绝直接加载 GGUF,避免与 MNN 模型格式混用。
- 内置 MNN 3.6.1 iOS arm64 静态 Framework,启用 CPU、Metal 和 LLM。
- 接入 Objective-C++ 推理层,支持真实模型加载、流式生成、停止和卸载。
- 完成 iPhone XS Max + Qwen3-0.6B-MNN INT4 真机验证。
- 针对 A12 Metal Attention 崩溃增加 A14 安全门槛和 CPU 自动回退。
