搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

orailnoor/cross-platform-llm-client

效率与系统工具

基于 Flutter 的 AI 聊天客户端,在 Android/iOS 上本地运行 GGUF 模型,也可切换 OpenAI、Anthropic、Gemini 或 Kimi 云端接口。

1,581
329
C++
MIT
创建于 6 个月前

项目介绍

PrivateLM 是一个用 Flutter 构建的聊天客户端,把本地模型和云端模型放进同一套界面。在 Android 和 iOS 上,它通过封装 llama.cpp 的自定义插件加载 GGUF 模型并完成端侧推理;Web 端只支持云端调用。需要更强能力时,可在同一界面切换到 OpenAI、Anthropic、Google Gemini 或 Moonshot 的 Kimi。

客户端支持文字和图片消息,视觉能力既可用本地 Qwen2-VL 模型,也可用云端服务商。对话和设置通过 Hive 保存在本地,API Key 同样存在本地,只会发送到你选择的接口端点。首次启动会根据设备内存推荐上下文长度和 token 上限。多步骤工作流的任务视图仍在开发中,当前不可用 README lines 15–26。

本地推理流程

在支持的设备上,应用先通过 Vulkan 检测 GPU 能力来决定卸载多少层,再按设备档位选择线程数,带进度地加载 GGUF 模型,并使用原生聊天模板(ChatML、Llama-3、Gemma、Phi)生成 token;模板失败时回退到手工拼接提示词。5 秒空闲检测和 180 秒硬超时会保证低性能设备上的界面响应 README lines 66–77。

本地推理按平台条件编译:Android 使用完整的 llama.cpp 引擎,iOS 使用同一引擎并启用 Metal GPU 加速,Web 端换成桩实现,因此不支持的平台会隐藏本地模型相关界面 README lines 89–100。

快速使用

从源码构建需要 Flutter SDK 3.3.0 或更高版本、Android SDK(API 26+)以及 JDK 17。安装好后拉取依赖并构建调试版 APK:

flutter pub get
flutter build apk --debug

构建发布版时,先把 android/key.properties.example 复制为 android/key.properties 并填入 keystore 信息,再生成按 ABI 拆分的 APK;签名密钥需在多次发布间保持一致,构建号必须递增 README lines 142–161。

只想体验界面的话,项目提供在线 Web 应用,可用云端 API,但不支持本地推理 Live Web App。iOS 用户可通过 AltStore 侧载 IPA,注意侧载应用 7 天后过期,需要 AltStore 在后台续签 README lines 109–132。

使用约束

  • 本地推理仅限 Android 和 iOS,Web 端只能使用云端 API。
  • GGUF 模型的运行效果取决于设备内存和 GPU,本地模型场景下 README 更推荐 iPad 而不是 iPhone。
  • Android 端要求 minSdk 28;构建前置条件为 API 26+。
  • 发布版 APK 必须使用固定签名密钥,否则无法覆盖安装升级。
  • API Key 保存在本地 Hive 中,只会发往所选服务商的接口端点。
  • GitHub Releases 页面分发预编译产物,例如 iOS 的 IPA 包 Releases。
  • 采用 MIT 许可证 LICENSE。

HotRepo 点评

在 2026-11-06 的 C++ 日榜上,该项目以单日新增 137 星排到第 1 名,总星数达到 1,525、Fork 317。这条快照只能说明当天在 C++ 榜单上的关注度,单条记录不足以判断长期趋势。区别于纯云端聊天客户端的具体之处,是它把端侧 llama.cpp 推理和多服务商云端回退做进同一个应用;这一特点是否成立,取决于发布的二进制与 README 描述的实现在多大程度上对应。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Run local LLMs on multiple Android, iOS phones
▲ 2 · 0 条评论 · 2026年11月6日