🦥 SlothSort: 로컬 AI로 다운로드 폴더를 게으른 방식으로 정리하기
Hacktoberfest 오픈 소스 AI 챌린지 제출물 — 3주차: 느리지만 꾸준하게.
제가 만든 것 (What I Built)
제 다운로드 폴더는 final_final_v2.zip이나 IMG_8841.png 같은 이름의 파일들로 가득했습니다. 저는 계속해서 정리 작업을 미루다가, 저를 위해 파일을 정리해 주는 로컬 AI 에이전트인 SlothSort를 만들었습니다.
이 도구는 지원되는 파일 내용을 읽고 의미 있는 파일 이름을 제안하며, 파일을 적절한 폴더로 이동시킵니다. 절대 파일을 삭제하지 않으며, 모든 작업은 기록되어 제가 변경 사항을 되돌릴 수 있습니다.
데모 (Demo)
작동 방식 (How It Works)
- 스캔 (Scan): Python이 파일을 스캔하여 지원되는 텍스트 파일과 PDF에서 텍스트를 추출합니다. 이미지는 현재 파일 이름과 확장자를 사용하여 분류하며, OCR(광학 문자 인식)은 아직 구현되지 않았습니다.
- 이해 (Understand): Gemma가 Ollama를 통해 로컬에서 실행되며, 카테고리, 제안된 파일 이름, 설명이 포함된 구조화된 JSON을 반환합니다.
- 먼저 계획하기 (Plan first):
plan 명령은 아무것도 이동시키지 않고 제안된 변경 사항을 미리 보여줍니다.
- 이동 및 되돌리기 (Move and undo):
apply 명령은 파일을 이동시키고, SQLite가 작업을 기록하여 undo를 통해 이전 위치로 복원할 수 있게 합니다.
사용 스택: Python, Ollama를 통한 Gemma, SQLite, 그리고 선택적 PDF 리더.
오픈 소스 AI가 중요한 이유 (Why Open-Source AI Matters)
다운로드 폴더에는 개인 문서, 이력서, 성적표, 금융 기록 등이 포함될 수 있습니다. 단순히 파일을 정리하기 위해 클라우드 AI 서비스에 업로드하는 것은 이상적이지 않습니다.
SlothSort는 Gemma를 Ollama를 통해 로컬에서 실행함으로써, 제 자신의 기기에서 지원되는 콘텐츠를 처리할 수 있습니다. 모델과 의존성이 설치되면, 모든 요청마다 유료 AI API가 필요하지 않으므로 오프라인으로 작동할 수 있습니다.
또한 오픈 웨이트(open-weight) AI는 데이터에 대한 통제력을 유지하면서 모델을 실험하고 워크플로우를 사용자 정의할 자유를 저에게 제공합니다.
안전 제일 (Safety First)
- 실행 전에 변경 사항을 미리 보여주는 건조 실행(dry-run) 모드를 지원합니다.
- 파일은 삭제되지 않고 이동만 합니다.
- 모델 출력을 검증하고 안전하지 않은 경로를 방지하기 위해 파일 이름을 정리(sanitize)합니다.
- Ollama를 사용할 수 없는 경우 규칙 기반 폴백(fallback)을 처리합니다.
- 자동화된 테스트는 건조 실행(dry-run), 적용/취소(apply/undo), 그리고 유효하지 않은 모델 출력을 다룹니다.
작동한 점과 부족했던 점 (What Worked and What Didn't)
- 작동한 점: [실제 테스트 결과를 추가하세요: 총 테스트 파일 중 올바르게 분류된 파일 수.]
- 부족했던 점: OCR(광학 문자 인식)이 없으면 파일 이름과 확장자를 사용하여 이미지를 분류하므로 실제 내용은 이해하지 못합니다.
- 다음 단계: 불확실한 분류에 대해 OCR을 추가하고 검토 단계를 마련할 것입니다.
배운 점 (What I Learned)
SlothSort를 구축하면서 신뢰할 수 있는 AI 자동화는 좋은 프롬프트 이상의 것이 필요하다는 것을 알게 되었습니다. 모델 출력 검증, 변경 사항 미리 보기, 그리고 취소(undo) 지원은 에이전트를 더 안전하고 유용하게 만드는 데 필수적입니다.
목표: 파일 정리 시간을 줄이고 중요한 일에 더 많은 시간을 할애하는 것입니다. 슬로우가 지루한 일을 처리하게 하세요. 🦥
devchallenges #hf26challenge #Gemma #Ollama