展示HN:一款适用于macOS的本地离线文档聊天应用程序
嗨,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、动态库、模型大小等)。
下载链接:
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"`
我非常希望能收到关于以下方面的反馈:
- 文档聊天的用户体验(UX)
- 模型选择 / 性能
- 其他人如何在桌面上处理本地 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.