File size: 9,167 Bytes
94f1300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca3bbcf
 
 
 
94f1300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ca3bbcf
 
 
94f1300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
74df841
 
 
94f1300
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
# 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]