diff --git a/troubleshooting/250916_claude_companyx_wrong_news.md b/troubleshooting/250916_claude_companyx_wrong_news.md new file mode 100644 index 0000000..87c006b --- /dev/null +++ b/troubleshooting/250916_claude_companyx_wrong_news.md @@ -0,0 +1,58 @@ +# CompanyX 뉴스 잘못된 기사 송출 문제 + +## 배경 +- **날짜**: 2025-09-16 +- **문제**: 10시 스케줄러가 CompanyX와 무관한 뉴스를 슬랙에 송출 +- **원인**: 검색어 부분 매칭 및 검증 로직 부재 + +## 문제 상황 +### 증상 +- 10:01 "오글 필요 없다" 규현, 엔티엑스(NTX) 등 무관한 기사 송출 +- 채널: C09C98KK2TT, ts: 1757984471.889439 + +### 검증 과정 분석 +``` +현재 검색: "컴퍼니 엑스" → 부분 매칭 발생 +수집 결과: 보링컴퍼니, DHX컴퍼니, 엑스붐 버즈 등 +검증 로직: 없음 (수집된 모든 기사를 그대로 전송) +``` + +### 추가 문제 +- 01:00에만 수집, 10:00은 기존 데이터 재사용 +- OpenAI quota 초과로 summarized 상태 0개 +- rb8001이 빈 응답 시 이전 데이터 송출 + +## 해결 과정 +### 1. 문제 확인 +```bash +docker logs robeing-skill-news | grep "컴퍼니엑스" +# 결과: "머스크의 보링컴퍼니", "엔티엑스(NTX)" 등 수집 +``` + +### 2. 슬랙 메시지 수정 +```bash +docker exec rb8001 python -c " +client.chat_update(channel='C09C98KK2TT', ts='1757984471.889439', + text='잘못된 기사 송출로 삭제합니다. 검증 과정을 보완하겠습니다.') +" +``` + +## 검증 과정 보완책 +### 1. 수집 단계 검증 +- 정확한 회사명 "CompanyX" 사용 (따옴표 포함) +- 검색 결과 제목/URL에서 회사명 정확히 포함 여부 확인 +- 부분 매칭 제외 로직: `if "CompanyX" not in title: skip` + +### 2. 처리 단계 검증 +- 본문 스크래핑 후 CompanyX 언급 횟수 카운트 +- 최소 언급 횟수(예: 3회) 미달 시 제외 +- 관련성 점수 계산: 제목(50%) + 본문(50%) + +### 3. 전송 전 최종 검증 +- summarized 상태 기사만 전송 +- 검증된 기사 0개일 때 전송 중단 +- 이전 캐시 데이터 사용 금지 + +## 교훈 +- 검색어 설정과 검증은 별개 프로세스로 관리 필요 +- 외부 API 장애 시 failover 전략 필수 \ No newline at end of file