AI 本地大模型推理入门
更新: 2026/9/3 字数: 0 字 时长: 0 分钟
$ai 模块用于在 Bot.js Pro 自动化脚本中集成基于 llama.cpp 的本地大语言模型推理能力,实现高性能、隐私安全的文本生成与多模态理解。
该模块基于 llama.cpp 推理框架,兼容 GGUF 格式模型,支持纯文本对话与多模态(图像/音频/视频)理解,适用于自动化脚本中的智能问答、内容分析、图像描述等场景。
llama.cpp 简介
llama.cpp 是由 Georgi Gerganov 开发的开源大语言模型推理框架,其核心优势在于:
- 纯 C/C++ 实现:无需 Python 环境,适合嵌入式与移动端部署
- 低资源占用:在消费级硬件上即可流畅运行 1B~7B 参数模型
- 跨平台支持:兼容 Android、Linux、Windows、macOS
- 量化支持:支持 4/8 位量化,大幅降低内存与存储需求
- 隐私安全:所有推理在本地完成,数据不上传云端
项目开源地址:https://github.com/ggml-org/llama.cpp
环境与硬件要求
支持的 CPU 架构
Bot.js Pro 的 AI 模块已针对以下 Android 架构编译优化:
arm64-v8a(主流 64 位 ARM 设备)armeabi-v7a(32 位 ARM 设备)x86_64(x86 架构 64 位,如模拟器)x86(x86 架构 32 位,如老旧模拟器)
绝大多数现代手机均为 arm64-v8a,可获得最佳性能。
硬件建议
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | ARMv8 / x86_64 架构 | 支持 NEON/AVX2 指令集 |
| 内存 | 4GB | 6GB+(内存越大,可运行模型越大) |
| 存储 | 2GB 可用空间(模型文件额外占用) | 16GB+ 可用空间 |
内存与模型大小:模型加载后常驻内存,所需内存约为模型文件大小的 2~2.5 倍(量化模型)。例如,
Q4_K_M量化后 2GB 的模型,约需 4~5GB 内存。可用内存越大,可运行的模型参数规模越大,推理速度也越快。Android 端说明:Bot.js Pro 运行于 Android 系统,llama.cpp 已针对 ARM NEON 指令集优化。主流中高端手机(6GB 内存以上)可流畅运行 1B~3B 参数模型;旗舰机型(12GB+)可尝试 7B 参数模型(需适当量化)。
模型格式与版本兼容性
llama.cpp 要求模型为 GGUF 格式。GGUF 是 llama.cpp 官方推荐的模型格式,具有以下特点:
- 单文件封装,便于分发与部署
- 内置元数据(词汇表、模板、参数信息)
- 支持分片存储与合并
⚠️ 版本兼容性重要提示
不同版本的 llama.cpp 转换出的 GGUF 模型可能存在不兼容问题(尤其是多模态投影仪 mmproj)。
请务必使用与 Bot.js Pro 相匹配的 llama.cpp 版本进行模型转换,或直接下载已由社区验证过的、适用于该版本的 GGUF 模型。
量化后缀说明:
Q4_K_M、Q5_K_M、Q8_0等表示不同的量化级别。数字越低,文件越小、内存占用越少,但精度略有损失。
模型训练与定制
为满足多样化的业务需求,您可以在基础模型上进行微调训练,使其更贴合您的具体场景。通过 LoRA、QLoRA 等高效微调技术,您可以使用自己的数据对模型进行轻量化定制,从而提升识别准确率与回答质量,让 AI 更懂您的业务。
相关细节可参考文档 模型微调 章节。
应用场景
$ai 模块专为自动化脚本与智能交互场景设计,常用于:
- 🤖 智能客服与问答:基于本地模型实现自动回复
- 📝 内容生成与摘要:自动生成报告、摘要、文案
- 🖼 图像理解与分析:结合多模态模型识别图片内容
- 🎵 音频分析与处理:对音频内容进行识别、理解或转写
- 🎮 游戏辅助:智能分析游戏界面与对话
- 🔐 本地知识库:私有数据不上云,保障隐私安全
云端 API 推理
如果您的设备性能有限,无法流畅运行本地模型,或者需要更强大的模型能力(如 7B 以上参数),您也可以选择通过云端 API 调用大模型,替代本地推理。
根据您的需求,有两种方式可选:
| 对比维度 | 公有云 API(无需部署) | 自建服务器(自行部署) |
|---|---|---|
| 成本模式 | 按 token 计费,用多少付多少 | 需购买/租用 GPU 服务器,固定成本 |
| 前期投入 | 低,仅需注册获取 API Key | 高,需购置服务器或租用云 GPU |
| 运维负担 | 无,由服务商维护 | 需自行维护服务器、更新模型 |
| 数据隐私 | 数据上传至第三方云端 | 数据完全掌握在自己手中 |
| 适用场景 | 快速接入、中小规模调用 | 大规模调用、数据敏感场景 |
调用公有云大模型 API(无需部署)
直接使用厂商提供的 API 服务,无需自行搭建服务器,开箱即用。适合快速验证和中低频率调用。
优点:
- 零运维,注册即用
- 按量付费,初期成本低
- 模型版本由厂商持续更新
缺点:
- 按 token 长期累计成本较高
- 数据需上传至第三方,存在隐私合规风险
- 受网络和厂商服务稳定性影响
以下代码使用 Bot.js Pro 的 http.postJson(url[, data, options, callback]) 方法调用阿里云 DashScope 的 ChatCompletions 接口:
// =========================
// Bot.Js Pro - 调用阿里 DashScope ChatCompletions
// =========================
var apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxxxx"; // 请替换为您自己的 API Key
var data = {
"model": "qwen-plus",
"messages": [
{"role": "system", "content": "你是一个专业的手机自动化工具介绍助手,请用简洁生动的语言介绍Bot.js Pro的特点。"},
{"role": "user", "content": "请介绍一下Bot.js Pro这款手机自动化开发工具。"}
]
};
var headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + apiKey
};
var res = http.postJson("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", data, {
headers: headers,
timeout: 10000
});
if (res.statusCode === 200) {
var result = res.body.json();
if (result.choices && result.choices.length > 0) {
var reply = result.choices[0].message.content;
console.log("AI回复:", reply);
} else {
console.error("返回结果没有 choices 或 message");
}
} else {
console.error("HTTP请求失败: " + res.statusCode + " " + res.statusMessage);
}其他公有云 API 服务商(选其一即可):
| 服务商 | 说明 | 官方文档 |
|---|---|---|
| 百度千帆 | 文心一言系列模型 | https://cloud.baidu.com/product/wenxinworkshop |
| OpenAI | ChatGPT 系列模型(需海外网络) | https://platform.openai.com/docs/api-reference |
| 智谱 AI | GLM 系列模型 | https://open.bigmodel.cn |
| 腾讯混元 | 腾讯云大模型 | https://cloud.tencent.com/product/hunyuan |
在自有服务器部署模型后通过 API 调用
如果您拥有自己的服务器(或高性能 PC),可以自行部署开源模型(如 Qwen、LLaMA 等),并启动一个兼容 OpenAI 格式的 API 服务,然后在 Bot.js Pro 中通过 HTTP 请求调用。适合大规模调用、对数据隐私有严格要求的场景。
优点:
- 无按 token 费用,大规模调用成本可控
- 数据完全私有,不上传第三方
- 可自由选择模型版本和定制微调
缺点:
- 需购置或租用 GPU 服务器(如 NVIDIA A10/A100、RTX 4090 等),硬件成本高
- 需自行部署、运维和更新模型
- 需一定的 Linux 和 Docker 基础知识
服务端部署
- 在服务器上下载
llama.cpp预编译包或自行编译。 - 将您需要的 GGUF 模型文件上传至服务器。
- 使用
llama-server启动服务:
./llama-server -m /path/to/model.gguf -c 4096 --host 0.0.0.0 --port 8080更多参数请参考 llama.cpp 官方文档。
客户端调用示例
启动服务后,在 Bot.js Pro 中通过 HTTP POST 请求调用,接口格式与 OpenAI Chat Completions 兼容:
// 假设服务器地址为 http://your-server-ip:8080
var data = {
"model": "local-model",
"messages": [
{"role": "system", "content": "你是一个专业的手机自动化工具介绍助手。"},
{"role": "user", "content": "请介绍一下Bot.js Pro。"}
],
"max_tokens": 512,
"temperature": 0.7
};
var res = http.postJson("http://your-server-ip:8080/v1/chat/completions", data, {
headers: {"Content-Type": "application/json"},
timeout: 15000
});
if (res.statusCode === 200) {
var result = res.body.json();
var reply = result.choices[0].message.content;
console.log("AI回复:", reply);
} else {
console.error("请求失败:", res.statusCode, res.statusMessage);
}注意:实际 IP 和端口请根据您的服务器配置填写。您也可以使用 https 协议并配置认证头,保障通信安全。
选择建议
- 若追求最低前期成本且调用量不大 → 优先尝试本地推理(Q4_K_M 量化模型),若硬件确实无法满足,则选用公有云 API。
- 若数据隐私要求高或长期大量调用 → 优先考虑自建服务器部署,虽然前期投入大,但长期总成本更低且数据可控。
