# KPAA chain orchestrator 메타데이터 (v2.2 — 16 chain) # # 원작 korean-law-mcp v3.5.1 의 16개 도구 직접 노출 패턴을 *결정적 fan-out* # 으로 미러링. 우리 시스템은 LLM 도구 호출 0회 — chain 안의 소스 조합은 # 이 yaml + chains.py 가 결정한다. # # 라우팅 흐름: # 사용자 질문 → LLM 분류기(llm_router.py) → chain key 1개 선택 → chains.py 가 # 해당 spec 의 sources 를 병렬 fan-out → fetcher 들이 Excerpt 리스트 반환. # # chain 추가/조정 시 이 파일만 손대면 충분 (chains.py 는 spec 기반 dispatch). # 단, llm_router.CHAIN_DESCRIPTIONS 와 _format_stage 의 한국어 라벨 매핑은 # 별도로 갱신해야 LLM 분류 정확도 + UI 표시가 따라온다. # # 항목 형식: # key: chain 식별자 (snake_case) # ko: 한국어 라벨 (UI 표시용) # description: LLM 분류기 prompt 의 *언제 이 chain 을 쓰는지* 설명 (자연어) # jo_hints: 본법(개인정보보호법) 조문 번호 기본값. LLM 명시 안 하면 사용 # sources: 호출할 fetcher 목록. _fetch_() 와 매핑. # - case : 상담사례 (로컬 SQLite) # - guide : PIPC 발간 안내서 청크 (로컬 SQLite, 인터랙티브 큐레이션) # - law : 본법 조문 (jo_targets 만큼) # - related_law : 관련 법령 본문 (plan.mst_targets 라이브) # - related_law_static : 정적 관련 법령 리스트 (related_laws.yaml) # - pipc : PIPC 결정문 # - interpretation : 법령해석례 # - precedent : 판례 # - admin_rule : 행정규칙(고시) chains: - key: definition ko: 정의·개요 description: | 법령·용어의 정의·개요·목적·원칙을 묻는 질문. 예: "개인정보보호법이 뭐야", "정보주체란?", "가명정보 정의", "개인정보처리자 누구를 말해?" jo_hints: ["1", "2", "3"] # constitutional 추가: 자기결정권·기본권 헌재 판단이 정의 질의에 깊이 보탬. # guide 추가: 분야별 실무 질문("학원에서 개인정보 관리 방법" 등)이 LLM 분류기에서 # `알려줘`/`방법`·`관리` 같은 표현으로 definition 으로 잘못 떨어져도 분야별 # 안내서 청크가 fallback 으로 들어오도록 한 안전망. RRF + reranker 가 노이즈 거름. sources: [law, related_law, constitutional, guide] - key: related_laws ko: 관련 법령 안내 description: | 개인정보보호법과 함께 적용되는 *다른 법률* 안내 요청. 예: "관련된 법은?", "다른 법 알려줘", "함께 봐야 할 법령". 특정 법령 본문 질의(예: '신용정보법 제32조')는 여기보다 general_practice/precedent_search 가 적합. jo_hints: [] sources: [related_law, related_law_static] - key: general_practice ko: 일반 실무 (catch-all) description: | 위 카테고리 어디에도 명확히 들어가지 않는 *일반 실무 질문* 의 catch-all. 모호하면 이걸 선택. 동의·CCTV·처리방침·유출·위탁·제3자제공·채용·아동·파기 등 어디에 둬야 할지 애매한 복합 질문에도 적합. # catch-all 안전망: 모호 질문에도 본법 핵심 4개 조문이 항상 컨텍스트에 들어감. # 제3조(원칙), 제15조(수집·이용), 제17조(제공), 제29조(안전조치). jo_hints: ["3", "15", "17", "29"] # guide 추가: 분야별 실무 질문이 catch-all 로 떨어질 때 분야별 안내서 # (학원·교습소·의료기관·약국·사회복지·공공기관 편 등) 청크가 검색되도록. sources: [case, law, related_law, pipc, interpretation, precedent, guide] - key: precedent_search ko: 판례·처벌 사례 description: | 판례·처벌 사례·위반 사례·손해배상·형사 판결 검색. 예: "○○ 위반 판례", "처벌 사례 알려줘", "어떤 형사 판결이 있어?" jo_hints: [] sources: [law, related_law, pipc, precedent] - key: safety_compliance ko: 안전조치·고시 description: | 개인정보의 안전성 확보조치·기술적·관리적·물리적 보호조치·암호화·접근통제· 개인정보보호위원회 고시 관련. 예: "안전조치 기준", "암호화 어떻게", "접근권한 관리". jo_hints: ["29"] # three_tier 추가: 본법 제29조와 함께 *시행령 제30조 (안전성 확보조치 기준)* 자동 포함. sources: [law, three_tier, admin_rule, pipc, guide] - key: consent_collection ko: 동의 수집·철회 description: | 개인정보 수집 동의·동의 철회·동의 방식(서면/전자) 관련 실무 질문. 예: "동의서 어떻게 받아야", "마케팅 동의 분리해야 하나", "동의 철회 절차". jo_hints: ["15", "17", "22"] sources: [law, case, pipc, interpretation, guide] - key: cctv_video ko: CCTV·영상정보처리기기 description: | CCTV·영상정보처리기기 설치·안내문·녹음·운영 관련. 매장·아파트·병원·학원 등 현장 설치 사례. 예: "CCTV 어디 설치해야", "안내문 어떻게 써", "영상정보 보관기간", "녹음 같이 해도 되나". jo_hints: ["25"] sources: [law, admin_rule, pipc, case, guide] - key: breach_notification ko: 유출 신고·통지 description: | 개인정보 유출·분실·도난·침해 시 신고 절차·정보주체 통지·보호위원회 신고 기한. 예: "유출되면 며칠 안에 신고", "침해 통지 의무", "유출 신고 어디에". jo_hints: ["34"] sources: [law, admin_rule, pipc, interpretation, guide] - key: processing_consignment ko: 처리 위탁 description: | 개인정보 처리 위탁·외주·클라우드·수탁자 관리 관련. 예: "클라우드에 자료 맡겨도 되나", "위탁업체 관리 어떻게", "재위탁 가능?" jo_hints: ["26"] sources: [law, case, pipc, interpretation, guide] - key: third_party_provision ko: 제3자 제공·공유 description: | 개인정보 제3자 제공·공유·양도·매각·계열사 공유 관련. 예: "제3자 제공 동의", "계열사에 공유해도", "양수도 시 개인정보". jo_hints: ["17", "18"] sources: [law, case, pipc, precedent, guide] - key: data_subject_rights ko: 정보주체 권리 (열람·정정·삭제) description: | 정보주체의 권리 행사 — 열람·정정·삭제·처리정지·이의제기. 예: "내 정보 보여줘 요청 받았어", "삭제 요청 거부 가능", "처리정지 절차". jo_hints: ["35", "36", "37", "39"] # constitutional 추가: 자기결정권 헌재 판단이 권리 범위 해석의 핵심 근거. sources: [law, case, interpretation, pipc, guide, constitutional] - key: retention_destruction ko: 보유·파기 description: | 개인정보 보유기간·보존·파기·폐기 관련. 예: "1년 지나면 파기해야", "보관기간 어떻게 정해", "파기 방법". jo_hints: ["21", "39의6"] sources: [law, case, interpretation, guide] - key: medical_health ko: 의료·건강·민감정보 description: | 의료기관·병원·진료기록·건강정보·민감정보 처리 관련 (의료법 연계). 예: "환자 진료기록 마케팅 활용", "병원 CCTV", "의료법상 비밀유지", "건강정보 동의". ※ 병원 CCTV 설치 위치 같은 *시설 설치* 질문은 cctv_video 가 더 적합. jo_hints: ["23"] # constitutional: 의료정보·민감정보 자기결정권 헌재 판단 (예: 92헌마68 등). # guide: 「분야별 개인정보 보호 안내서 — 의료기관 편(2024.12)」 진료기록·보존기간 등. sources: [law, related_law, case, pipc, guide, constitutional] - key: employment_recruitment ko: 채용·근로 description: | 직원 채용·이력서·면접·인사·근로 과정의 개인정보 처리 (근로기준법 연계). 예: "이력서에 주민번호 받아도", "직원 동의 어떻게", "퇴사자 정보 보관". jo_hints: ["15", "24의2"] sources: [law, related_law, case, pipc, guide] - key: policy_disclosure ko: 처리방침·공개 description: | 개인정보 처리방침 작성·게시·공개 관련. 예: "처리방침 만들어야", "1인 사업자도 게시 의무", "처리방침 어떻게 써". jo_hints: ["30"] # three_tier 추가: 본법 제30조와 함께 *시행령 제31조 (처리방침 공개)* 자동 포함. sources: [law, three_tier, admin_rule, case, pipc, guide] - key: minor_protection ko: 아동·미성년 보호 description: | 만 14세 미만 아동·미성년자·청소년 개인정보 처리·법정대리인 동의 관련. 예: "14세 미만 동의", "어린이 정보 수집", "법정대리인 동의 받는 법". jo_hints: ["22의2"] sources: [law, case, pipc, interpretation, guide]