# 의도 메타데이터 — KPAA v2 라우팅 데이터. # # v2부터 라우팅 1차는 **LLM 의도 분류기**(Gemma 4 E2B JSON-mode 1샷)가 담당. # 이 yaml은 (1) LLM 분류 결과의 intent name → 조문 힌트(jo_hints)/소스 보강용 메타데이터, # (2) LLM 호출 실패·timeout 시 rule_route fallback 의 키워드 사전 (keywords 필드). # # 즉 keywords 큐레이션 부담은 사라졌고 (LLM이 자연어 의도 파악) keywords는 *fallback 안전망*만 됨. # intent 이름과 jo_hints/sources는 LLM 분류기 결과와 직접 연결되므로 정확하게 유지. # # 항목 형식: # - intent: 의도 식별자 (snake_case) — llm_router.INTENT_LIST 와 1:1 매칭되어야 함 # keywords: rule_route fallback 매칭 키워드 (소문자/대소문자 무관, 부분일치) # jo_hints: 개인정보 보호법 조문 번호 (없으면 빈 리스트) # sources: 보강용 데이터 카테고리 (chain orchestrator 가 기본값을 결정하고, 여기 sources는 union으로 병합) # - case : 상담사례 1,745건 (로컬 SQLite) # - law : 본법(개인정보보호법) 조문 + jo_targets 명시 시 라이브 # - related_law : data/related_laws.yaml 의 매칭된 법령 본문 (라이브) # - pipc : 개인정보보호위원회 결정문 # - interpretation: 법령해석례 # - precedent : 판례 (대법원·하급심) # - admin_rule : 행정규칙(고시) - intent: 동의_수집 keywords: [동의, 수집, 받아도, 받아도되, 마케팅, 광고, 홍보] jo_hints: ["15", "22"] sources: [case, law, pipc, precedent] - intent: 민감정보 keywords: [민감정보, 진료기록, 건강, 질병, 병력, 환자, 사진, 안면, 지문, 홍채, 생체] jo_hints: ["23"] # 의료기관 사례 → 의료법까지 가져오게 related_law 활성. 환자/병원 키워드 매칭 시. sources: [case, law, related_law, pipc, precedent] - intent: 고유식별정보 keywords: [주민등록번호, 주민번호, 외국인등록번호, 운전면허, 여권번호, 고유식별, 식별번호] jo_hints: ["24", "24의2"] # 주민등록법까지 → related_law 활성 sources: [case, law, related_law, pipc, precedent] - intent: 영상정보처리 keywords: [CCTV, cctv, 영상정보, 영상정보처리기기, 안내문, 안내판, 매장, 카메라, 녹음] jo_hints: ["25"] # CCTV 녹음은 통신비밀보호법까지 → related_law 활성 sources: [case, law, related_law, pipc, precedent] - intent: 유출신고 keywords: [유출, 분실, 도난, 신고, 통지, 침해, 누출] jo_hints: ["34"] # 안전성 확보조치 기준 고시까지 → admin_rule 활성 sources: [case, law, pipc, admin_rule] - intent: 처리위탁 keywords: [위탁, 외주, 클라우드, 처리위탁, 수탁] jo_hints: ["26"] sources: [case, law, pipc, admin_rule] - intent: 제3자제공 keywords: [제3자, 제공, 공유, 양도, 매각] jo_hints: ["17", "18"] sources: [case, law, pipc, precedent] - intent: 채용 keywords: [채용, 이력서, 직원, 입사지원, 면접, 인사, 근로] jo_hints: ["15", "23", "24의2"] sources: [case, law, pipc] - intent: 처리방침 keywords: [처리방침, 개인정보처리방침, 방침, 게시, 공개] jo_hints: ["30"] sources: [case, law, admin_rule] - intent: 파기 keywords: [파기, 보관기간, 보유기간, 보존, 폐기, 보관] jo_hints: ["21"] sources: [case, law, interpretation] - intent: 아동 keywords: [아동, 미성년, 14세, 만14세, 어린이, 청소년, 학생] jo_hints: ["22의2"] sources: [case, law, pipc] - intent: 정보주체_권리 keywords: [열람, 정정, 삭제, 처리정지, 권리, 본인요청] jo_hints: ["35", "36", "37"] sources: [case, law, pipc, interpretation] - intent: 안전조치 keywords: [안전조치, 암호화, 접근권한, 접근통제, 안전성, 보안] jo_hints: ["29"] # 안전성 확보조치 기준 고시가 핵심 → admin_rule 우선 sources: [law, admin_rule, pipc] - intent: 보호책임자 keywords: [개인정보보호책임자, CPO, 책임자, 보호책임자] jo_hints: ["31"] sources: [law, admin_rule] # 판례·처벌 사례 요청 — "○○법 위반 판례", "처벌 사례", "어떻게 판결됐어" # precedent 카테고리를 명시적으로 활성화하기 위한 intent. - intent: 판례_요청 keywords: - 판례 - 판결 - 판시 - 사건번호 - 위반 - 위반사례 - 처벌 - 처분 - 손해배상 - 형사 jo_hints: [] sources: [law, precedent, pipc] # 메타/정의/일반 질문 — "○○법이 뭐야", "정의", "원칙" - intent: 법령_일반 keywords: - 개인정보보호법 - 개인정보 보호법 - 보호법 - 개인정보가 - 개인정보란 - 정보주체 - 개인정보처리자 - 가명정보 - 민감정보가 - 정의 - 원칙 - 개념 - 의미 - 뭐야 - 뭐예요 - 무엇 - 알려줘 - 설명 - 무엇인가요 jo_hints: ["1", "2", "3"] sources: [law] # 정의 질문엔 본법 조문만 — 노이즈 방지 # 관련 법령 — 사용자가 "다른 법", "함께 적용" 등을 묻거나 # 정통망법·신용정보법·의료법 같은 특정 관련 법령을 언급하면 매칭. # (실제 법령명별 keywords는 data/related_laws.yaml 의 각 item에 있음 — 라우터가 거기서 자동 매칭) - intent: 관련_법령 keywords: - 관련 법 - 관련된 법 - 다른 법 - 함께 적용 - 참조 법 - 어떤 법 - 적용되는 법 jo_hints: [] sources: [related_law] # 개정 이력 — "개정 내용", "바뀐 점", "신·구법 비교" 같이 *언제·어떻게 바뀌었는지* # 묻는 질문. 매칭되면 신구법비교(oldnew) 소스가 union 으로 활성화 — 어느 chain # 에서든 본법 신구법 본문이 추가로 붙는다. - intent: 개정_이력 keywords: - 개정 - 바뀐 - 바뀌었 - 변경된 - 신구법 - 신·구 - 신구 - 개정안 - 개정 이력 - 개정사항 - 어떻게 바 jo_hints: [] # oldnew=법령 단위 신구비교, article_history=조문 단위 시점별 변경 이력. # 둘은 *세분화 수준이 다른 보완 관계* — 함께 활성화. article_history 는 # plan.jo_targets 가 명시될 때만 fetch (구현 측에서 gating). sources: [oldnew, law, article_history]