ARahim3/DigUp

Search your computer by what's in your files: photos, PDFs, documents, recordings, videos and code. On-device on Mac, Windows and Linux, built on Google DeepMind's EmbeddingGemma 2.

DigUp – 为您的 Mac 文件提供 AI 驱动的语义搜索

功能说明
DigUp 让您使用自然语言搜索 Apple 芯片 Mac 上的文件内容。它在本地运行 Google DeepMind 的开源多模态模型 EmbeddingGemma 2(通过 llama.cpp),将文本、图像、音频和视频嵌入到单一向量空间。选择要索引的文件夹后,应用会为每张图片、每个 PDF 页面、每个文档段落、每段 30 秒音频块和每个视频帧提取嵌入向量,存储在 SQLite 向量存储中,然后将您的查询嵌入(加上精确词加权)与该索引进行匹配。结果会打开文件于精确位置 – 视频帧、播客时间戳、PDF 页面或代码行。

重要性

  • 多模态搜索:与 Spotlight 不同,您可以在不知道文件名的情况下找到“视频中的斑马”或“租约中关于宠物的条款”。
  • 设备端隐私:所有索引和推理都在本地运行;唯一的网络流量是一次性的模型下载和可选的每日更新检查。
  • 跨语言:模型支持 100 多种语言,因此英文查询可以找到孟加拉文笔记等。
  • 代码感知(可选):开启代码搜索,通过描述查询函数(code: retry a failed call with backoff)。

如何开始

  1. 下载 DMG(或通过 Homebrew cask 安装),然后将 DigUp 拖到 Applications。
  2. 首次启动时会下载 865 MB 的 EmbeddingGemma 2 模型,然后您选择要索引的文件夹。界面会显示估计的索引时间。
  3. 在任何应用中按 ⇧⌘Space,输入自然语言描述,并使用方向键浏览结果。按 ↩ 在精确位置打开匹配项。

技术亮点

  • 模型:EmbeddingGemma 2(740 M 参数,768 维嵌入)使用 ggml-org 的 8 位构建在 llama.cpp 中运行,并使用 Metal 进行 GPU 加速。
  • 索引:一个 SQLite 文件存储每个媒体块的向量,加上关键字索引以进行精确匹配加权;启用代码时,使用第二个 SQLite 索引。
  • 文件支持:图片(HEIC、JPEG、PNG、RAW、WebP…)、PDF(包括通过 Vision OCR 的扫描页面)、文本文档(txt、md、rtf、docx、html…)、音频(任意长度,以重叠 30 秒窗口处理)、视频(关键帧提取 + 音频)。代码搜索读取源代码文件、笔记本(不含输出)和仓库文档,尊重 .gitignore 并跳过机密。
  • 性能:初始索引需要几分钟到一小时,视数量而定;新文件出现后,增量更新在几秒内完成。搜索在毫秒内嵌入查询,并对存储的向量执行最近邻查询。
  • 隐私与安全:无遥测、无云上传您的文件、可选的更新检查,且应用从不修改索引的文件。
  • 可扩展性:仓库包含命令行工具(digup)用于脚本化、测试生成脚本,以及评估排名质量的测试套件。

适合谁使用

  • 需要定位媒体中特定时刻的专业人士(例如记者、播客制作者、设计师)。
  • 想要在本地仓库中进行快速语义代码搜索的开发者。
  • 任何重视隐私优先、完全在 Mac 上运行的 AI 工具的人。

许可证
MIT – 应用包含 Apache-2.0(EmbeddingGemma 2)和 MIT 许可的依赖项(llama.cpp、Sparkle)。

写过它的文章

相关

  • 项目
  • 项目
  • 项目
  • 项目