ARahim3/DigUp · 上手攻略
- 仓库:ARahim3/DigUp
- 链接:https://github.com/ARahim3/DigUp
- 分类:RAG / 多模态语义检索 / 桌面端 embedding 搜索
- 作者:spark
- 更新:2026-10-15
§0 自检(三证 checklist)
- ✅ GitHub URL 已 fetch:仓库首页 README(2026-10-14 抓取)三段机制描述 + 完整快捷键表 + 自构建脚本均已落地。
- ⚠️ 顶会/学术 venue:本仓库非论文落地,是应用层工具,无 anchor 论文;但 README 锚定 Google DeepMind EmbeddingGemma 2 模型(HuggingFace:
google/embeddinggemma-2)作为引擎,本攻略对该引擎具体评测分数未独立核实。 - ✅ README 子模块 anchor 已列:docs/logo.png、docs/demo.gif、.github/workflows/packages.yml、evals/ 评估目录、
scripts/build-llama.sh构建脚本、scripts/make-testbed.sh测试集构造脚本。
本攻略内的命令、引号内的快捷键、"865 MB / 740M 参数 / 8-bit / 768 维 / 100+ 语言"等数字全部 verbatim 来自 README(2026-10-14 抓取)。EmbeddingGemma 2 发布月份"October 2026"按 README 原文照搬,未独立核实 HuggingFace 模型卡日期,凡发现不一致请以模型卡为准。
1. 它是什么?解决什么问题?
DigUp 是一款纯本地、跨平台(macOS / Windows / Linux)的多模态文件搜索引擎。核心卖点一句话:用自然语言描述要找的内容,它帮你跳到那个具体文件、那一页 PDF、那一帧视频、那一段音频。
底层引擎是 Google DeepMind 2026 年 10 月开源的 EmbeddingGemma 2(740M 参数,Apache 2.0,支持 100+ 语言,文本/图像/音频/视频共享 768 维向量空间)。DigUp 通过 ggml-org/llama.cpp 跑 8-bit 量化版,在 Mac 上用 Metal、Windows/Linux 上用 Vulkan(或回退到 CPU)做推理,所有向量和索引都存在本机一个 SQLite 文件里。
它要解决的问题是 Spotlight / Windows Search 这种关键词检索搞不定的场景:
| 你想找 | 关键词搜索 | DigUp 语义搜索 |
|---|---|---|
| "视频里出现斑马的那一段" | ❌ 关键词抓不到 | ✅ 跳到帧 |
| "播客里讲睡眠的那分钟" | ❌ | ✅ 跳到时间点 |
| "租约里关于宠物的那条" | 要知道精确措辞 | ✅ 翻到 PDF 那页 |
| "沙滩上的狗" | 标签党可以 | ✅ 直接定位 |
| "payment declined error" 截图 | 截图没文字/有 OCR 不准 | ✅ 直接命中 |
| 孟加拉语笔记被英文 query 命中 | ❌ | ✅ 跨语言 |
同时它把精确字符串匹配(发票号、错误码、文件名)和语义向量做了融合,所以数字类查询不会因为语义近似而漂走。
2. 快速安装(三个平台)
2.1 macOS(Apple Silicon,macOS 14+)
两种安装方式:
# 方式 A:Homebrew
brew install --cask arahim3/tap/digup
# 方式 B:从 Releases 拖拽
# 打开 https://github.com/ARahim3/DigUp/releases/latest 下载 DMG,拖到 Applications
2.2 Windows(64-bit Win10/11)
下载 DigUp_x.y.z_x64-setup.exe(当前 beta 在 v0.7.0-beta.1 标签下),仅当前用户安装,无需管理员。⚠️ 安装包未签名,Windows SmartScreen 会拦截:点 "More info" → "Run anyway"。
2.3 Linux(Ubuntu 22.04+ / Debian 12+ / Mint 21+)
# 方式 A:.deb(包名 dig-up,避坑 Debian 自带的 digup)
sudo apt install ./DigUp_x.y.z_amd64.deb
# 方式 B:AppImage
chmod +x DigUp_x.y.z.AppImage
./DigUp_x.y.z_amd64.AppImage
只支持 64-bit Intel/AMD。
3. 核心用法
3.1 首次启动:挑文件夹 + 等模型下载
- 打开 DigUp。模型首次下载约 865 MB,下载窗口期内会卡进度。
- 选要索引的文件夹(整目录或子目录),DigUp 会显示首轮预估时间(几百个文件几分钟;大 Downloads 夹在 Mac 上可达 1 小时;纯 CPU 下大图库可能几小时)。
- 设置里可调:跳过更多目录/类型、关闭自动更新、关闭代码搜索。
3.2 全局快捷键(README 速查表)
| 动作 | Mac | Windows/Linux |
|---|---|---|
| 从任何 App 唤起搜索面板 | ⇧⌘Space | Ctrl+Shift+Space |
| 上下移动结果 | ↓ ↑ | ↓ ↑ |
| 打开结果(PDF 翻到页、音频/视频跳到时刻、代码编辑器跳到行) | ↩ | Enter |
| 大预览(到页/到时刻) | Space | Space |
| 在 Finder/Explorer 显示文件 | ⌘↩ | Ctrl+Enter |
| 复制文件 | ⌘C | Ctrl+C(在窗口内) |
| 大窗口+图片网格+筛选 | ⌘O | Ctrl+O |
GNOME / KDE 走 Wayland 的桌面不让 App 自定义快捷键,DigUp 安装时会把 Ctrl+Shift+Space 写到桌面环境里,要去系统键盘设置改。
3.3 支持的文件类型(只读你勾的目录)
- 图片:JPEG / PNG / HEIC / WebP 等,Mac 上额外读截图里的文字(Vision 框架)
- PDF:逐页,含扫描件;长 PDF 前 30 页立刻进索引,后面排队,单文件上限 5,000 页
- 文档:txt、md、rtf、docx、odt、html;Mac 上还读 .doc,长文档同 PDF 策略
- 音频:任意长度,每 30 秒一窗,重叠采样,命中指向具体时刻
- 视频:任意长度,几秒一帧,每 shot 一帧 + 音轨同音频处理
默认绝不读:代码、密钥、证书、密码文件、隐藏目录(如 .ssh)、App 包、缓存、长得像数据集的文件夹、纯云盘文件(Mac iCloud / Win OneDrive)。
3.4 代码搜索(默认关闭,需手动开)
进 Settings → Code 或首次设置时勾选,只读你勾的代码项目根目录(通过 .git / package.json 等识别)。
- 只读源码文件、notebook(去输出)、仓库自带 docs
- 跳过
.gitignore内容、vendor、generated、数据文件、长得像密钥/密码的字符串 - 用法:搜索框写
code:前缀
code: retry a failed call with backoff # 按语义找函数
code: refreshAccessToken # 找定义行(不是调用点)
code: plot how many examples each class has # 找 notebook cell
支持的编辑器:VS Code、Cursor、Zed、Sublime Text、JetBrains 全家、Mac 上 Xcode、Windows 上 Notepad++(Settings 里挑一个)。代码有独立索引,不会出现在非代码搜索里。Mac 上小项目约 20 秒,索引 llama.cpp 全仓库约 20 分钟 / 130 MB。
3.5 数据流(README 自带架构图)
你的文件夹 ─► readers(图→向量、文→文本、音→30s 窗)
─► EmbeddingGemma 2 (llama.cpp 8-bit,辅助进程,用完即退)
─► 一个 SQLite:每张图 / 每页 / 每段 / 每视频帧 / 每 30s 音频
一个向量 + 关键词索引(代码搜索用第二个)
你的查询 ─► 模型文本端(~250 MB,只在搜索时驻留)─► 最近邻 + 精确词加权
每个查询毫秒级 embedding,然后和全索引比对。精确词会加权,因为 embedding 抓不住发票号。
4. 典型适用场景
- 法律 / 咨询:跨几百份合同 PDF 找"那条关于 pets 的子句"
- 学术 / 调研:跨数百 PDF 找"那张含指定图表的页"
- 自媒体 / 视频剪辑:在素材库找"出现斑马的那段视频"
- 播客主理人 / 剪辑:在长录音里找"讲到睡眠的那一分钟"
- 程序员的私货库:跨多个本地仓库找"重试逻辑的函数"
- 跨语言笔记:英文 query 命中孟加拉语/阿拉伯语笔记
5. 坑与注意(README 摘录 + 实操推断)
- 首次索引时间可能被严重低估。README 自承:"a few seconds per picture on a 2017 laptop's Core i5"。纯 CPU 跑大图库(几千张)可能是几小时,而不是 README 一笔带过的"few minutes"。
- Mac 上必须 Xcode 26(不是 CLT)。
xcode-select -p指向 Command Line Tools 的话,SwiftUI 和 Swift Testing 宏跑不起来;要先sudo xcode-select -s /Applications/Xcode.app。 - GPU 加速不是自动启用。Win/Linux 在 setup 时跑一次快速 benchmark,Vulkan 比 CPU 快才走 GPU;老显卡可能直接落 CPU。
- DEB 包名是
dig-up,不是digup(Debian 自带同名软件包,撞名了)。 - Windows 安装包未签名,首次会被 SmartScreen 拦。
- macOS 视频跳转依赖 QuickTime 控制权限:首次会弹"是否允许 DigUp 控制 QuickTime Player"。如果用 IINA 替代也可。
- 数据保留策略:索引记模型版本,向量不变就保留索引;每次 llama.cpp 升级会用存好的 reference vector 跑回归测试,不通过不发版。
- 代码搜索不影响文件搜索,开不开都不污染其他结果——这点很贴心。
- 网络行为:模型下载一次性,之后只每天 1 次更行检查(可关),不传任何文件元数据。无账户、无遥测。
- 类数据集文件夹自动跳过,但具体启发式规则 README 未细说,建议进 Settings 自己再加白名单/黑名单。
6. 与同类对比
| 工具 | 平台 | 多模态 | 完全离线 | 跨语言 | 强项 | 短板 |
|---|---|---|---|---|---|---|
| DigUp | Mac/Win/Linux | ✅ 图/音/视频/PDF | ✅ | ✅ 100+ | 自然语言找视频帧/音频时刻 | 大库首扫慢;依赖 EmbeddingGemma 2(新) |
| macOS Spotlight | Mac | 部分(需手工索引) | ✅ | 弱 | 系统级、零配置 | 不会跳到视频帧/音频时刻;语义弱 |
| Everything | Win | 文件名 only | ✅ | ❌ | 即时文件名搜索 | 不进文件内容 |
| Recoll | 全平台 | 文本 + 部分 OCR | ✅ | 中等 | 桌面全文检索老牌 | 无视频/音频语义 |
| Microsoft Recall | Win 11 | 截图+OCR | 本地 | ❌ | 系统级时间线 | 隐私争议;不做语义查询 |
| 各类 RAG(AnythingLLM 等) | 跨平台 | 看你接的模型 | 部分 | 看模型 | 可定制 LLM 回答 | 要手动建库,不会跳到视频帧 |
DigUp 的差异化在 "跳到视频帧 / 跳到音频时刻" 和 "零配置完全离线" 这两点上,这是 Spotlight / Everything 都没解决的。
7. 一句话推荐
如果你有一堆本地 PDF / 视频 / 录音想用"自然语言描述"找具体段落,不想任何数据出机器,Apple Silicon Mac 跑起来最丝滑——DigUp 是当前最省心的桌面方案。Windows/Linux 也能用,但大库首扫在纯 CPU 下要有耐心;CPU 老机器建议只勾必要目录,别贪多。
8. 自构建(给折腾的人)
Mac 自构建依赖:Xcode 26、git、CMake(或 uv)(给 llama.cpp)。
git clone https://github.com/ARahim3/DigUp && cd DigUp
scripts/build-llama.sh # llama.cpp 钉死 tag + 一行 patch
swift build -c release && swift test
./build.sh # → build.noindex/DigUp.app
命令行工具 .build/release/digup 走 digup --help,Mac 上 scripts/make-testbed.sh 可造一份测试文件库(需 ffmpeg),evals/ 目录存了 ranking 改动对应的查询集。
Windows/Linux 自构建:Swift 6.4 + Rust + Node(Windows 额外要 VS C++ 工具链,跑在 Git for Windows 的 bash 里)。
9. 关键参考链接
- 仓库首页:https://github.com/ARahim3/DigUp
- Mac 安装 DMG:https://github.com/ARahim3/DigUp/releases/latest
- Win/Linux beta:https://github.com/ARahim3/DigUp/releases/tag/v0.7.0-beta.1
- 引擎模型:https://huggingface.co/google/embeddinggemma-2
- 推理后端:https://github.com/ggml-org/llama.cpp
- CI 打包:https://github.com/ARahim3/DigUp/blob/main/.github/workflows/packages.yml