# InsuWiki 카카오톡 지식 전면 재정제 — Sonnet 활용

## 한정승인: 2팀 한정승인
오딘(2팀장)이 전 Phase를 일괄 진행한다.

## 작업 개요
기존 wiki_entries.json 125건은 규칙 기반으로만 추출되어 품질이 매우 낮다 (원본 그대로 들어가 있음).
원본 카카오톡 txt 파일을 기준으로 **처음부터 다시** Sonnet으로 정제하여 고품질 위키 항목을 생성한다.

## 원본 데이터
- 카카오톡 txt: `/home/jay/workspace/data/kakao-sample.txt` (32,946줄, 1.5MB)
- 채팅방: "앞서가는 설계사" (보험설계사 384명, 4개월 대화)

## 기존 파서 활용
- 파서: `/home/jay/projects/insuwiki/scripts/kakao_knowledge/kakao_parser.py`
- 추출기: `/home/jay/projects/insuwiki/scripts/kakao_knowledge/knowledge_extractor.py`
- 위 모듈로 먼저 파싱 + 스레드 분리 수행 (규칙 기반)
- CLI: `cd /home/jay/projects/insuwiki/scripts && python3 -m kakao_knowledge parse /home/jay/workspace/data/kakao-sample.txt --output /tmp/parsed.json`

## 핵심 작업: Sonnet으로 각 스레드 정제

파싱된 스레드를 **하나씩** 읽고, 아래 기준으로 정제한다.
**팀 봇이 직접 LLM 역할을 하여 정제한다 (외부 API 호출 금지).**

### 정제 기준

각 스레드(원본 대화 묶음)를 분석하여:

1. **노이즈 판별**: 아래에 해당하면 버린다 (wiki 항목 생성 안 함)
   - 오픈채팅봇 환영 메시지만 있는 스레드
   - 인사/축하/이모티콘만 있는 스레드
   - 질문 없이 공지만 있는 스레드
   - 의미 있는 Q&A가 없는 스레드

2. **원자적 분리**: 하나의 스레드에 2개 이상 질문이 있으면 각각 별도 항목으로 분리

3. **정제 항목**:
   - `title`: 핵심 주제 한 문장 (예: "안저 광응고술의 수술 해당 여부", "골절 핀삽입술 후 핀제거술 보험 청구")
   - `category`: 보상 / 고지의무 / 약관 / 상품 / 기타
   - `question`: 질문자의 핵심 궁금증 1~2문장 요약
   - `answer`: 전문가 답변의 핵심 결론 2~4문장 요약. 근거/판례 포함.
     - 답변이 없으면(질문만 있고 답변이 안 달린 경우) `answer: "답변 미확인"` 으로 표기
   - `expert`: 가장 전문적인 답변을 한 사람 (닉네임 형태: "이해철/프라임/부산")
   - `keywords`: 관련 키워드 5~8개
   - `confidence`: high(전문가 확실한 답변) / medium(의견 수준) / low(불확실)
   - `source_date`: 대화 날짜
   - `source_chat`: "앞서가는설계사"
   - `raw_thread`: 원본 메시지 배열 (보존)

### 품질 체크
- 제목이 20자 미만이거나 원본 그대로(`#궁금증...`)이면 안 됨
- 답변이 질문과 동일하면 안 됨
- 키워드가 단순 형태소 분리(`질문드립니다`, `있는데요`)가 아닌 의미 있는 키워드

## 산출물
- `/home/jay/projects/insuwiki/scripts/kakao_knowledge/wiki_entries.json` — 기존 파일 덮어쓰기
- 기존 파일은 먼저 `wiki_entries.json.bak.v1`으로 백업

## 작업 순서
1. 기존 wiki_entries.json 백업
2. kakao_parser로 원본 txt 파싱 → parsed.json
3. knowledge_extractor로 스레드 분리 (규칙 기반)
4. **각 스레드를 팀 봇(Sonnet)이 직접 읽고 정제** → wiki_entry 딕셔너리 생성
5. 노이즈 스레드 필터링
6. 결과를 wiki_entries.json으로 저장
7. 대시보드 서버 재시작 (pkill -f "dashboard/server.py" && nohup python3 /home/jay/workspace/dashboard/server.py > /home/jay/workspace/dashboard/server.log 2>&1 &)

## 보고
- 전체 스레드 수 / 노이즈 필터링 수 / 최종 항목 수
- 카테고리별 분포
- 샘플 5건의 제목/질문/답변 (품질 확인용)

## 주의사항
- 외부 API (Gemini, Anthropic API 등) 호출 금지. 팀 봇이 직접 정제
- 원본 txt 파일은 절대 수정 금지
- pyright 에러 0건
- 스레드가 많으므로(수백 개) 작업량이 많을 수 있음. 토큰 한도 주의하여 필요시 Phase 분리

## 완료 기준
1. wiki_entries.json이 고품질 항목으로 재생성됨
2. 각 항목의 제목이 깔끔 (예: "안저 광응고술의 수술 해당 여부")
3. 질문-답변이 정확히 분리됨 (다른 질문 섞임 없음)
4. 노이즈 완전 제거
5. 대시보드에서 확인 가능
