분리쏙
사진 한 장으로 우리 동네 분리배출 규정을 안내하는 서비스
Problem학교나 직장 때문에 이사 온 20·30대가 지자체마다 다른 분리배출 규정 때문에 헷갈림
Built사용자 확인 구조로 애매할 때만 LLM 호출 · 지자체별 메타데이터 필터링 · 부족한 클래스 이미지 직접 수집
ResultLLM 호출 91.7%↓ · 비용 94.1%↓ (추정)
구조
분류가 확실하면 LLM 없이 바로 규정을 찾고 사용자가 "여기 없음"을 고를 때만 LLM이 다시 분류합니다.
파란 칸만 LLM을 호출합니다. 초록 칸은 검색만 합니다.
핵심 결정
규정 생성 LLM → 순수 검색
Before확실한 사진도 규정을 찾은 뒤 LLM이 답변을 생성 · 애매한 사진은 재분류 + judge 검증 + 규정 생성으로 LLM 3회
After멘토의 오버엔지니어링 피드백을 반영해 disposal_lookup을 메타데이터 필터 검색만으로 다시 설계하고 judge 노드를 비활성화
Why품목이 확정되면 규정은 이미 정해져 있어서 LLM이 새로 생성할 필요가 없음
임계값 자동 분기 → 사용자 확인
Beforeconfidence 0.5 / 0.3~0.49 구간으로 자동 분기
After결과를 먼저 보여주고 묻기 · 후보 선택은 LLM 없이 반영 · "여기 없음"일 때만 Gemini 재분류
Why애매한 사진은 모델보다 사진을 찍은 사용자가 가장 정확히 판단함
지자체 규정 섞임 → 메타데이터 필터링
Before비슷한 품목의 다른 지자체 규정이 검색돼 잘못 인용됨
After상위 법령과 다른 지자체 예외만 지역·품목 단위로 저장 · 문서 종류와 대분류·소분류로 필터 · 소분류가 없으면 대분류로 다시 검색
Why예외만 저장하면 데이터가 작아지고 검색 대상이 명확해짐
결과
judge 노드를 끄고 규정 조회(disposal_lookup)를 LLM 없는 순수 검색으로 다시 설계했습니다. 100건 요청 기준 LLM 호출이 120회에서 10회로 줄었고 없앤 노드가 출력 토큰을 많이 쓰는 생성 작업이라 비용은 그보다 더 많이 줄었습니다.
91.7%↓LLM 호출
94.1%↓비용 · Gemini 2.5 Flash
93.1%↓비용 · Gemini 3.8 Flash
케이스별 LLM 호출
| 케이스 | 개선 전 | 개선 후 |
|---|---|---|
| 확실 (90%) | 규정 생성 1회 | 0회 |
| 애매 (10%) | 재분류 + 검증(judge) + 규정 생성 = 3회 | 재분류(classify)만 1회 |
Before90% × 1 + 10% × 3 = 120회
After90% × 0 + 10% × 1 = 10회
절감률91.7%
모델별 비용 (100건 기준)
| 모델 | 개선 전 | 개선 후 | 절감률 |
|---|---|---|---|
| Gemini 2.5 Flash | $0.1370 | $0.0080 | 94.1% |
| Gemini 3.8 Flash | $0.2375 | $0.0164 | 93.1% |
Gemini 2.5 Flash 계산 과정 보기
입력 $0.30 / 출력 $2.50 (백만 토큰당)
| 노드 | 입력 토큰 | 출력 토큰 | 1회 비용 |
|---|---|---|---|
| classify | 1,432 | 150 | $0.00080 |
| judge (개선 전만) | 1,232 | 50 | $0.00049 |
| 규정 검색 + 답변 생성 (개선 전만) | 800 | 400 | $0.00124 |
Before확실 90 × $0.00124 + 애매 10 × $0.00254 = $0.1370
After확실 0 + 애매 10 × $0.00080 = $0.0080
Gemini 3.8 Flash 계산 과정 보기
입력 $0.75 / 출력 $3.75 (백만 토큰당)
| 노드 | 입력 토큰 | 출력 토큰 | 1회 비용 |
|---|---|---|---|
| classify | 1,432 | 150 | $0.00164 |
| judge (개선 전만) | 1,232 | 50 | $0.00111 |
| 규정 검색 + 답변 생성 (개선 전만) | 800 | 400 | $0.00210 |
Before확실 90 × $0.00210 + 애매 10 × $0.00485 = $0.2375
After확실 0 + 애매 10 × $0.00164 = $0.0164
핵심 인사이트
- 비용 절감률이 호출 절감률보다 큰 건 출력 토큰 단가가 입력보다 훨씬 비싸기 때문입니다 (2.5 Flash 8.3배 · 3.8 Flash 5배).
- 없앤 노드(judge · 규정 생성)가 출력 비중이 큰 생성 작업이라 생성형 응답을 검색으로 바꾼 효과가 비용에서 더 크게 나타납니다.
- 토큰 수와 확실:애매 비율 90:10은 예시 가정값입니다. 실제 시스템 프롬프트와 이미지 해상도로 다시 계산해야 합니다.
- 이미지 1장 ≈ 1,032토큰 (768×768 타일 4개) · 환율 1,361원/$ (2026-09-22 기준)
- 가격 출처: OpenRouter의 Gemini 2.5 Flash · Gemini 3.8 Flash 가격 (3.8 Flash는 2026-12-31까지 기준)
한계와 다음 단계
- 라벨과 이미지가 맞는지 검증하는 judge 노드는 구현했지만 무료 API 응답 시간 때문에 꺼둠 → 졸업논문에서 신뢰성 검증 중
- 사용자의 "맞아요/아니에요" 선택으로 분류 모델을 다시 학습하는 파이프라인 구현 · 실제 운영 데이터는 아직 없음
- 품목·재질·처리방법 관계를 담는 GraphRAG 확장 예정