DocuBrowse v0.9.1: 本地 AI 驱动的文档搜索引擎
DocuBrowse v0.9.1: 本地 AI 驱动的文档搜索引擎
DocuBrowse v0.9.1 是一款本地、开源的文档搜索引擎,旨在将无结构的文档堆转化为可搜索的知识库。通过将传统的关键词搜索与 AI 驱动的语义相似度相结合,它允许用户基于含义而非仅仅是精确的词语匹配来查找文档,同时确保所有数据都完全保留在本地机器上。
核心搜索能力
DocuBrowse 采用混合搜索算法以最大化检索准确度。默认情况下,它会合并来自两种不同模式的结果:
- 关键词搜索: 利用 SQLite FTS5 在标题、作者、主题、标签和内容片段中进行快速全文搜索。它使用归一化到 0–1 范围的 BM25 评分。
- 语义搜索: 使用 Ollama embeddings (
nomic-embed-text:latest) 来计算查询语句与文档嵌入之间的余弦相似度。应用 0.30 的最小阈值以过滤掉无关结果。 - 混合模式: 最终的相关性评分计算方式为
0.3 × keyword_score + 0.7 × semantic_score。
AI 驱动的文档洞察
除了搜索,DocuBrowse 还提供自动化的内容摘要。用户可以点击任何文档标题来通过运行在 Ollama 上的 dolphin3:latest 模型生成“Kindle 风格”的书籍简介。这些简介是按需生成的,并缓存到 SQLite 数据库中以避免重复计算。
支持的格式与索引
DocuBrowse 支持广泛的文档类型,包括 PDF、Word 文档 (.docx)、PowerPoint 演示文稿 (.pptx)、Excel 表格 (.xlsx)、OpenDocument 格式 (.odt, .ods, .odp)、电子书 (EPUB, MOBI, AZW3, AZW)、HTML 和 Markdown。
PDF 处理
索引过程非常稳健,使用 pdfplumber 作为主要提取器,并使用 pypdf 作为处理臃肿文件的备选方案。系统会自动检测扫描版(仅图像)PDF,并将其路由到特定列表 (ocr_list_pdfs.txt) 中,以便用户识别需要进行 OCR 的文件。
电子书与 OpenDocument 支持
截至 0.9.1 版本,该工具现在通过 Python 的标准库原生支持 OpenDocument 格式 (.odt, .ods, .odp)。电子书索引依赖 ebooklib 和 Calibre 进行元数据提取以及 MOBI/AZW3 格式的转换。
隐私与安全
DocuBrowse 秉持“你的数据,你的 AI”理念,确保不需要互联网连接、API 密钥或云端账户。
PII 保护
系统包含一个摄取后的扫描器,用于检测社会保障号码 (SSN)、信用卡号、银行路由/账号、出生日期和护照号码的模式。包含 PII 的文档会被从索引中移除并永久列入黑名单,以防止意外泄露。
本地加固
为了防止来自恶意网页的未经授权访问,服务器绑定到 localhost 并实施了多项安全措施:
- Host-header 允许列表: 拒绝所有除非 Host 为
localhost、127.0.0.1或[::1]的请求,以挫败 DNS-rebinding 攻击。 - CSRF Tokens: 所有改变状态的操作(例如
/api/delete、/api/open)都需要每个进程特有的X-CSRF-Token和回环地址来源。 - Stored-XSS 防止: 文档字段经过 HTML 转义,且卡片操作使用委托监听器而非内联
onclick处理程序。
系统要求与安装
硬件要求
- 最低配置: 8 GB RAM,x86_64 或 ARM64 CPU。无需 GPU 即可运行,但简介生成速度会较慢。
- 推荐配置: 16 GB RAM,4 GB+ vRAM (NVIDIA 或 Apple Silicon) 用于 GPU 加速。
安装
DocuBrowse 可通过 RPM、DEB、tarball 形式在 Linux 上使用,通过 zip 形式在 Windows 上使用,以及通过 dmg 形式在 macOS 上使用。它需要 Python 3.9+,并在首次运行时自动处理 Ollama 和所需模型 (nomic-embed-text 和 dolphin3) 的安装。
社区洞察与观点
社区的用户和开发者都强调了本地优先 AI 工具的价值。
"并非所有个人文档都想推送到他人的云端。很高兴看到一个能把一切都保存在磁盘上的工具。"
一些用户建议未来可以集成 Google Drive 或 Dropbox 等云存储提供商,以及提供 Docker 部署选项以简化不同环境下的设置。