Skip to content

Snailflyer/docfinder-lite

Repository files navigation

DocFinder Lite

Version: 1.0.1

轻量本地文档原文检索工具。它不使用 LLM(大语言模型),也不做 OCR(光学字符识别);只索引文件里已经存在的文本。

支持范围

  • PDF:文本型 PDF,需要 PyMuPDF(PDF 文本抽取库)
  • DOCX:Word 新格式,使用 Python 标准库读取
  • TXT / MD / CSV / JSON / LOG:按纯文本读取

不支持扫描版 PDF、图片、老式 .doc、复杂表格还原和语义相似搜索。

使用

安装运行依赖:

python -m pip install -r requirements.txt

建立索引:

python -m docfinder_lite index "D:\docs" --db "D:\docs\docfinder.sqlite" --reset

搜索关键词:

python -m docfinder_lite search "关键词" --db "D:\docs\docfinder.sqlite"

按问题检索:

python -m docfinder_lite ask "飞行机组是否遵守空中交通管制许可和指令?" --db "D:\docs\docfinder.sqlite"

ask 会做轻量规则改写,例如去掉“是否/过程中”这类题干词,把问题改写成更像手册原文的候选关键词,再按命中文本块聚合排序。它仍然不使用 LLM(大语言模型)。候选结果最多输出 3 个。

图形界面:

python -m docfinder_lite.__gui__

图形界面支持选择文件或文件夹、建立索引、按问题检索、显示最多 3 个候选,并且每个候选都有“复制原文”按钮。

限制到某个文件名或路径片段:

python -m docfinder_lite search "关键词" --file "合同" --db "D:\docs\docfinder.sqlite"

Windows 打包

普通用户下载:

  • 打开 GitHub 仓库的 Releases
  • 下载 DocFinderLiteSetup.exe
  • 双击安装并运行

推荐用 GitHub Actions 在 Windows 环境自动打包。推送到 GitHub 后,在 Actions 页面运行 Windows Build,构建产物会包含:

  • DocFinderLiteSetup-1.0.1:Windows 安装器
  • DocFinderLite-1.0.1-portable:免安装 GUI 目录包
  • docfinder-cli-1.0.1:命令行目录包

在 Windows 上运行:

powershell -ExecutionPolicy Bypass -File .\build_windows.ps1

默认产物:

  • dist\DocFinderLite\DocFinderLite.exe:图形界面
  • dist\docfinder-cli\docfinder-cli.exe:命令行

生成安装器需要先安装 Inno Setup 6:

powershell -ExecutionPolicy Bypass -File .\build_windows.ps1 -Installer

产物位于 dist\DocFinderLiteSetup.exe。安装器默认安装到当前用户目录,不需要管理员权限。

如果有代码签名证书,可以签名 exe 和安装器:

powershell -ExecutionPolicy Bypass -File .\build_windows.ps1 -Installer -CertificateThumbprint "证书指纹"

降低安全软件误报的打包策略:

  • 使用目录式 onedir(目录式)打包,不使用单文件自解压 exe。
  • 禁用 UPX(可执行文件压缩器)。
  • 不申请管理员权限,不写系统目录。
  • 不联网、不自更新、不安装后台服务。
  • 正式分发时建议使用公司或个人代码签名证书。

无法技术性保证“永不被删除”:不同杀毒软件和企业终端策略会按信誉、签名、下载来源和行为规则判断。真实验收需要在目标 Win10+ 电脑或 Windows 虚拟机上安装运行,并检查 Defender / 企业安全软件记录。

轻量版预估体量:

  • 解压式目录:约 80-180 MB
  • 安装器:约 45-120 MB

实际大小取决于 Python、PyMuPDF 和 PyInstaller(Python 打包工具)版本。

Windows Release 使用 Python 3.8 和 PyInstaller 5.x 构建,用于兼容更旧的 Windows 运行库环境。

日志

默认日志位置:

  • Windows:%LOCALAPPDATA%\DocFinderLite\logs\events.jsonl
  • Linux:~/.local/share/docfinder-lite/logs/events.jsonl

日志为 JSONL(逐行 JSON)格式,记录索引、检索、复制等事件。检索日志包含问题、候选关键词、文件路径、页码、命中词和分数;默认不保存大段原文正文,便于后续优化搜索策略。

环境变量:

  • DOCFINDER_LOG_DIR:改写日志目录
  • DOCFINDER_DISABLE_LOG:设置为任意值后关闭日志

License

AGPL-3.0-only。项目使用 PyMuPDF(PDF 文本抽取库),其公开版本采用 AGPL / 商业双许可证;本项目按 AGPL 路线公开源码发布。

About

Local-first lightweight document search tool for Windows

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors