kpaa / data /chain_specs.yaml
scvcoder's picture
fix(routing): definition·general_practice 에 guide 소스 추가
ca3bbcf verified
# 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_<source>() 와 매핑.
# - 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]