章节 01
导读 / 主楼:LocalChat:完全离线的本地大模型聊天界面
一个基于React和Ollama的零后端聊天应用,无需云服务、无需后端服务器,在浏览器中直接与本地的Ollama模型对话。
正文
一个基于React和Ollama的零后端聊天应用,无需云服务、无需后端服务器,在浏览器中直接与本地的Ollama模型对话。
章节 01
一个基于React和Ollama的零后端聊天应用,无需云服务、无需后端服务器,在浏览器中直接与本地的Ollama模型对话。
章节 02
章节 03
原作者与来源
/ollama/*请求转发到本地Ollama服务(默认端口11434)。\n\n这种设计的好处显而易见:\n- 无需配置CORS,代理自动处理跨域\n- 无需单独启动后端服务,降低使用门槛\n- 生产环境可通过nginx等反向代理实现相同效果\n\n使用指南\n\n前置要求\n\n1. 安装Ollama:访问https://ollama.com或使用命令`curl -fsSL https://ollama.com/install.sh | sh\n2. **启动Ollama服务**:运行ollama serve(或作为systemd服务运行)\n3. **Node.js 18+ 和 npm**\n\n安装与运行\n\n```bash\n克隆项目\ncd ~/projects\ngit clone https://github.com/macbuildssys/LocalChat.git\ncd LocalChat\n\n安装依赖\nnpm install\n\n启动开发服务器\nnpm run dev\n```\n\n打开 http://localhost:5176 即可使用。\n\n模型管理\n\n支持的模型会自动显示在下拉菜单中。常用模型包括:\n\n- ministral-3:8b (6.0 GB) - 轻量级快速响应\n- qwen2.5:3b (1.9 GB) - 适合资源受限设备\n- gemma4:e4b (9.6 GB) - Google最新模型\n- phi4:latest (9.1 GB) - 微软Phi系列\n- llama3.1:latest (4.9 GB) - Meta开源主力\n\n添加新模型只需运行ollama pull 模型名,刷新页面后即可使用。\n\n生产构建\n\n```bash\nnpm run build\nnpm run preview 在5173端口预览生产构建\n```\n\n生产部署时,在nginx配置中将/ollama/代理到http://127.0.0.1:11434/`即可。\n\n数据与隐私\n\nLocalChat的数据策略极为透明:\n\n- 存储位置:浏览器localStorage,键名为localchat-v1\n- 磁盘写入:应用本身不写入任何文件\n- 导出备份:通过DevTools → Application → Local Storage可查看和导出JSON数据\n- 清除数据:清除浏览器localStorage即可彻底删除所有记录\n\n这种设计让用户对自己的数据拥有完全控制权。\n\n故障排查\n\n**"Could not connect to Ollama"\n- 确认已运行ollama serve\n- 检查端口占用:ss -tlnp | grep 11434\n\n模型未显示**\n- 运行ollama list确认模型已下载\n- 刷新浏览器页面\n\n响应缓慢\n- 大型模型(如phi4、gemma4)在CPU上运行较慢属正常现象\n- 在轻量硬件上推荐使用qwen2.5:3b获得更快响应\n\n总结与意义\n\nLocalChat代表了AI应用开发的一个重要方向:在保持大模型能力的同时,将计算和数据完全本地化。对于注重隐私的用户、需要在离线环境工作的开发者,以及希望降低云服务依赖的组织,LocalChat提供了一个简洁而完整的解决方案。\n\n它的技术架构也值得借鉴——利用Vite代理实现"零后端"、使用Zustand进行轻量级状态管理、Tailwind CSS快速构建界面,这些现代前端技术的组合展示了如何以最小复杂度构建功能完整的AI应用。\n\n随着Ollama等本地推理框架的成熟,类似LocalChat的纯本地AI应用将越来越普及,为用户提供更多选择和控制权。