跳转到内容

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,可获得最佳性能。

硬件建议

组件最低配置推荐配置
CPUARMv8 / x86_64 架构支持 NEON/AVX2 指令集
内存4GB6GB+(内存越大,可运行模型越大)
存储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 官方推荐的模型格式,具有以下特点:

  • 单文件封装,便于分发与部署
  • 内置元数据(词汇表、模板、参数信息)
  • 支持分片存储与合并

⚠️ 版本兼容性重要提示

  • Bot.js Pro 当前集成的 llama.cpp 版本为 b10752(基于 官方 commit)。

  • 不同版本的 llama.cpp 转换出的 GGUF 模型可能存在不兼容问题(尤其是多模态投影仪 mmproj)。

  • 请务必使用与 Bot.js Pro 相匹配的 llama.cpp 版本进行模型转换,或直接下载已由社区验证过的、适用于该版本的 GGUF 模型。

  • 量化后缀说明:Q4_K_MQ5_K_MQ8_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 接口:

js
// =========================
// 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
OpenAIChatGPT 系列模型(需海外网络)https://platform.openai.com/docs/api-reference
智谱 AIGLM 系列模型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 基础知识

服务端部署

  1. 在服务器上下载 llama.cpp 预编译包或自行编译。
  2. 将您需要的 GGUF 模型文件上传至服务器。
  3. 使用 llama-server 启动服务:
bash
./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 兼容:

js
// 假设服务器地址为 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
  • 若数据隐私要求高长期大量调用 → 优先考虑自建服务器部署,虽然前期投入大,但长期总成本更低且数据可控。