jan
开源本地大模型聊天客户端,完全离线运行,数据不离开设备
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
开源本地大模型聊天客户端,完全离线运行,数据不离开设备
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2023 年 ChatGPT 爆发后,无数用户享受到了大语言模型的强大能力,但与此同时,一个根本性问题始终萦绕不去:你的对话数据去了哪里?
无论是 OpenAI 的服务器、Anthropic 的基础设施,还是国内各类大模型平台,用户与 AI 的每一次交互,都意味着私人对话、代码片段、商业计划甚至医疗记录被上传到第三方服务器。尽管各大厂商承诺不会滥用数据,但数据主权问题始终是悬在用户头顶的达摩克利斯之剑。
正是在这样的背景下,Jan(读作 "Jan",与 "John" 同音)横空出世。它的核心使命简单而激进:把 ChatGPT 的体验完整搬到你自己的电脑上,让 AI 推理过程完全不经过任何外部服务器。
Jan 的开发团队 JanHQ 认为,开源 AI 的价值不仅在于模型本身,更在于构建一个完全透明、用户可控的 AI 运行环境。他们从 2023 年开始开发,经过近三年的迭代,已经成为本地大模型部署领域最成熟的开源桌面应用之一。
如果把使用云端 AI 比作租房子——你付钱(直接或间接)、遵守房东规则、随时可能被"清退"(服务下线、数据泄露)——那么使用 Jan 运行本地 AI,就是在这台电脑上买下了完全属于自己的房子。
Jan 本身不提供 AI 模型,它更像是一个大模型 "操作系统":负责加载模型、管理对话历史、渲染交互界面,同时支持接入多种推理引擎,让用户自由选择用哪个模型、在什么硬件上运行。
Jan 最核心的设计哲学是不绑定单一推理引擎。项目内置多个扩展(extensions),分别对接不同推理方案:
这种"插拔式"引擎设计意味着:同一套 UI 代码,可以无缝切换到任何后端运行,用户不需要重新学习操作方式。
Jan 的 extensions/ 目录包含了完整的插件化框架:
assistant-extension:对话管理、历史记录、角色预设conversational-extension:多轮对话上下文管理rag-extension:检索增强生成,支持本地知识库问答vector-db-extension:向量数据库集成(用于语义检索)download-extension:模型下载管理(支持 HuggingFace Hub 直连)每个扩展都是独立的 npm 包,通过 Jan 核心 API 注册自身能力。开发者可以参考 CONTRIBUTING.md 文档,从零开始创建新扩展。
Jan 基于 Tauri 框架构建(Tauri = Rust 后端 + Web 前端),实现了真正的跨平台:
相比 Electron,Tauri 打包体积更小(通常 50-100MB vs Electron 的 200MB+)、内存占用更低、启动速度更快。Rust 后端同时负责与本地推理引擎进程通信,前端 React/Vite 则提供流畅的 ChatGPT 风格 UI。
Jan 内置模型下载器,用户可以直接在应用内搜索、下载 HuggingFace Hub 上的大模型(主要是 GGUF 格式)。支持的模型类型包括:
下载过程支持断点续传,并自动校验 SHA256 哈希确保完整性。
Jan 提供了一个本地 API 服务器功能:在设置中开启后,Jan 会启动一个监听 localhost 的 OpenAI API 兼容端点。这意味着:
Jan 采用 Yarn Workspace monorepo 结构,主要工作区如下:
janhq/jan (根目录)
├── core/ # 共享业务逻辑(TypeScript)
├── web-app/ # 前端 UI(React + Vite + TypeScript)
├── extensions/ # 功能插件(独立 npm 包)
└── src-tauri/ # 桌面运行时(Rust + Tauri)
core 包是整个应用的数据中枢:处理消息流、管理模型配置、暴露 Plugin API。web-app 则是用户看到的界面,基于 React Router 做 SPA 路由,TailwindCSS 做样式,状态管理使用 Zustand。
src-tauri 中的 Rust 代码主要负责三件事:
这是 Jan 最令人惊喜的地方。传统上,运行本地大模型需要:
而 Jan 把这一切全部封装好了。用户只需要:
整个过程和安装微信一样简单,但底层运行的却是完整的 7B-70B 参数大模型。
对于开发者而言,如果想基于 Jan 做二次开发,项目提供了完整的 TypeScript SDK(core 包),以及详细的 CONTRIBUTING.md,可以快速接入新的模型或创建新插件。
尽管 Jan 已经非常成熟,但仍有一些客观限制需要说明:
硬件门槛不可忽视:运行 7B 参数模型(如 Llama 3 7B)至少需要 6GB 显存(或 16GB 内存 + 稍慢的 CPU 推理)。运行 13B 模型建议 10GB 显存,70B 模型则需要专业级双卡配置。对普通用户来说,这是一个不低的门槛。
模型质量与云端仍有差距:即使是最强的开源模型,在复杂推理、长上下文理解等方面,与 GPT-4o、Claude 3.5 等顶级云端模型仍有差距。对于日常简单问答足够好,但处理复杂任务时可能需要更多人工干预。
多模态能力有限:截至目前,Jan 对图像理解、语音交互等多模态能力的支持仍在积极开发中,生态不如云端丰富。
社区生态相比成熟产品较小:虽然 Jan 在 GitHub 上有 42K+ stars,但相比 Obsidian、VS Code 等成熟桌面应用,第三方插件生态仍在建设阶段。
Jan 的存在本身就是一个重要信号:本地化 AI 运行并非极客专属,正在走向普通用户。
从数据隐私角度看,Jan 代表了一种"数字主权"运动——用户有权选择让自己的数据不经过任何第三方。从技术角度看,它的插件化架构为"AI 中间层"提供了一个可参考的实现范式。从产品角度看,它证明了开源社区能够做出体验接近商业产品的 AI 应用。
未来,随着模型量化技术进步、硬件成本下降,以及用户隐私意识增强,Jan 这类产品的重要性只会越来越大。它不仅是工具,更是开源 AI 生态走向成熟的里程碑。