我用 Rust、Tauri 和 sqlite-vec 构建了一个完全本地化的开源 AI 工作区(无 Python 后端)
Reddit r/LocalLLaMA2026/02/08 19:50机翻/自动摘要/自动分类
5 阅读
摘要
Tandem 是一个完全本地化、开源的 AI 工作区,旨在无需云端交互即可在用户机器上运行。它采用 Rust (Tauri v2) 后端和 React + Vite 前端,并创新性地使用 `sqlite-vec` 将向量嵌入与聊天历史一同存储,简化了部署。该工具主要支持本地 Llama 模型,可无缝连接 Ollama 等本地服务器,并自动检测已拉取模型。其核心特性包括一流的本地模型支持、零遥测、完整的 MCP 支持及“包”系统,为本地 AI 应用提供高效、私密的解决方案。
正文
大家好,
过去几个月我一直在开发 Tandem,这是一个本地优先的 AI 工作区,旨在完全在您的机器上运行,无需将数据发送到云端。
我想分享一下它的技术栈,因为我认为它为我们通常看到的笨重的 Python/Electron 应用程序提供了一个可行的替代方案。
架构:
- 前端: React + Vite(轻量级 UI)
- 后端: Rust (Tauri v2)。我选择 Rust 而非 Python 作为 sidecar,以保持低内存使用和高性能。
- 向量存储: 我没有为 Qdrant/Chroma 运行单独的 Docker 容器,而是使用了
sqlite-vec。这让我可以将嵌入直接存储在与聊天历史相同的 SQLite 文件中。它极大地简化了分发——用户只需下载一个二进制文件。 - 推理(有趣的部分): 虽然它支持商业 API,但我主要构建它是为了驱动本地 Llama 模型。它可以无缝连接到 Ollama(以及任何兼容 OpenAI 的本地服务器,如 LM Studio/vLLM)。它会自动检测您已拉取的模型(Llama 3、Mistral、Gemma),因此您可以即时切换它们以执行不同的任务,而无需配置麻烦。
对本社区的关键特性:
- 一流的本地模型支持: 专为 r/LocalLLaMA 工作流设计。与您的 Llama 3.1 模型聊天,并完整保留上下文。
- 零遥测: 它真正具备离线能力。
- 完整的 MCP 支持: 它实现了模型上下文协议(Model Context Protocol),因此您可以将其连接到本地工具。
- “包”系统: 我构建了一种通过配置文件“安装”提示/技能的方式。
如果有人也在尝试 sqlite-vec,我很乐意听取反馈。对于本地桌面应用程序来说,它感觉像是一个游戏规则的改变者。
仓库: https://github.com/frumu-ai/tandem 文档/下载: https://tandem.frumu.ai/