DigUp – семантический поиск файлов на macOS
Приложение DigUp использует модель EmbeddingGemma 2 для поиска по содержимому файлов (текст, изображения, аудио, видео) на Mac без отправки данных в облако.
privacy
Эта заметка участвует в semantic memory.
AI Summary
🚀 TL;DR DigUp – бесплатное macOS‑приложение (Apple Silicon, macOS 14+) — ищет файлы по смыслу, используя мульти‑модальную модель EmbeddingGemma 2 (Google DeepMind). Всё происходит локально: модель скачивается один раз (≈ 865 МБ) и работает через llama.cpp на GPU.
📖 Что это такое
- Приложение‑индексатор, которое читает выбранные пользователем папки (изображения, PDF, документы, аудио, видео, скриншоты) и сохраняет в SQLite‑базе векторные представления каждого фрагмента.
- Поиск осуществляется по описанию на естественном языке (английский, более 100 языков) — модель сопоставляет запрос с векторами и учитывает точные совпадения слов/номеров.
- Поддержка code search (поиск кода) включается отдельно, результаты открываются в выбранном редакторе.
🔑 Ключевые факты
- EmbeddingGemma 2: 740 М параметров, мульти‑модальная (текст + изображения + аудио + видео), открытая (Apache 2.0), понимает > 100 языков.
- Индекс хранит векторы (768‑мерный) и отдельный keyword‑индекс для точных слов.
- Поиск работает в миллисекунды; точные строки (инвойсы, коды ошибок) получают дополнительный вес.
- Приватность: файлы не покидают Mac, приложение выходит в сеть только для скачивания модели и ежедневной проверки обновлений (можно отключить).
- Размер модели ≈ 865 МБ (310 МБ текст, 555 МБ визуальные/аудио‑энкодеры); приложение ≈ 20 МБ.
- Первичная индексация: несколько минут для сотен файлов, до часа — запускается один раз, затем новые файлы индексируются в секунду‑две.
⚙️ Как это работает
your folders ─► readers (ImageIO, PDFKit, AVFoundation, Vision) ─► EmbeddingGemma 2 via llama.cpp (Metal) ─► SQLite: vector per picture/page/frame/30‑s audio + keyword index
your query ─► text encoder (≈250 MB, loaded только при поиске) ─► nearest‑vector search + boost exact words
- Чтение файлов: изображения (HEIC, JPEG, PNG, RAW, WebP…), PDF (страница за страницей, до 5 000 страниц), документы (txt, md, rtf, docx, html…), аудио (скользящие 30‑сек окна), видео (кадр каждые несколько секунд + аудио).
- Код‑поиск: читает только исходники, ноутбуки и документацию проекта, игнорирует .gitignore, сгенерированный и чувствительный код.
- Индекс хранится в одном файле SQLite; версия модели фиксируется, поэтому при обновлении модели векторный индекс сохраняется, если он совместим.
💡 Вывод и значение
- DigUp расширяет возможности macOS‑Spotlight, позволяя находить файлы по тому, что они показывают/говорят, а не только по имени или метаданным.
- Полностью локальная работа и открытый стек (EmbeddingGemma 2, llama.cpp, Sparkle) делают приложение безопасным и гибким для продвинутых пользователей.
- Поддержка более 100 языков и мульти‑модальная индексация открывают новые сценарии: поиск нужного кадра в видео, момента в подкасте, фрагмента кода без точного названия и т.д.
- Возможность отключить онлайн‑проверки обновлений и отсутствие телеметрии делают приложение привлекательным для тех, кто ценит конфиденциальность.