Show HN: 适用于 macOS 的本地离线文档聊天应用
1 分•作者: navid72m•6 个月前
大家好,HN,
我开发了一款 macOS 桌面应用程序,让您可以在本地与您的文档进行聊天。
没有云端,没有 API 密钥,数据不会离开您的机器。一切都在 Apple Silicon 芯片上离线运行,使用 GGUF 模型和 llama.cpp。
它的功能:
* 上传 PDF、文本文件和图像
* 图像和扫描版 PDF 的 OCR
* 本地嵌入 + 检索 (RAG)
* 使用本地 LLM 与文档聊天
* 模型在首次运行时下载并存储在本地
技术栈:
* Electron (前端)
* Python 后端,打包为原生二进制文件
* llama.cpp + GGUF (目前是 Gemma / Mistral 类模型)
* SentenceTransformers 用于嵌入
* FAISS 用于向量搜索
* 完全在设备上运行 (CPU / Metal)
我为什么开发它:
我想要一个注重隐私的替代云端文档聊天工具。将完整的本地 LLM + OCR + RAG 管道打包到单个 macOS 应用程序中,结果比预期的要难得多 (Gatekeeper、PyInstaller、dylib、模型大小等)。
下载:
GitHub 发布 (macOS Apple Silicon):
[https://github.com/navid72m/chatbot/releases/tag/v.0.1.2](https://github.com/navid72m/chatbot/releases/tag/v.0.1.2)
关于 macOS 安全性的说明:
由于该应用程序尚未签名,macOS 可能会在首次启动时阻止它。
您可以运行:
xattr -rd com.apple.quarantine "/Applications/Document Chat.app"
我很乐意收到关于以下方面的反馈:
* 文档聊天的用户体验
* 模型选择 / 性能
* 其他人如何在桌面上进行本地 RAG
很乐意回答技术问题。
查看原文
Hi HN,<p>I built a macOS desktop app that lets you chat with your documents completely locally.<p>No cloud, no API keys, no data leaving your machine. Everything runs offline on Apple Silicon using GGUF models and llama.cpp.<p>What it does:
- Upload PDFs, text files, and images
- OCR for images and scanned PDFs
- Local embeddings + retrieval (RAG)
- Chat with documents using a local LLM
- Models are downloaded on first run and stored locally<p>Tech stack:
- Electron (frontend)
- Python backend bundled as a native binary
- llama.cpp + GGUF (currently Gemma / Mistral class models)
- SentenceTransformers for embeddings
- FAISS for vector search
- Runs entirely on-device (CPU / Metal)<p>Why I built this:
I wanted a privacy-first alternative to cloud document chat tools. Packaging a full local LLM + OCR + RAG pipeline into a single macOS app turned out to be much harder than expected (Gatekeeper, PyInstaller, dylibs, model size, etc.).<p>Download:
GitHub release (macOS Apple Silicon):
<a href="https://github.com/navid72m/chatbot/releases/tag/v.0.1.2" rel="nofollow">https://github.com/navid72m/chatbot/releases/tag/v.0.1.2</a><p>Note on macOS security:
Because the app is not signed yet, macOS may block it on first launch.
You can run:
xattr -rd com.apple.quarantine "/Applications/Document Chat.app"<p>I’d really appreciate feedback on:
- UX for document chat
- Model choices / performance
- How others approach local RAG on desktop<p>Happy to answer technical questions.