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 языков и мульти‑модальная индексация открывают новые сценарии: поиск нужного кадра в видео, момента в подкасте, фрагмента кода без точного названия и т.д.
  • Возможность отключить онлайн‑проверки обновлений и отсутствие телеметрии делают приложение привлекательным для тех, кто ценит конфиденциальность.

Мои мысли

graph

Карта связей