**task-1577.1 완료 보고** (dev1-team) **완료 보고서 — 스레드 분리 LLM 정밀화 개선** (10분 9초) **핵심 결과** `_llm_refine_thread_splits()` 함수를 4가지 개선하여 양방향 분리를 구현했다. pytest 40건 전체 통과(기존 34건 + 신규 6건), pyright 에러 0건. ## 수정 내용 ### 1. 프롬프트 양방향 개선 - 기존: `merge_with_prev` 배열만 반환 → 병합만 가능 - 개선: `{"threads": [{"merge_with_prev": bool, "split_at": [int, ...]}]}` 형식 - 기존 `merge_with_prev` 배열 형식도 하위 호환 지원 ### 2. 메시지 프리뷰 확대 - 기존: 각 스레드 첫 2개 메시지, 80자 제한 - 개선: 최대 10개 메시지, 100자 제한, 10개 초과 시 앞 3 + 뒤 3 + "(N개 생략)" ### 3. 분리 로직 구현 - `_split_thread_at()` 헬퍼: `split_at` 인덱스 배열에 따라 스레드를 서브 스레드로 분할 - 병합 후 분리 조합도 지원 (merge → split 순서 처리) ### 4. 노이즈 스레드 필터링 - `_is_noise_thread()` 헬퍼: 분리 후 메시지 3개 미만 + 보험 도메인 키워드 0건인 스레드 제거 - `_CATEGORY_KEYWORDS_V2` 기반 보험 도메인 키워드 매칭 ## 산출물 파일 - `/home/jay/projects/insuwiki/.worktrees/task-1577.1-dev1/scripts/kakao_knowledge/knowledge_extractor_v2.py` - `/home/jay/projects/insuwiki/ **발견/해결 이슈 3건** 1. **Pyright `mi` 미사용 경고** — `for mi, m in enumerate(preview_msgs)` → `for m in preview_msgs`로 변경 2. **`_is_noise_thread` 키워드 매칭 오탐** — `_extract_keywords()`는 범용 한국어 명사를 추출하여 "안녕하세요"도 키워드로 반환 → `_CATEGORY_KEYWORDS_V2` 기반 보험 도메인 키워드로 교체 3. **LLM 응답 형식 하위 호환** — 기존 `merge_with_prev` 배열 형식으로 응답하는 경우도 처리하도록 fallback 로직 추가