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).
시작 방법
- DMG를 다운로드(또는 Homebrew cask로 설치)하고 DigUp을 Applications로 드래그합니다.
- 첫 실행 시 865MB의 EmbeddingGemma 2 모델이 다운로드된 다음 인덱싱할 폴더를 선택합니다. UI에 예상 인덱싱 시간이 표시됩니다.
- 어떤 앱에서든 ⇧⌘Space를 누르고 자연어 설명을 입력한 다음 화살표 키로 결과를 탐색합니다. **↩**를 누르면 정확한 위치에서 일치 항목을 엽니다.
기술적 하이라이트
- 모델: EmbeddingGemma 2(740M 매개변수, 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를 존중하며 비밀을 건너뜁니다. - 성능: 초기 인덱싱은 볼륨에 따라 몇 분에서 1시간이 걸립니다. 새 파일이 나타난 후 몇 초 내에 증분 업데이트가 수행됩니다. 검색은 쿼리를 밀리초 단위로 임베딩하고 저장된 벡터에 대해 최근접 이웃 조회를 수행합니다.
- 프라이버시 및 안전: 원격 측정 없음, 파일의 클라우드 업로드 없음, 선택적 업데이트 확인, 앱은 인덱싱된 파일을 수정하지 않습니다.
- 확장성: 리포지토리에는 스크립팅용 명령줄 도구(
digup), 테스트 생성 스크립트, 순위 품질을 측정하는 평가 스위트가 포함되어 있습니다.
대상 사용자
- 미디어에서 특정 순간을 찾아야 하는 전문가(예: 저널리스트, 팟캐스터, 디자이너).
- 로컬 리포지토리에서 빠른 의미론적 코드 검색을 원하는 개발자.
- Mac에서 완전히 실행되는 프라이버시 우선 AI 도구를 중요하게 여기는 모든 사람.
라이선스
MIT – 앱에는 Apache-2.0(EmbeddingGemma 2) 및 MIT 라이선스 종속성(llama.cpp, Sparkle)이 포함되어 있습니다.
이 프로젝트를 다룬 글
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트