jangbu-tag
거래내역 → 계정과목 매핑 스킬.
분류 전략
- 룰 기반 (LLM 미경유) —
classify_with_rules호출로 일괄 처리 - LLM fallback — 룰 실패 건에 한해 마스킹된 뷰만 LLM에 전달
- 사용자 확인 — 낮은 confidence 건은 사용자 검증 후
apply_classification(source="user")
계정 구조 (이중)
- 내부 계정: 유연. 예)
광고선전비_구글,광고선전비_메타,SaaS_노션 - 국세청 계정: 고정.
accounts/nts_standard.json매핑 테이블 경유 - 세무 리포트 생성 시 내부 → 국세청 자동 변환
인터뷰 플로우
Step 1. 대상 기간 확인
분류할 거래 기간을 선택하세요.
[1] 이번 달
[2] 전월
[3] 올해 전체
[4] 특정 기간 입력
미분류 거래만 처리합니다.
Step 2. 룰 기반 일괄 분류
classify_with_rules(start_date="2026-04-01", end_date="2026-04-30")
결과 예시:
룰 분류 완료: 87건
분류 실패(LLM fallback 필요): 13건
Step 3. LLM fallback (분류 실패 건)
핵심: list_transactions(unclassified_only=True) 응답은 이미 마스킹된 뷰.
LLM 분류 프롬프트 템플릿
다음 거래를 한국 일반기업회계기준 계정과목으로 분류하세요.
거래처명·적요에 토큰(TK_*)이 있으면 그대로 두고 문맥으로만 판단.
거래 목록:
{
"tx_abc": {"date": "2025-09-07", "amount": 142025, "direction": "outflow",
"counterparty": "CLAUDE.AI SUBSCRIPTION", "description": "..."},
"tx_def": {...}
}
사용 가능 계정과목 (이 목록 외 사용 금지):
- 복리후생비: 직원 복리·회식·식대·간식·건강검진
- 여비교통비: 택시·KTX·주유·출장
- 접대비: 고객 접대 (5만원 이상 식사가 유력 신호)
- 통신비: 휴대폰·인터넷·유선전화
- 수도광열비/전력비: 수도·전기·가스
- 임차료: 월세·사무실 임대
- 지급수수료: SaaS 구독·은행 수수료·법무·회계·세무 용역비
- 광고선전비: 페이스북·구글·네이버 광고
- 도서인쇄비: 책·출판물·인쇄
- 소모품비: 사무용품·다이소·IKEA
- 세금과공과: 4대보험·세금·지방세
- 수선비·보험료·차량유지비·운반비·교육훈련비·회의비
- 급여·상여금·퇴직급여·잡급
- 매출액/이자수익 (inflow일 때)
각 거래에 대해 JSON으로 반환:
{
"tx_abc": {"internal_account": "지급수수료", "confidence": 0.92,
"reason": "CLAUDE.AI는 AI SaaS 구독"},
...
}
confidence < 0.7인 건은 "사용자 확인 필요"로 표시.
적용 절차
list_transactions(unclassified_only=True, limit=50)— 50건씩 배치- 위 프롬프트로 LLM 호출 → JSON 결과
- confidence ≥ 0.7:
apply_classification(source="llm")자동 저장 - confidence < 0.7: Step 4로 사용자 확인
LLM 분류 시 반드시 한국 일반기업회계기준의 표준 계정 사용.
Step 4. 낮은 confidence 건 사용자 확인
다음 거래의 계정을 확인해주세요.
거래: TK_ACCOUNT_ID_xxxx | 2026-04-15 | 500,000원 | outflow
적요: (마스킹된 내용)
추정 계정: 지급수수료 (confidence=0.65)
[1] 지급수수료 유지
[2] 다른 계정 지정
[3] 스킵 (미분류 유지)
사용자 입력 시:
apply_classification(
transaction_id="tx_xxx",
internal_account="지급수수료",
confidence=1.0,
source="user"
)
Step 5. 결과 요약
분류 완료:
- 룰: 87건
- LLM: 10건 (평균 confidence 0.78)
- 사용자: 3건
- 최종 미분류: 0건
다음:
- [3] 세무 리포트 생성 (jangbu-tax)
- [4] 경영 리포트 생성 (jangbu-dash)
시드 룰 적용
최초 실행 시 rules/seed_rules.json 을 classification_rules 테이블에 주입.
이미 존재하는 룰은 중복 추가 안함. 사용자가 apply_classification(source="user") 할 때 학습용 룰로 자동 등록할지는 사용자에게 확인 후 결정.
신뢰도 기준
| Confidence | 출처 | 처리 |
|---|---|---|
| 1.00 | counterparty_exact / user 확정 | 자동 적용 |
| 0.90 | counterparty_regex | 자동 적용 |
| 0.80 | description_regex | 자동 적용 |
| 0.70~0.79 | LLM 추정 | 사용자 확인 권장 |
| 0.00 | 매칭 실패 | LLM fallback |
보안
- 룰 분류는 LLM 미경유 — 민감정보 외부 노출 없음
- LLM fallback 시에도
list_transactions의 마스킹 뷰만 사용 - 사업자번호·계좌번호·카드번호는 토큰으로 치환된 상태로만 노출
apply_classification호출마다 audit.log 기록
엣지 케이스
- 동일 거래처가 여러 용도(예: 쿠팡 = 사무용품 or 복리후생) — 적요 텍스트 우선순위로 추가 룰 작성
- 분개가 필요한 거래(계정 간 대체) — MVP 범위 외, 향후 분개 엔진에서 처리
- 계정 신규 생성 —
accounts/nts_standard.json에 없으면 "지급수수료" 기본 매핑 후 사용자에게 확인