본문으로 건너뛰기
r/LangChain조회 1

로컬 LLM으로 파일명 기반 의미 그룹화를 자동화하는 간단한 도구를 만들었다

Ollama에 설치한 로컬 Llama 3.2를 사용해 파일명 목록을 LLM에 전달하고 엄격한 JSON 출력으로 의미 기반 카테고리를 만들어 파일을 이동하는 도구를 제작했다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

잡다한 파일들이 모여 있던 폴더를 정리하기 위해 작성자는 파일명 목록만을 Llama 3.2에 전달해 의미 기반 카테고리를 생성하고 그 결과를 JSON으로 받아 파일을 이동하는 로컬 도구를 만들었다. Ollama를 통해 Llama 3.2를 로컬에 설치해 네트워크 호출 없이 추론을 수행하고 출력은 엄격한 JSON 형식으로 고정해 파싱 안정성을 확보했으며 예외 처리와 사용자 확인 단계로 안전장치를 마련했다. 이 도구는 파일명이 충분히 의미를 담고 있을 때 유용하지만 파일 내용을 읽지 않는 한계로 인해 무의미한 파일명에서는 정확도가 떨어지며 설치와 유지 비용을 고려해야 한다.

실용적 조언

  • 파일명을 정리 가능한 형태로 사전 표준화하면 LLM 기반 분류의 정확도가 크게 향상된다. 파일명에 날짜, 문서 유형, 버전 등의 규칙을 적용하면 모델이 의미를 추출하기 쉬워진다. 자동 이동을 실행하기 전에는 항상 생성된 이동 계획을 출력해 사용자가 검토하고 승인하도록 구성하는 것이 데이터 손실 위험을 줄이는 핵심 수단이다.
  • 로컬 모델을 사용할 때는 Ollama 같은 런타임을 통해 모델 이미지를 한 번만 설치하고 추론은 오프라인에서 수행하면 외부 노출을 막을 수 있다. 모델 응답 포맷을 엄격히 통제하고 파싱 단계에서 예외 처리를 넣어 잘못된 응답으로 인한 스크립트 중단을 방지해야 한다. 동일 이름 충돌에는 인덱스 카운터를 붙이는 간단한 정책을 적용하면 데이터 덮어쓰기를 피할 수 있다.

섹션별 상세

01
정리되지 않은 폴더에 담긴 다양한 파일을 확장자만으로는 적절히 분류하기 어렵다는 문제에서 출발했다. 작성자는 파일명을만 입력으로 사용하여 LLM에 카테고리 분류를 요청하는 방식을 선택했고 입력으로 파일명 목록을 전달하면 모델이 각 파일을 적절한 카테고리에 매핑한 JSON을 반환하는 흐름이다. 구현 설명에는 '단일 LLM 호출', '엄격한 JSON 응답 요구', '파싱 후 이동 계획 생성'이라는 구체적 처리 단계가 포함되어 있어 재현성이 확보된다. 이 접근은 확장자 기반 분류로는 구분이 어려운 영수증과 이력서, 스크린샷과 밈 같은 의미적 차이를 반영하려는 목적을 충족한다.
02
로컬 모델 실행과 프라이버시 보장이 구현 의사결정의 핵심이었다는 점이 두드러진다. 게시물에서는 Ollama로 Llama 3.2를 로컬에 설치해 네트워크 호출 없이 모델을 실행했고 설치 단계에서만 인터넷이 필요하고 이후에는 모든 처리와 파일명이 로컬에 머문다고 명시했다. 이로 인해 API 키 노출 위험과 외부 데이터 유출 우려를 제거하는 설계 상 이점이 발생한다는 실무적 근거가 마련되었다. 다만 운영 환경에서는 모델 설치 및 리소스 요구량을 고려해야 한다는 현실적 제약이 남는다.
03
프롬프트 디자인과 응답 파싱 안정화가 구현의 핵심 기술 요소로 자리잡았다. 작성자는 모델에게 사전에 정의된 카테고리 목록을 주고 '오직 유효한 JSON만' 반환하도록 강제하여 파싱 오류 가능성을 낮췄으며 파싱 결과를 move plan으로 변환해 사용자 확인을 거치도록 처리했다. 오류 상황을 대비해 try/except로 예외를 포착하고 잘못된 응답은 출력해 확인하게 하며 파일 이동은 사용자가 'y'를 입력해야 실행되도록 설계되어 안전 장치가 마련되었다. 이 흐름은 자동화된 파일 조작의 위험을 줄이면서도 자동 분류의 편의성을 유지한다.
04
기술적 한계와 사용상의 주의사항이 명확하게 제시되었다. 핵심 한계는 파일 내부를 읽지 않고 파일명만으로 분류하므로 무의미한 이름을 가진 파일들에 대해서는 분류 정확도가 떨어진다는 점이며 작성자는 이 경우 결과가 추측에 의존한다고 명시했다. 또한 실제 파일을 이동하므로 사전 확인 단계가 필수적이라는 점과 이름 충돌 처리 방식으로 카운터를 추가하는 전략을 사용했다는 구현 세부사항이 제시되었다. 따라서 이 도구는 파일명이 어느 정도 의미를 갖는 개인용 정리 작업에는 효과적이지만 완전 자동화된 대규모 정리에는 한계가 있다.

용어 해설

Ollama
로컬 환경에서 LLM을 실행하고 모델을 관리하는 런타임으로서 동작한다. 모델 이미지를 로컬로 풀링하고 실행하는 기능을 제공하며 네트워크를 통해 API 키를 외부에 보내지 않아도 로컬 추론이 가능하다. 게시물 맥락에서는 파일명 분류를 위한 단일 LLM 호출을 로컬에서 실행하는 핵심 런타임으로 사용되었다.
Llama 3.2
소규모에서 중규모 작업에 사용 가능한 언어모델로서 로컬에서 추론을 수행할 수 있는 모델 버전이다. 게시물에서는 Ollama를 통해 로컬에 설치된 Llama 3.2에 파일명 목록과 엄격한 프롬프트를 전달하여 카테고리별 JSON 출력을 얻는 데 사용되었다. 외부 API 호출 없이 기기 내에서 텍스트 분류 용도로 운용되는 점이 핵심이다.
엄격한 JSON 출력 프롬프트(Strict JSON prompting)
모델에게 오직 유효한 JSON만 반환하도록 요구하는 프롬프트 방식으로, 사람이 읽는 설명이나 마크다운을 허용하지 않는다. 입력으로 파일명 목록과 원하는 카테고리 목록을 전달하고 출력의 형식을 기계가 파싱 가능한 JSON으로 고정하여 응답 파싱 오류를 줄이는 데 목적이 있다. 게시물 구현은 이 방식으로 모델 응답을 파싱하여 파일 이동 계획을 생성했다.
파일명 기반 분류(Filename classification)
파일 내부 내용을 열람하지 않고 파일명을 입력 신호로 사용하여 파일의 용도나 카테고리를 예측하는 방법이다. 키워드, 패턴, 확장자 외에도 자연어적 이름 해석을 위해 LLM에 파일명 목록을 제공하고 의미 기반 그룹을 도출하는 방식으로 구현된다. 게시물에서는 이 방식의 한계로 파일명이 무의미한 경우 정확도가 떨어진다고 명시했다.

언급된 도구

Ollama추천

로컬에서 모델을 설치하고 실행하는 런타임

Llama 3.2중립

파일명 기반 분류를 수행하는 로컬 언어모델

shutil중립

파일 생성·이동·이름 충돌 처리를 위한 Python 표준 라이브러리

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 07. 17.수집 2026. 07. 17.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.