chatty
利用 WebGPU 在浏览器中直接运行 LLM,数据完全本地处理,无需服务器。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
利用 WebGPU 在浏览器中直接运行 LLM,数据完全本地处理,无需服务器。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你在咖啡厅用笔记本上网,想向 AI 助手请教一段敏感代码——商业机密、个人医疗数据、还未公开的产品计划。传统方案下,这些数据必须上传到 OpenAI 或 Google 的服务器,你只能选择"信任"这些公司的数据政策。
现在,ChattyUI 给出了另一种答案:就在本地跑,数据哪儿也不去。
2023 年,Google Chrome 团队工程师 Addy Osmani(同时也是《JavaScript 权威指南》联合作者)联合 Jakob Hoeg Mørk,在 GitHub 上开源了一个大胆的项目:让用户在浏览器里直接运行大语言模型(LLM)。
这个想法背后是真实的安全焦虑。2023 年前后,企业数据泄露事件频发,欧盟 GDPR 罚款屡创新高,很多开发者开始寻找"数据不出设备"的替代方案。与此同时,WebGPU API 的成熟为浏览器端大规模并行计算提供了硬件加速能力,填补了 WebGL 无法满足 AI 推理算力需求的空缺。
ChattyUI 正是踩准了这个时间窗口。它构建在 MLC-AI WebLLM 项目之上,利用 WebGPU 在浏览器中执行 GPU 加速的 LLM 推理,无需任何服务器中转。
把大模型想象成一位博学的翻译官:传统方案是你把文件发给翻译公司(云端),公司派翻译官处理后把结果发回。ChattyUI 则是让这位翻译官直接坐在你工位上,文件不用离开你的手。
ChattyUI 的定位是一个功能完整的本地 AI 助手平台,不是简单的 Demo。它支持:
多模型对话:内置支持 Llama 2/3、Mistral、Gemma 等主流开源模型,通过 Hugging Face 模型库动态加载,首次加载后模型缓存本地,支持断网离线使用。
文件对话(RAG):上传 PDF、代码文件或任意文本,让 AI 基于这些文档回答问题。底层使用 Xenova/all-MiniLM-L6-v2 做 Embedding,LangChain 的 MemoryVectorStore 管理向量存储——整个过程完全在本地完成,没有数据发送至任何服务器。
语音交互:集成浏览器原生 Web Speech API,支持语音输入,彻底解放双手。
记忆系统:用户可以添加自定义指令(Custom Memory),让 AI 在后续对话中保持一致的个性化设定。
Markdown + 代码高亮:AI 返回的 Markdown 内容直接渲染,代码块使用 react-code-blocks 做语法高亮,体验接近专业 IDE。
明暗主题:一键切换,深色模式为长时间使用提供更好的视觉舒适度。
对话导出:支持将聊天记录导出为 JSON 或 Markdown,方便存档和分享。

ChattyUI 界面。风格参考了 ChatGPT 和 Gemini,交互体验流畅。
从 package.json 可以完整还原这个项目的技术栈:
前端框架:Next.js 14.2.3 + React 18,App Router 架构。这让它天然支持 SSR/SSG,但核心推理逻辑完全在客户端。
AI 推理引擎:核心依赖是 @mlc-ai/web-llm(^0.2.78),负责 WebGPU 加速的模型加载与推理。同时引入 @xenova/transformers(^2.17.1)处理 Embedding 和向量计算。
RAG 链路:LangChain(^0.1.37)编排整个 RAG 流程,配合 pdf-parse 解析 PDF,idb-keyval 做本地持久化存储。
UI 组件:Radix UI 提供无障碍基础组件,Framer Motion 处理动画,Tailwind CSS 负责样式。状态管理用 Zustand,表单验证用 React Hook Form + Zod。
开发体验:TypeScript 5、ESLint、Prettier 开箱即用,Tailwind CSS Animate 提供交互动效。
架构上,这是一个典型的 Next.js 全栈 + 客户端 AI 混合模式:Next.js 提供路由、SSR 和 API 路由能力,实际 AI 推理全部跑在浏览器 WebGPU 上。
访问 chattyui.com,无需安装任何东西,直接在浏览器中加载模型使用——这是最省心的方式。
git clone https://github.com/addyosmani/chatty
cd chatty
npm install
npm run dev
# 访问 http://localhost:3000
项目根目录提供了 Dockerfile 和 docker-compose.yaml:
docker build -t chattyui .
docker run -d -p 3000:3000 chattyui
# 或
docker compose up
这是一个容易踩坑的地方。LLM 推理对 GPU 要求不低:
| 模型规模 | 推荐显存 |
|---|---|
| 3B 参数模型 | ≥ 3GB VRAM |
| 7B 参数模型 | ≥ 6GB VRAM |
没有独立 GPU 的用户只能跑 CPU 或 WASM 降级版本,速度会显著下降(实测比 GPU 慢约 15-17 倍)。
WebGPU 默认在 Chrome 和 Edge 中启用。Firefox 和 Safari 需要手动开启(about:config 中启用相关 flag)。移动端需要设备支持 WebGL,实测在高端 Android 手机上体验尚可。
⚠️ 部署注意点:官方 Dockerfile 是开发/测试级别,未针对生产环境优化。README 自己也承认了这一点,如需生产部署建议参考 Next.js 官方 Docker 示例做多阶段构建优化。
1. 性能天花板:浏览器 WebGPU 推理速度约为原生 GPU 推理的 80%(参考 2024 年 arXiv 论文数据),比 CPU 快约 5 倍,但比本地 Ollama/llama.cpp 仍然慢一截。对延迟敏感的生产场景不太适合。
2. 模型加载等待:7B 模型首次加载需要下载数 GB 的模型权重(通过 Hugging Face),在网络不稳定时体验较差。
3. WebGPU 碎片化:各浏览器对 WebGPU 支持程度不一,开发者在兼容性测试上要花不少精力。
4. 文件对话局限:单次只能处理一个文件(RDF 路线图中计划支持多文件),小参数模型处理 Embedding 效率不如大参数模型。
5. 移动端体验:虽然声称支持响应式设计,但实测中大模型在移动设备的推理速度和发热都是问题。
ChattyUI 不是一个孤立的项目。它代表了一个正在壮大的技术方向——客户端 AI(Client-side AI)。
2024 年,WebLLM 团队在 arXiv 发表的研究显示,浏览器端 GPU 推理性能已能达到原生 GPU 的 80% 左右。与此同时,Chrome 121 扩展了 Android 12+ 的 WebGPU 支持,Firefox 和 Safari 也开始跟进,浏览器 AI 的生态基础正在快速成熟。
Addy Osmani 本人在 2024 年底加入 Google Cloud AI 团队担任 Director,负责 Cloud AI 开发者体验。这个背景让 ChattyUI 的技术选型和架构思路更具参考价值——它是 Google 内部探索客户端 AI 能力的一个侧影。
从更宏观的角度看,ChattyUI 所在的赛道包括:本地 LLM 推理(Ollama、llama.cpp)、浏览器端 AI(WebLLM、Transformers.js)、隐私优先 AI(LocalAI)——这些方向都在 2024-2025 年呈现出加速增长的态势,反映了用户对"数据主权"的强烈诉求。
ChattyUI 是一款面向隐私敏感用户、功能完整的浏览器端 AI 聊天工具。它将 LLM 推理、文件对话、语音交互等能力打包进一个 Next.js Web 应用中,数据完全在本地处理,无需任何服务器。
优势在于零部署门槛(官方直接提供在线版)、真正的隐私保护、多模态能力(文件+语音);局限在于对 GPU 硬件有要求、推理性能天花板受限于 WebGPU。适合开发者个人使用、对数据合规有要求的小团队、以及 AI 隐私意识强烈的个人用户。
如果你想要一个"完全掌控数据"的 AI 助手,同时对性能极限没有苛刻要求,ChattyUI 值得一试。