Scope-Creep Guard: A Local Gemma AI That Tells Clients "That's Out of Scope" (So You Don't Have To) published: true
Scope-Creep Guard: 계약 범위를 벗어난 요청을 찾아주는 로컬 Gemma 도구
Scope-Creep Guard는 계약 내용과 고객 요청을 대조해 추가 작업 여부와 근거 조항을 제시하는 프리랜서용 도구입니다. 로컬 Gemma 모델로 분석하고 추가 시간과 비용, 고객에게 보낼 답변 초안까지 만듭니다. 배포된 데모는 미리 저장한 샘플 결과를 보여주며, 실제 분석은 Ollama를 설치해 로컬에서 실행해야 합니다.
- 주제
에디터 노트
이 도구의 판단 근거를 계약 조항으로 제한하고, 계약에 답이 없으면 UNCLEAR를 반환하게 한 설계가 용도에 잘 맞습니다. 계약서 내용을 임의로 만들어내는 오류를 줄이려는 의도가 JSON 검증과 재시도 로직에도 이어집니다. 다만 추가 시간과 비용은 추정치이며, 글쓴이도 드문 조항을 로컬 모델이 잘못 판단할 수 있다고 밝혔습니다. 데모는 내장 샘플 결과만 제공하므로 실제 분석 흐름을 확인하려면 로컬 실행이 필요합니다. 피드백 사례는 한 명의 프리랜서 테스트이며, 댓글도 짧은 응원 한 건뿐이라 유료 수요나 판정 정확도를 뒷받침하는 자료로 보기는 어렵습니다.
AI 요약
프리랜서가 계약에 없던 결제 기능이나 상품 등록을 무료로 맡는 상황을 줄이려고 Scope-Creep Guard를 만들었습니다. 사용자가 계약 범위와 고객 메시지를 입력하면 IN_SCOPE, OUT_OF_SCOPE, UNCLEAR로 분류하고 판단 근거로 삼은 계약 조항을 표시합니다. 시급을 기준으로 추가 작업 시간과 비용을 추정하며, 정중한 답변, 단호한 답변, 추가 판매 제안 등 세 가지 회신 초안과 변경 작업 견적서도 생성합니다. Scope Ledger에는 발견한 추가 요청과 회수한 금액을 기록합니다.
로컬 실행과 응답 검증
분석은 Ollama를 거쳐 로컬 Gemma 모델에서 실행합니다. 모델 이름은 .env에서 바꾸며, 앱은 시작할 때 Ollama 연결을 확인해 Live Mode와 Demo Mode를 선택합니다. Live Mode에서는 계약서와 고객 메시지가 사용자의 컴퓨터 밖으로 나가지 않습니다. 데이터베이스 대신 브라우저 localStorage에 Scope Ledger를 저장합니다. 기술 스택은 Next.js App Router와 Tailwind CSS이며, 코드는 MIT 라이선스로 공개했습니다.
개발 과정에서 모델이 계약에 없는 조항을 지어내지 않도록 하는 데 초점을 뒀습니다. 시스템 프롬프트는 입력한 계약만 근거로 판단하고 계약 내용이 불분명하면 UNCLEAR로 응답하도록 지시합니다. 모델은 판정, 근거 조항, 이유, 예상 시간과 비용, 답변 초안을 엄격한 JSON 형식으로 반환합니다. 서버가 JSON을 검증하고 형식이 깨지면 복구 프롬프트로 한 차례 재시도합니다. 이후에도 문제가 남으면 잘못된 결과 대신 오류를 표시합니다. 검증과 복구 로직에는 단위 테스트를 작성했습니다.
배포 데모의 범위와 한계
Vercel 배포 환경에서는 로컬 LLM을 실행할 수 없어 Demo Mode로 동작합니다. 이 모드는 내장 샘플에 대해 Gemma가 만든 결과를 미리 저장해 보여주며, 화면에도 데모임을 알립니다. 임의의 계약과 메시지를 분석하려면 Ollama와 Gemma를 설치하고 앱을 로컬에서 실행해야 합니다. 글쓴이는 작은 로컬 모델이 드문 계약 조항을 잘못 판단할 수 있으므로 결과를 법률 자문이 아닌 참고 의견으로 다뤄야 한다고 설명합니다.
사용자 피드백을 반영해 계약 전체와 최신 고객 메시지를 함께 입력하도록 안내를 명확히 했습니다. 테스트에 참여한 프리랜서 개발자는 추가 요청의 근거를 파악하는 데 도움이 됐다고 했지만, 처음에는 대화 전체와 최신 메시지 중 무엇을 입력해야 할지 몰랐고 계약상 포함된 작업의 설명도 더 필요했다고 말했습니다. 이 사용자는 당장은 무료로 쓰겠지만, 어려운 고객 응대와 시간을 꾸준히 줄여준다면 나중에 결제를 고려하겠다고 답했습니다.
dev.to 반응
- @ananya_gupta_359cc3a99152 — 잘 만들었네요 👍
원문: dev.to / 번역·요약: Trawling