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 首次启动:挑文件夹 + 等模型下载

  1. 打开 DigUp。模型首次下载约 865 MB,下载窗口期内会卡进度。
  2. 选要索引的文件夹(整目录或子目录),DigUp 会显示首轮预估时间(几百个文件几分钟;大 Downloads 夹在 Mac 上可达 1 小时;纯 CPU 下大图库可能几小时)。
  3. 设置里可调:跳过更多目录/类型、关闭自动更新、关闭代码搜索。

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 摘录 + 实操推断)

  1. 首次索引时间可能被严重低估。README 自承:"a few seconds per picture on a 2017 laptop's Core i5"。纯 CPU 跑大图库(几千张)可能是几小时,而不是 README 一笔带过的"few minutes"。
  2. Mac 上必须 Xcode 26(不是 CLT)。xcode-select -p 指向 Command Line Tools 的话,SwiftUI 和 Swift Testing 宏跑不起来;要先 sudo xcode-select -s /Applications/Xcode.app。
  3. GPU 加速不是自动启用。Win/Linux 在 setup 时跑一次快速 benchmark,Vulkan 比 CPU 快才走 GPU;老显卡可能直接落 CPU。
  4. DEB 包名是 dig-up,不是 digup(Debian 自带同名软件包,撞名了)。
  5. Windows 安装包未签名,首次会被 SmartScreen 拦。
  6. macOS 视频跳转依赖 QuickTime 控制权限:首次会弹"是否允许 DigUp 控制 QuickTime Player"。如果用 IINA 替代也可。
  7. 数据保留策略:索引记模型版本,向量不变就保留索引;每次 llama.cpp 升级会用存好的 reference vector 跑回归测试,不通过不发版。
  8. 代码搜索不影响文件搜索,开不开都不污染其他结果——这点很贴心。
  9. 网络行为:模型下载一次性,之后只每天 1 次更行检查(可关),不传任何文件元数据。无账户、无遥测。
  10. 类数据集文件夹自动跳过,但具体启发式规则 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