本地 AI 文件搜索:DigUp 的本地语义检索机制

DigUp 是一款使用 EmbeddingGemma 2 模型的本地 AI 文件搜索应用,通过在设备本地建立向量与关键词索引,支持用自然语言直接查找电脑中的多媒体和文档内容。

当前版本:Mac 为 0.6.1,Windows 和 Linux 为 0.7.0-beta.1(测试版);已根据 2026年10月15日 的 DigUp GitHub Releases 页面进行核对。

传统的文件搜索通常依赖文件名或单纯的文本关键词匹配。DigUp 采用 Google DeepMind 的 EmbeddingGemma 2 模型,直接在本地设备上理解图片、PDF、文档、录音以及视频的内容,让你能够用自己的语言描述来查找所需的文件。目前 Mac 版适用于搭载 Apple Silicon 芯片且系统为 macOS 14 及以上的电脑;Windows(支持 64 位 Windows 10 或 11)和 Linux(支持 64 位 Intel 与 AMD 处理器)当前处于 0.7.0-beta.1 测试阶段。

本地存储与网络通信说明

DigUp 不会将你索引的文件上传至任何云端服务器:

  • 仅在选定文件夹内运行:DigUp 只会读取你在设置中明确选择的文件夹,不会扫描整个硬盘。它不会读取私钥、证书、密码文件、隐藏文件夹(例如 .ssh)以及应用缓存,也不会自动下载仅保存在云端的文件(如 Mac 上的 iCloud 云盘或 Windows 上的 OneDrive 占位文件)。
  • 本地数据库存储:系统分析文件后,会把向量数据和关键词索引保存在本地的单个 SQLite 文件中。
  • 联网行为明确:DigUp 仅在初次使用时联网下载一次 865 MB 的模型文件,并在运行期间每天检查一次版本更新。更新检查不会发送任何有关你个人文件的信息,这项检查也可以在设置中直接关闭。应用无需注册账户,不包含遥测数据收集。

语义理解与精确词匹配

EmbeddingGemma 2 将不同类型的内容映射到同一个 768 维空间中,因此可以在同一搜索框内综合检索不同格式的文件:

  • 图片与截图:输入“a dog on the beach”可以定位海滩小狗的照片;输入报错描述可以定位相关截图。在 Mac 上,系统还会通过文字识别读取截图中的文字。
  • 长文档与 PDF:搜索合同中的特定条款(如“the clause about pets in the lease”)会直接定位到 PDF 对应的页面。单份 PDF 最多支持读取 5,000 页,前 30 页会优先处理。
  • 音频与视频:模型以 30 秒为一个窗口分析音频片段,视频则每隔数秒截取画面并提取音轨。搜索“where they talk about sleep”能够跳转到播客对应的那一分钟;搜索“zebra in a video”可以直接定位到斑马出现的画面片段。
  • 结合精确字符串:对于发票号、错误代码或人名,DigUp 会结合精确文字匹配,在排序中提高完全匹配项的权重。
  • 多语言跨语言支持:模型支持 100 多种语言,你可以查阅跨语言搜索指南了解其语言支持与边界。

首次索引与系统差异

首次为文件夹建立索引(首次索引)需要消耗一定的计算资源。Mac 版会调用 GPU 通过 Metal 运行;Windows 和 Linux 版在检测到 Vulkan 更快时会调用显卡(GPU),否则由处理器(CPU)运行。

在 Windows 和 Linux 测试版中,目前暂不支持读取截图内的文字,旧版 Word 的 .doc 文件、RAW 格式照片和 SVG 矢量图也仅在 Mac 版中支持读取。

如果你需要检索项目代码,可以开启独立的代码搜索功能。代码索引与常规文件完全分开,且默认处于关闭状态。

准备好在你的设备上尝试本地搜索时,可前往 Mac 下载安装指南获取应用,并在使用教程中查看快捷键与使用技巧。关于所使用的模型架构细节,请参阅 EmbeddingGemma 2 说明。

常见问题

DigUp 会把我的文件上传到网络服务器吗?

不会。DigUp 在本地设备上运行模型和建立 SQLite 索引,文件内容不会离开你的电脑。应用仅在初次启动时下载一次 865 MB 的模型文件,以及每天进行一次不包含文件信息的版本更新检查(可关闭)。

首次索引需要很长时间吗?

首次索引耗时取决于文件数量和电脑性能。在 Mac 上数百个文件通常需要几分钟,大容量下载目录可能需要一小时;在 Windows 和 Linux 上使用纯 CPU 处理时单张图片约需数秒,因此大图库可能需要数小时,完成后新增文件只需数秒即可完成索引。

本地 AI 搜索能用来找代码吗?

可以。代码搜索是独立开启的功能,默认处于关闭状态。开启后可以在搜索词前加上“code:”来根据功能描述或函数名查找代码行,结果会在 Zed、VS Code 等编辑器中按行打开。